You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ru...@apache.org on 2010/02/25 19:49:50 UTC
svn commit: r916396 - in /synapse/trunk/java:
modules/core/src/main/java/org/apache/synapse/config/xml/
modules/core/src/main/java/org/apache/synapse/mediators/db/ src/site/xdoc/
Author: ruwan
Date: Thu Feb 25 18:49:50 2010
New Revision: 916396
URL: http://svn.apache.org/viewvc?rev=916396&view=rev
Log:
Applying the patch for the issue SYNAPSE-574
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/DBReportMediatorFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/DBReportMediatorSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/DBReportMediator.java
synapse/trunk/java/src/site/xdoc/Synapse_Configuration_Language.xml
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/DBReportMediatorFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/DBReportMediatorFactory.java?rev=916396&r1=916395&r2=916396&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/DBReportMediatorFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/DBReportMediatorFactory.java Thu Feb 25 18:49:50 2010
@@ -20,6 +20,7 @@
package org.apache.synapse.config.xml;
import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMAttribute;
import org.apache.synapse.Mediator;
import org.apache.synapse.SynapseConstants;
import org.apache.synapse.mediators.db.DBReportMediator;
@@ -29,7 +30,7 @@
/**
* Factory for {@link DBReportMediator} instances.
* <pre>
- * <dbreport>
+ * <dbreport useTransaction="true|false">
* <connection>
* <pool>
* (
@@ -57,10 +58,21 @@
public class DBReportMediatorFactory extends AbstractDBMediatorFactory {
private static final QName DBREPORT_Q =
- new QName(SynapseConstants.SYNAPSE_NAMESPACE, "dbreport");
+ new QName(SynapseConstants.SYNAPSE_NAMESPACE, "dbreport");
+ private static final QName DBREPORT_USE_TX = new QName("useTransaction");
public Mediator createMediator(OMElement elem) {
DBReportMediator mediator = new DBReportMediator();
+
+ OMAttribute useTx = elem.getAttribute(DBREPORT_USE_TX);
+ if (useTx != null && useTx.getAttributeValue() != null) {
+ String useTxValue = useTx.getAttributeValue();
+ if (useTxValue.equals("true")) {
+ mediator.setUseTransaction(true);
+ } else {
+ mediator.setUseTransaction(false);
+ }
+ }
buildDataSource(elem, mediator);
processStatements(elem, mediator);
return mediator;
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/DBReportMediatorSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/DBReportMediatorSerializer.java?rev=916396&r1=916395&r2=916396&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/DBReportMediatorSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/DBReportMediatorSerializer.java Thu Feb 25 18:49:50 2010
@@ -25,7 +25,7 @@
/**
* Serializer for {@link DBReportMediator} instances.
- *
+ *
* @see DBReportMediatorFactory
*/
public class DBReportMediatorSerializer extends AbstractDBMediatorSerializer {
@@ -38,7 +38,10 @@
DBReportMediator mediator = (DBReportMediator) m;
OMElement dbReport = fac.createOMElement("dbreport", synNS);
- saveTracingState(dbReport,mediator);
+ if (mediator.isUseTransaction()) {
+ dbReport.addAttribute(fac.createOMAttribute("useTransaction", nullNS, "true"));
+ }
+ saveTracingState(dbReport, mediator);
serializeDBInformation(mediator, dbReport);
if (parent != null) {
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/DBReportMediator.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/DBReportMediator.java?rev=916396&r1=916395&r2=916396&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/DBReportMediator.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/DBReportMediator.java Thu Feb 25 18:49:50 2010
@@ -31,8 +31,21 @@
*/
public class DBReportMediator extends AbstractDBMediator {
+ public boolean isUseTransaction() {
+ return useTransaction;
+ }
+
+ public void setUseTransaction(boolean useTransaction) {
+ this.useTransaction = useTransaction;
+ }
+
+ // Does the DBReport mediator participate in a distribute tx?
+ // default do not participate in a distribute tx
+ boolean useTransaction = false;
+
protected void processStatement(Statement stmnt, MessageContext msgCtx) {
+
SynapseLog synLog = getLog(msgCtx);
Connection con = null;
@@ -44,27 +57,30 @@
if (count > 0) {
if (synLog.isTraceOrDebugEnabled()) {
synLog.traceOrDebug(
- "Inserted " + count + " row/s using statement : " + stmnt.getRawStatement());
+ "Inserted " + count + " row/s using statement : " + stmnt.getRawStatement());
}
} else {
if (synLog.isTraceOrDebugEnabled()) {
synLog.traceOrDebug(
- "No rows were inserted for statement : " + stmnt.getRawStatement());
+ "No rows were inserted for statement : " + stmnt.getRawStatement());
}
}
-
- if (!con.getAutoCommit()) {
- con.commit();
+
+ if (!useTransaction) {
+ if (!con.getAutoCommit()) {
+ con.commit();
+ }
}
} catch (SQLException e) {
handleException("Error execuring insert statement : " + stmnt.getRawStatement() +
- " against DataSource : " + getDSName(), e, msgCtx);
+ " against DataSource : " + getDSName(), e, msgCtx);
} finally {
if (con != null) {
try {
con.close();
- } catch (SQLException ignore) {}
+ } catch (SQLException ignore) {
+ }
}
}
}
Modified: synapse/trunk/java/src/site/xdoc/Synapse_Configuration_Language.xml
URL: http://svn.apache.org/viewvc/synapse/trunk/java/src/site/xdoc/Synapse_Configuration_Language.xml?rev=916396&r1=916395&r2=916396&view=diff
==============================================================================
--- synapse/trunk/java/src/site/xdoc/Synapse_Configuration_Language.xml (original)
+++ synapse/trunk/java/src/site/xdoc/Synapse_Configuration_Language.xml Thu Feb 25 18:49:50 2010
@@ -1764,7 +1764,7 @@
<h4>
<a name="dbreport" id="dbreport">DB-report</a>
</h4>
-<pre xml:space="preserve"><dbreport>
+<pre xml:space="preserve"><dbreport useTransaction=(true|false)>
<connection>
<pool>
(