openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chandra Sarath <cthe...@yahoo.com>
Subject Re: OpenJpa, and DB2 shared lock
Date Sat, 25 Apr 2009 01:59:09 GMT

Hi Kevin,

We have saved trace in a file and attached here. Please take a look at them
and let me know if you find any information about why updates are not timed
out. Please note that we we have forced it exit, the updates did not time
out on their own. 

We are using DB2  LUW 9.1 fixpack 4  as our database with Websphere 6.1 with
EJB3 Fep and OpenJpa 1.2.0. We use a non xa driver
(db.driverClassName=com.ibm.db2.jcc.DB2Driver) used by a Datasource created
in Websphere.
http://n2.nabble.com/file/n2701139/trace_Update_lock_testing.log
trace_Update_lock_testing.log . 

Thanks,
Chandra



Kevin Sutter wrote:
> 
> Hi Chandra,
> Do you have the complete trace in a file that you could attach to this
> exchange?  Or, post on filebin or something?  Thanks!
> 
> Kevin
> 
> On Fri, Apr 24, 2009 at 3:34 AM, Chandra Sarath <cthella@yahoo.com> wrote:
> 
>>
>> Hi,
>>
>> We have turned on TRACE and we can only see update Sqls for the table
>> that
>> is locked.
>>
>>
>>                                        <prop
>> key="openjpa.Log">DefaultLevel=TRACE, Runtime=TRACE, Tool=TRACE,
>> SQL=TRACE</prop>
>>                                         <prop key="show_sql">true</prop>
>>
>> Here is how we tested.
>>
>>      1. We have locked a child table with shared lock (Read only table)
>> and
>> ran an update from parent table class.
>>         entityManger.merge(parentClass).
>>
>>       We saw an update sql in TRACE that is trying to update the Locked
>> table (say table emp). Since this table is locked, database timed out at
>> 30
>> sec (timeout property in datasource), but Jpa tried to execute update sql
>> again. It tried to update 2 times and timed out and showed the 40001 (Db2
>> -911) error. for stacktracesee below.
>>
>>    2. We tried to merge again one more time and it tried to update the
>> locked table for 4 times and timeout with the above error.
>>
>>    3. We tried to merge one more time, and this time it tried to update
>> the
>> locked table for more than 15 times and continued trying the same until
>> we
>> disconnected the database manually.
>>
>> So this is a inconsistent behavior of OpenJPA and is it a bug? We wonder
>> why
>> it is trying unlimited times to update a locked (read only) table. But
>> for
>> inserts it times out properly and shows the proper error. I do not knwo
>> why
>> it is behaving differently for updates.
>>
>> Please advice any Jpa timeout parameters that I can use for the readonly
>> locks.
>>
>> It is a top priority issue now. Any help on this is greatly appreciated.
>> Please find the stacktrace below..
>>
>> [4/23/09 13:35:27:501 PDT] 00000040 SystemErr     Caused by:
>> org.apache.openjpa.lib.jdbc.ReportingSQLException: The
>>  current transaction has been rolled back because of a deadlock or
>> timeout.
>> Reason code "68". {prepstmnt 1684038752
>> UPDATE SCHEMA.TABLE SET REC_UPD_TS = ?, AVERAGE_MONTH_INCOME = ?,
>> TEST_CODE
>> = ?,TEST_PERIOD_CODE = ? WHERE ID = ?
>> [params=(Timestamp) 2009-04-23 13:25:25.365, (long) 888, (String) H,
>> (String) W, (long) 71383]} [co
>> de=-911, state=40001]
>>        at
>>
>> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
>>        at
>>
>> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
>>        at
>>
>> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeU
>> pdate(LoggingConnectionDecorator.java:866)
>>        at
>>
>> org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269
>> )
>>      at
>>
>> org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.jav
>> a:1504)
>>        at
>>
>> org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.jav
>> a:151)
>>        at
>>
>> org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.ja
>> va:120)
>>        at
>>
>> org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.batchOrExecuteRow(BatchingPreparedStat
>> ementManagerImpl.java:102)
>>        at
>>
>> org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStateme
>> ntManagerImpl.java:86)
>>        at
>>
>> org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.jav
>>
>>
>>
>> Thanks,
>> Chandra
>>
>>
>>
>>
>> Chandra Sarath wrote:
>> >
>> > Hi,
>> >
>> > We use OpenJpa, DB2 and Websphere 6.1. We have created a Datasource in
>> > Websphere console that connects DB2 using a non-xa driver.
>> >
>> > We were testing our application about how it rolls back the data when
>> > there is a shared lock in a table. we have following scenarios. We have
>> > also set a Timeout of 30 seconds in Datasource/connection properties.
>> >
>> >   1. Insert a record in a read only (Shared lock).
>> >   2. Update a record in read only table (Shared lock).
>> >
>> >   For Scenario 1, after 30 seconds application times out and gives us
>> > proper error. But for scenario 2, it goes in infinite
>> >   loop and tries to update Database for every 30 secs, and it never
>> stops
>> > trying to.
>> >
>> >   Is there any extra property that we need to set in Jpa level or
>> > Datasource level so application can timeout after 30 seconds?
>> >
>> >   we use entityManager.persist() for inserts and entityManager.merge()
>> for
>> > updates. Can someone help us on this?
>> >
>> > Thank you!
>> > Chandra
>> >
>>
>> --
>> View this message in context:
>> http://n2.nabble.com/OpenJpa%2C-and-DB2-shared-lock-tp2675084p2691242.html
>> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>>
>>
> 
> 
http://n2.nabble.com/file/n2701139/trace_Update_lock_testing.log
trace_Update_lock_testing.log 
-- 
View this message in context: http://n2.nabble.com/OpenJpa%2C-and-DB2-shared-lock-tp2675084p2701139.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.


Mime
View raw message