Dear all, I've got a similar Problem with Derby locks like it was described in "Deby create LOCK on my table and do not release it , what is my mistake ?".
I have an JDBC application that uses a Derby 10.0.2.1 Network Server on an IBM AIX machine. My application performs delete- and update-statements on a table sequentially in one connection for a user request. Then the application commits the changes and selects some rows from the table (in an other connection). My application will keep the connections open. Thereby, on some conditions (I don't know) some locks remain! I watch the locks in the virtual LockTable with: SELECT * FROM NEW org.apache.derby.diag.LockTable() AS LT (as found on "http://publib.boulder.ibm.com/infocenter/cldscp10/ index.jsp?topic=/com.ibm.cloudscape.doc/hubprnt57.htm" (join link)), where I get something like XID TYPE MODE TABLENAME LOCKNAME STATE TABLETYPE LOCKCOUNT INDEXNAME 123 ROW U tableX (90,78) GRANT T 1 (null) but I cannot see any open transaction in the TransactionTable: SELECT SQL_TEXT FROM NEW org.apache.derby.diag.TransactionTable() AS Trans The Network Server is started with several properties to get detailed information (as described in the "FAQ on debugging lock timeout errors"), but I can not join the information I've got: all transactions are finished and committed. Sometimes I cannot find any command doing anything with locked table for the XID (the transaction ID) of the lock, so how is that XID set to the LockTable for the specific table? In some other tests the XID in the LockTable was (null)! How can I put the information together? What is wrong? How can I identify the locked data row? (with the LOCKNAME?) Thank you in advance, regards, Klas.
