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

  • From: "Ric Van Dyke" <ric.van.dyke@xxxxxxxxxx>
  • To: <dd.yakkali@xxxxxxxxx>, <oracle-l@xxxxxxxxxxxxx>
  • Date: Tue, 26 May 2009 13:59:39 -0500

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@xxxxxxxxxxxxx on behalf of dd yakkali
Sent: Tue 5/26/2009 11:41 AM
To: oracle-l@xxxxxxxxxxxxx
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

Other related posts: