db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kurt Huwig <k.hu...@iku-ag.de>
Subject Re: Lock Timeout
Date Fri, 06 Jul 2007 12:54:30 GMT
Hi Henri,

I had a look at this, but I do not get a deadlock, just an ordinary timeout. 
As I did not change the deadlock-timeout, there should be deadlock-checking, 
right?

Am Freitag, 6. Juli 2007 schrieb Henri van de Scheur:
> Hi Kurt!
>
> Did you have a look at a page describing debugging lock-situations:
> http://wiki.apache.org/db-derby/LockDebugging
> Maybe that could help you?
>
> Henri
>
> Kurt Huwig wrote:
> > Hi there,
> >
> > I try to debug lock timeouts but am completely clueless. I use these
> > Derby settings:
> >
> > 	-Dderby.storage.pageCacheSize=2500
> > 	-Dderby.stream.error.logSeverityLevel=0
> > 	-Dderby.locks.waitTimeout=3600
> > 	-Dderby.locks.deadlockTrace=true
> > 	-Dderby.locks.monitor=true
> >
> > and this for the connections:
> >
> > 	Connection.TRANSACTION_READ_UNCOMMITTED
> >
> > The application is multi-threaded, multi-connection and using the
> > Embedded driver. Is there a way to show which statements lock each other?
> > I suspect that a ResultSet is still open somewhere.
> >
> > This is from the derby.log:
> >
> > 2007-07-05 04:50:05.196 GMT Thread[SPONTS-278,5,main] (XID = 80082776),
> > (SESSIONID = 37), (DATABASE = SPONTS), (DRDAID = null), Cleanup action
> > starting
> > 2007-07-05 04:50:05.196 GMT Thread[SPONTS-278,5,main] (XID = 80082776),
> > (SESSIONID = 37), (DATABASE = SPONTS), (DRDAID = null), Failed Statement
> > is: INSERT INTO journal
> > (id,ip,sender,recipient,mailsender,mailfrom,mailto,cc,bcc,replyto,maildat
> >e,receiveddate,subject,totallength,attachments,spamscore,status,reason)
> > VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,
> > ?) with 18 parameters [...]
> > ERROR 40XL1: A lock could not be obtained within the time requested
> >         at
> > org.apache.derby.iapi.error.StandardException.newException(Unknown
> > Source)
> >         at
> > org.apache.derby.impl.services.locks.LockSet.lockObject(Unknown Source)
> >         at
> > org.apache.derby.impl.services.locks.SinglePool.lockAnObject(Unknown
> > Source) at
> > org.apache.derby.impl.services.locks.SinglePool.lockObject(Unknown
> > Source)
> >         at
> > org.apache.derby.impl.store.raw.xact.RowLocking2.lockContainer(Unknown
> > Source)
> >         at
> > org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(Unk
> >nown Source)
> >         at
> > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Un
> >known Source)
> >         at
> > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Un
> >known Source)
> >         at
> > org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown Source)
> >         at
> > org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unk
> >nown Source)
> >         at org.apache.derby.impl.store.access.heap.Heap.open(Unknown
> > Source) at
> > org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknow
> >n Source)
> >         at
> > org.apache.derby.impl.store.access.RAMTransaction.openCompiledConglomerat
> >e(Unknown Source)
> >         at
> > org.apache.derby.impl.sql.execute.RowChangerImpl.openForUpdate(Unknown
> > Source)
> >         at org.apache.derby.impl.sql.execute.RowChangerImpl.open(Unknown
> > Source)
> >         at org.apache.derby.impl.sql.execute.RowChangerImpl.open(Unknown
> > Source)
> >         at
> > org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknow
> >n Source)
> >         at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown
> > Source)
> >         at
> > org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown
> > Source)
> >         at
> > org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown
> > Source)
> >         at
> > org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknow
> >n Source)
> >         at
> > org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(Unknown
> > Source)
> >
> > 2007-07-05 04:51:05.461 GMT Thread[SMTP-out,5,main] (XID = 80083917),
> > (SESSIONID = 37), (DATABASE = SPONTS), (DRDAID = null), Cleanup action
> > starting
> > 2007-07-05 04:51:05.461 GMT Thread[SMTP-out,5,main] (XID = 80083917),
> > (SESSIONID = 37), (DATABASE = SPONTS), (DRDAID = null), Failed Statement
> > is: SELECT reason FROM journal WHERE id=? with 1 parameters begin
> > parameter #1: 111394B19A14-0 :end parameter
> > ERROR 40XL1: A lock could not be obtained within the time requested
> >         at
> > org.apache.derby.iapi.error.StandardException.newException(Unknown
> > Source)
> >         at
> > org.apache.derby.impl.services.locks.LockSet.lockObject(Unknown Source)
> >         at
> > org.apache.derby.impl.services.locks.SinglePool.lockAnObject(Unknown
> > Source) at
> > org.apache.derby.impl.services.locks.SinglePool.lockObject(Unknown
> > Source)
> >         at
> > org.apache.derby.impl.store.raw.xact.RowLocking2.lockContainer(Unknown
> > Source)
> >         at
> > org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(Unk
> >nown Source)
> >         at
> > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Un
> >known Source)
> >         at
> > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Un
> >known Source)
> >         at
> > org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown Source)
> >         at
> > org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unk
> >nown Source)
> >         at org.apache.derby.impl.store.access.heap.Heap.open(Unknown
> > Source) at
> > org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknow
> >n Source)
> >         at
> > org.apache.derby.impl.store.access.RAMTransaction.openCompiledConglomerat
> >e(Unknown Source)
> >         at
> > org.apache.derby.impl.store.access.btree.index.B2IForwardScan.init(Unknow
> >n Source)
> >         at
> > org.apache.derby.impl.store.access.btree.index.B2I.openScan(Unknown
> > Source)
> >         at
> > org.apache.derby.impl.store.access.RAMTransaction.openScan(Unknown
> > Source)
> >         at
> > org.apache.derby.impl.store.access.RAMTransaction.openCompiledScan(Unknow
> >n Source)
> >         at
> > org.apache.derby.impl.sql.execute.TableScanResultSet.openScanController(U
> >nknown Source)
> >         at
> > org.apache.derby.impl.sql.execute.TableScanResultSet.openCore(Unknown
> > Source) at
> > org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.openCore(Unk
> >nown Source)
> >         at
> > org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(Unkno
> >wn Source)
> >         at
> > org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(Unknown
> > Source)
> >         at
> > org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown
> > Source)
> >         at
> > org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown
> > Source)
> >         at
> > org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknow
> >n Source)
> >         at
> > org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeQuery(Unknown
> > Source)



-- 
Mit freundlichen Grüßen

Kurt Huwig (Vorstand)
Telefon 0681/96751-50, Telefax 0681/96751-66
http://www.iku-ag.de/

iKu Systemhaus AG, Am Römerkastell 4, 66121 Saarbrücken
Amtsgericht: Saarbrücken, HRB 13240
Vorstand: Kurt Huwig, Andreas Niederländer
Aufsichtsratsvorsitzender: Jan Bankstahl

GnuPG 1024D/99DD9468 64B1 0C5B 82BC E16E 8940  EB6D 4C32 F908 99DD 9468

Mime
View raw message