You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-user@db.apache.org by Pi...@lakeviewtech.com on 2004/11/08 17:01:56 UTC

Derby and JBoss JMS




I am attempting to get JBoss working using Derby as the default data
source, replacing Hypersonic DB.  I am using the Network Server and the db2
driver ().  I have made several changes to the JBoss config both for server
and JMS, which I can send if needed.  My EJBs appear to be working fine.
However, I am getting locking errors when using JMS.  Everything works OK
when using the hsqldb.  For kicks, I also put in place the null persistence
manager and my app works also, but obviously I am not getting any
persistent messages.   We going to be using JBoss clustering so I need
persistent messages.

Does anyone have a set of JBoss config files available for Derby including
the JMS changes?  I found bits and pieces for cloudscape, but not
everything.

I am suspicious of the XAException list since I don't think XA is supported
by Derby using the Network Server.

Any help would be greatly appreciated.
JBoss and Derby logs follow.

=========================
Here is a snippet of my Jboss log:
=========================
2004-11-08 09:38:51,127 WARN  [org.jboss.tm.TransactionImpl] XAException:
tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=rem-piercej/510,
BranchQual=, localId=510] errorCode=XAER_RMERR
org.jboss.mq.SpyXAException: - nested throwable:
(org.jboss.mq.SpyJMSException: Could not commit tx: 62; - nested throwable:
(com.ibm.db2.jcc.c.SqlException:
2004-11-08 15:38:51.107 GMT
XID       |TYPE         |MODE|LOCKCOUNT|LOCKNAME
|STATE|TABLETYPE / LOCKOBJ                   |INDEXNAME / CONTAINER_ID /
(MODE for LATCH only)  |TABLENAME / CONGLOM_ID                |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*** The following row is the victim ***
1016      |ROW          |U   |0        |(2,20)
|WAIT |T                                     |NULL
|JMS_MESSAGES                          |
*** The above row is the victim ***
1020      |ROW          |X   |2        |(1,1)
|GRANT|T                                     |SQL041108093337790
|JMS_MESSAGES                          |
1022      |ROW          |X   |0        |(1,1)
|WAIT |T                                     |SQL041108093337790
|JMS_MESSAGES                          |
1020      |LATCH        |org.|1        |Page(1,Container(0, 945))
|GRANT|T                                     |SQL041108093337790
|JMS_MESSAGES                          |
1019      |ROW          |X   |1        |(2,27)
|GRANT|T                                     |NULL
|JMS_MESSAGES                          |
*** A latch/lock, org.apache.derby.impl.services.locks.Lock@1d1402c, exist
in the lockTable that cannot be printed ***
1023      |LATCH        |org.|1        |Page(0,Container(0, 945))
|GRANT|T                                     |SQL041108093337790
|JMS_MESSAGES                          |
1008      |TABLE        |IX  |3        |Tablelock
))
      at org.jboss.mq.SpyXAResource.commit(SpyXAResource.java:88)
      at
org.jboss.tm.TransactionImpl$Resource.commit(TransactionImpl.java:2141)
      at
org.jboss.tm.TransactionImpl.commitResources(TransactionImpl.java:1674)
      at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:330)
      at org.jboss.tm.TxManager.commit(TxManager.java:200)
      at
org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:341)
      at
org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:877)
      at
org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:159)
      at org.jboss.mq.SpySession.run(SpySession.java:351)
      at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)
      at
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
      at java.lang.Thread.run(Thread.java:536)
Caused by: org.jboss.mq.SpyJMSException: Could not commit tx: 62; - nested
throwable: (com.ibm.db2.jcc.c.SqlException:

=========================
Here is a snippet of my Derby log:
=========================
2004-11-08 15:38:51.117 GMT Thread[DRDAConnThread_9,5,main] (XID = 1016),
(SESSIONID = 6), (DATABASE = snoboldb), (DRDAID =
C0A80AF7.G72B-954199071120919846{7}), Failed Statement is: DELETE FROM
JMS_MESSAGES WHERE TXID=? AND TXOP=?
ERROR 40XL2: A lock could not be obtained within the time requested.  The
lockTable dump is:
2004-11-08 15:38:51.107 GMT
XID       |TYPE         |MODE|LOCKCOUNT|LOCKNAME
|STATE|TABLETYPE / LOCKOBJ                   |INDEXNAME / CONTAINER_ID /
(MODE for LATCH only)  |TABLENAME / CONGLOM_ID                |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*** The following row is the victim ***
1016      |ROW          |U   |0        |(2,20)
|WAIT |T                                     |NULL
|JMS_MESSAGES                          |
*** The above row is the victim ***
1020      |ROW          |X   |2        |(1,1)
|GRANT|T                                     |SQL041108093337790
|JMS_MESSAGES                          |
1022      |ROW          |X   |0        |(1,1)
|WAIT |T                                     |SQL041108093337790
|JMS_MESSAGES                          |
1020      |LATCH        |org.|1        |Page(1,Container(0, 945))
|GRANT|T                                     |SQL041108093337790
|JMS_MESSAGES                          |
1019      |ROW          |X   |1        |(2,27)
|GRANT|T                                     |NULL
|JMS_MESSAGES                          |
*** A latch/lock, org.apache.derby.impl.services.locks.Lock@1d1402c, exist
in the lockTable that cannot be printed ***
1023      |LATCH        |org.|1        |Page(0,Container(0, 945))
|GRANT|T                                     |SQL041108093337790
|JMS_MESSAGES                          |
1008      |TABLE        |IX  |3        |Tablelock
|GRANT|T                                     |NULL
|JMS_MESSAGES                          |
1016      |TABLE        |IX  |2        |Tablelock
|GRANT|T                                     |NULL
|JMS_MESSAGES                          |
1019      |TABLE        |IX  |2        |Tablelock
|GRANT|T                                     |NULL
|JMS_MESSAGES                          |
1020      |TABLE        |IX  |1        |Tablelock
|GRANT|T                                     |NULL
|JMS_MESSAGES                          |
1021      |TABLE        |IX  |2        |Tablelock
|GRANT|T                                     |NULL
|JMS_MESSAGES                          |
1022      |TABLE        |IX  |1        |Tablelock
|GRANT|T                                     |NULL
|JMS_MESSAGES                          |
1008      |ROW          |X   |2        |(2,20)
|GRANT|T                                     |NULL
|JMS_MESSAGES                          |
1021      |ROW          |X   |1        |(2,28)
|GRANT|T                                     |NULL
|JMS_MESSAGES                          |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      at
org.apache.derby.iapi.error.StandardException.newException(StandardException.java)
      at
org.apache.derby.impl.services.locks.Timeout.createException(Timeout.java)
      at
org.apache.derby.impl.services.locks.Timeout.buildException(Timeout.java)
      at
org.apache.derby.impl.services.locks.LockSet.lockObject(LockSet.java)
      at
org.apache.derby.impl.services.locks.SinglePool.lockAnObject(SinglePool.java)
      at
org.apache.derby.impl.services.locks.SinglePool.lockObject(SinglePool.java)
      at
org.apache.derby.impl.store.raw.xact.RowLocking2.lockRecordForRead(RowLocking2.java)
      at
org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.lockPositionForRead(OpenConglomerate.java)
      at
org.apache.derby.impl.store.access.conglomerate.GenericScanController.fetchRows(GenericScanController.java)
      at
org.apache.derby.impl.store.access.heap.HeapScan.fetchNext(HeapScan.java)
      at
org.apache.derby.impl.sql.execute.TableScanResultSet.getNextRowCore(TableScanResultSet.java)
      at
org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore(ProjectRestrictResultSet.java)
      at
org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(DMLWriteResultSet.java)
      at
org.apache.derby.impl.sql.execute.DeleteResultSet.setup(DeleteResultSet.java)
      at
org.apache.derby.impl.sql.execute.DeleteResultSet.open(DeleteResultSet.java)
      at
org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java)
      at
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java)
      at
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java)
      at
org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(EmbedPreparedStatement.java)
      at
org.apache.derby.impl.drda.DRDAStatement.execute(DRDAStatement.java)
      at
org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT(DRDAConnThread.java)
      at
org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java)
      at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java)
Cleanup action completed





Re: Derby and JBoss JMS

Posted by Kathey Marsden <km...@Sourcery.Org>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> I am suspicious of the XAException list since I don't think XA is
supported
> by Derby using the Network Server.

You are right that Network Server does not yet support XA.
I am not sure how that would translate into lock timeouts.  If the
application were attempting to use XA, I would expect more serious
problems earlier.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFBkVhSG0h36bFmkocRAuyZAKCBmWF4g9EKASxTeY0qMPrV4BCKMQCcCHk8
dDdm3d/1aqoNkT1mLaASkbI=
=WR9V
-----END PGP SIGNATURE-----

Re: Derby and JBoss JMS

Posted by Pi...@lakeviewtech.com.



I should probably clarify that that I am using JBoss 4.0 and the default
server config.