db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Klas U." <ak...@gmx.de>
Subject RE: Deby create LOCK on my table and do not release it , what is my mistake ?
Date Thu, 26 Jan 2006 13:26:50 GMT
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 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

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,

View raw message