We use OJB 0.9.9 with the ODMG layer. I have to reopen a Database in the same thread, as you can see in the example below.
Obviously, closing a Database does not explicitly commit and close the current JDBC Connection. This is leading to uncommitted db-locks on entries in table OJB_LOCKENTRY after an sql-delete, if persistent locks are configured and autoCommit is set to false. Why does Database.close() not commit or close the JDBC connection ??? Step 1: open Implementation odmg = OJB.getInstance(); Database db = odmg.newDatabase(); db.open("jcdAlias#user1#pwd1", Database.OPEN_READ_ONLY); Transaction tx = odmg.newTransaction(); tx.begin(); //...delete from OJB_LOCKENTRY tx.commit(); db.close(); // current connection is not committed nor closed java.sql.Connection con = ((TransactionImpl) tx).getTransactionImpl() .getBroker().serviceConnectionManager().getConnection(); log.debug("JDBC AutoCommit "+con.getAutoCommit()); // false log.debug("JDBC Connection "+(con.isClosed() ? "closed" : "open")); // its open Step 2: reopen db.open("jcdAlias#user2#pwd2", Database.OPEN_READ_WRITE); Transaction tx = odmg.newTransaction(); tx.begin(); //...delete from OJB_LOCKENTRY //connection freeze here Regards, Juergen --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]