I don't understand your scenario. The uncommitted work is done by the application client??
I don't recommend ever calling setAutoCommit from an application. If you are outside a jta transaction, you presumably want autocommit behavior. If you don't, use UserTransaction.
Some drivers (including, last time I checked, oracle) are not jdbc spec compliant and do not commit pending work when autocommit is turned on (the tranql wrapper uses setAutocommit(true) to end transactions when wrapping non-xa connections/datasources). To counteract this defect there's a property CommitOnAutocommit you can use with the generic wrapper. I recommend using a db-specific wrapper where this problem should be taken care of.
On Apr 30, 2010, at 1:11 PM, Anshuk wrote:
I am trying to use a ejb which insert/update a database and have configured the ejb to handle container managed transaction.
The auto commit has been set to false, when I am trying to insert a row, from the application client (within the same server, same ear actually), there is no exception, but when I check the database, the record is not shown in the tables. When the app. server is shut down, the records is shown in the database table.
This good scenario is not working. Only after this works successfully, I will try for thr roll back scenario.
Has anybody seen a simialr situation?
View this message in context: geronimo 2.1.4 container managed transaction
Sent from the Users mailing list archive at Nabble.com.