[jboss-svn-commits] JBL Code SVN: r32667 - in labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb: listeners/gateway and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Apr 28 07:29:46 EDT 2010


Author: tfennelly
Date: 2010-04-28 07:29:44 -0400 (Wed, 28 Apr 2010)
New Revision: 32667

Modified:
   labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/helpers/persist/JdbcCleanConn.java
   labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
Log:
https://jira.jboss.org/jira/browse/JBESB-3282
sql-listener not working correctly with transacted="true"

Modified: labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/helpers/persist/JdbcCleanConn.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/helpers/persist/JdbcCleanConn.java	2010-04-28 10:32:33 UTC (rev 32666)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/helpers/persist/JdbcCleanConn.java	2010-04-28 11:29:44 UTC (rev 32667)
@@ -59,9 +59,12 @@
 	
 	public void commit() throws SQLException
 	{
-		if ((null != m_conn) && (!transactional))
+		if (null != m_conn)
 		{
-			m_conn.commit();
+			if(!transactional) 
+			{
+				m_conn.commit();
+			}
 		}
 		else
 			throw new SQLException("Connection is null!");
@@ -69,9 +72,11 @@
 
 	public void rollback() throws SQLException
 	{
-		if ((null != m_conn) && (!transactional))
+		if (null != m_conn)
 		{
-			m_conn.rollback();
+			if(!transactional) {
+				m_conn.rollback();
+			}
 		} else {
 			throw new SQLException("Connection is null");
 		}
@@ -288,6 +293,10 @@
 
 		if (!transactional)
 		{
+			if(m_conn.isClosed()) {
+				System.out.println("*** DS returning dead connections!!!");
+			}
+			
 			m_conn.setAutoCommit(false);
 			m_conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
 		}

Modified: labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java	2010-04-28 10:32:33 UTC (rev 32666)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java	2010-04-28 11:29:44 UTC (rev 32667)
@@ -101,6 +101,8 @@
      * The current transaction strategy
      */
     private TransactionStrategy transactionStrategy ;
+
+	private boolean transacted;
     
     public SqlTableGatewayListener(ConfigTree config)
             throws ConfigurationException {
@@ -146,10 +148,7 @@
         }
         finally {
             if (failure) {
-                if (_dbConn != null) {
-                    _dbConn.release();
-                    _dbConn = null;
-                }
+                releaseDBConnection();
             }
         }
     }
@@ -396,7 +395,7 @@
             }
         }
         
-        final boolean transacted = _config.getBooleanAttribute(ListenerTagNames.TRANSACTED_TAG, false) ;
+        transacted = _config.getBooleanAttribute(ListenerTagNames.TRANSACTED_TAG, false);
         transactionStrategy = TransactionStrategy.getTransactionStrategy(transacted) ;
     } // ________________________________
 
@@ -519,11 +518,21 @@
     } // ________________________________
 
     public void refreshDatasource() {
-    	_dbConn = null;
+    	releaseDBConnection();    	
     	if (_datasource != null) {
     		getDbConn();
     	}
     }
+
+	private void releaseDBConnection() {
+		if(_dbConn != null) {
+			try {
+				_dbConn.release();
+			} finally {
+				_dbConn = null;
+			}
+    	}
+	}
     
     /**
      * Obtain a new database connection with parameter info
@@ -554,13 +563,14 @@
         	 * at the appropriate time.
         	 */
         	
-            _dbConn = new JdbcCleanConn(oDS);
+        	_dbConn = new JdbcCleanConn(oDS, transacted);
         } 
       
         if ((null != _dbConn) && (_dbConn.getStatements().size() == 0)) {
         	try {
-				prepareStatements();
+				prepareStatements();				
 			} catch (SQLException e) {
+				releaseDBConnection();
 				_logger.warn("Exception preparing statements", e);
 			}
         }



More information about the jboss-svn-commits mailing list