On Jan 20, 2006, at 2:22 AM, Ueberbach, Michael wrote:

hello matt,

It seems so as if I have found a solution to the problem. I undeployed the used connection pool for the Oracle database and deployed it again this time not using the console but the command line tool. In the deployment plan I explicitly set the option CommitBeforeAutocommit to true (which seems not to be the default using the console). Using this connection pool new created entities will be persisted at once (as happens when using the pool for MySQL).

I am continually amazed at the oracle drivers.

The documentation says about this the following:
"If the JDBC driver does not commit pending work when setAutoCommit (true) is called, then this should be set to true to work around that. It's always safest to set it to true, but the performance is better for JDBC-compliant drivers when this is set to false"

Are there any concrete experiences referring to the last point (performance) ?

It's based on theory, which may be flawed: it's possible my analysis is wrong:

if setAutoCommit(true) results in a commit in the db, it must have sent a message to the db. Commit also has to send a message to the db. So, for a compliant driver, commit followed by setAutoCommit (true) is 2 messages rather than the one for setAutoCommit(true).

I suppose it's possible that the client side of the driver could track that no work happened between the commit and the setAutoCommit call and not send a message on setAutoCommit(true).



By the way: as far as I can see geronimo works very fine and fast. (creating 1000 entities consumes about 2200 ms using connection to MySQL, against Oracle the time is varying between 3500 and 10000 ms, but that may be blamed on the network)

Always nice to hear good things!

Thanks
david jencks


regards
michael



Reply via email to