Phil Steitz wrote:
Is there any way for me to get this fix into my production environment? I could not even find a way to download the 1.3 source tree.
work to get out). If you are OK building a fork from source you could download the 1.2.2 source distribution (http://commons.apache.org/downloads/download_dbcp.cgi) and replace PerUserPoolDataSource#setupDefaults with the version of this method in svn trunk. The fix for DBCP-207 should be backward compatible, so that should work. Alternatively, if you don't want to fork, you could subclass PerUserPoolDataSource (and its factory), overriding the setupDefaults method with the version in the current source.

Phil

Phil,

Thanks again for your input and direction.

I compared the 1.3 version against the 1.2.2 version of 
PerUserPoolDataSource.java, and backported the relevant change to 1.2.2 for a 
local fork, with the following patch (also attached) against the 1.2.2 source 
tree:

--- 
commons-dbcp-1.2.2-src/src/java/org/apache/commons/dbcp/datasources/PerUserPoolDataSource.java
      2007-03-25 17:51:25.000000000 -0400
+++ 
commons-dbcp-1.2.2b-src/src/java/org/apache/commons/dbcp/datasources/PerUserPoolDataSource.java
     2009-01-31 09:36:31.000000000 -0500
@@ -419,7 +419,9 @@
        if (defaultTransactionIsolation != UNKNOWN_TRANSACTIONISOLATION) {
            con.setTransactionIsolation(defaultTransactionIsolation);
        }
-        con.setReadOnly(defaultReadOnly);
+        if (con.isReadOnly() != defaultReadOnly) {
+           con.setReadOnly(defaultReadOnly);
+       }
    }

    /**


We were able to recompile the jar file and test.  Results are that 
PerUserPoolDataSource does not issue 'SET TRANSACTION' statements under any of 
the following configuration cases:

1. defaultReadOnly true
2. defaultReadOnly false
3. defaultReadOnly not set.

This is sufficient for our purposes, but may not be for everybody.  As it 
stands, we are still testing with our application, but it appears to be a good 
workaround for our particular situation.  Feel free to consider rolling it into 
a possible 1.2.3 release or similar backport effort.

I have also updated DBCP-282 with this information.

Thanks again,
josh
--- commons-dbcp-1.2.2-src/src/java/org/apache/commons/dbcp/datasources/PerUserPoolDataSource.java	2007-03-25 17:51:25.000000000 -0400
+++ commons-dbcp-1.2.2b-src/src/java/org/apache/commons/dbcp/datasources/PerUserPoolDataSource.java	2009-01-31 09:36:31.000000000 -0500
@@ -419,7 +419,9 @@
         if (defaultTransactionIsolation != UNKNOWN_TRANSACTIONISOLATION) {
             con.setTransactionIsolation(defaultTransactionIsolation);
         }
-        con.setReadOnly(defaultReadOnly);
+        if (con.isReadOnly() != defaultReadOnly) {
+	    con.setReadOnly(defaultReadOnly);
+	}
     }
 
     /**

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to