RE: Tx - row lock contention after implementing transaction management in application server

From: Ric Van Dyke <ric.van.dyke_at_hotsos.com>
Date: Tue, 26 May 2009 13:59:39 -0500
Message-ID: <C970F08BBE1E164AA8063E01502A71CF01190C15_at_WIN02.hotsos.com>



If the session is still active then using v$sql_bind_capture you should be able to find the values you need.

Simple example:

SQL> select child_number, name, value_string from v$sql_bind_capture where hash_value = 1584150640;

   CHILD_NUMBER NAME                           VALUE_STRING

--------------- ------------------------------ --------------------------------------------------
2 :B1 20491264827

Ric Van Dyke
Hotsos Enterprises Ltd

-----Original Message-----

From: oracle-l-bounce_at_freelists.org on behalf of dd yakkali Sent: Tue 5/26/2009 11:41 AM
To: oracle-l_at_freelists.org
Subject: Tx - row lock contention after implementing transaction management in application server  

Hello everyone,

After our application folks implemented transaction management in the app, I am seeing a bunch of seesions waiting with "Tx - row lock contention" on an insert statement. we found that the parent table insert is not commited and hence the child record insert is hanging as both these statements are using different oracle sessions for some reason. This continues for eternity, until the app server is killled and restarted.

Sun Java Enterprise Server, hibernate, oracle 10.2.0.4 RAC.

Now here is the question: Our java app server folks are asking me to give them bind variable values of the statement that is hanging. We have a connection pool which is 132 connections size. Is there any way to get the bind variable values after the fact, i.e while it is waiting for the parent to commit?

Thanks
Deen

--

http://www.freelists.org/webpage/oracle-l Received on Tue May 26 2009 - 13:59:39 CDT

Original text of this message