I am using Derby as a database as part of a Glassfish installation.  I am 
processing JMS messages with each one causing access to the Derby database via 
Eclipselink.  After about 80K to 100K messages processed, I have a hung system.

I run jstack on the Derby network server and there is no deadlock.  Also I run 
jstack on the Glassfish and there is no deadlock.  In the thread stack for 
Glassfish I see a thread with the following stack trace:

"p: thread-pool-1; w: 3" daemon prio=6 tid=0x5de34800 nid=0xb94 runnable 
[0x60abe000..0x60abfd94]
   java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at org.apache.derby.client.net.Reply.fill(Unknown Source)
        at org.apache.derby.client.net.Reply.ensureALayerDataInBuffer(Unknown 
Source)
        at org.apache.derby.client.net.Reply.readDssHeader(Unknown Source)
        at org.apache.derby.client.net.Reply.startSameIdChainParse(Unknown 
Source)
        at 
org.apache.derby.client.net.NetConnectionReply.readExchangeServerAttributes(Unknown
 Source)
        at 
org.apache.derby.client.net.NetConnection.readServerAttributesAndKeyExchange(Unknown
 Source)
        at 
org.apache.derby.client.net.NetConnection.readAllConnectCommandsChained(Unknown 
Source)
        at org.apache.derby.client.net.NetConnection.readDeferredReset(Unknown 
Source)
        at 
org.apache.derby.client.net.NetAgent.readDeferredResetConnection(Unknown Source)
        at org.apache.derby.client.net.NetAgent.beginReadChain(Unknown Source)
        at org.apache.derby.client.am.Agent.flow(Unknown Source)
        at org.apache.derby.client.am.Statement.flowExecute(Unknown Source)
        at org.apache.derby.client.am.Statement.executeQueryX(Unknown Source)
        at org.apache.derby.client.am.Statement.executeQuery(Unknown Source)
        - locked <0x1d90dba0> (a org.apache.derby.client.net.NetConnection40)
        at 
org.apache.derby.client.am.Connection.getTransactionIsolation(Unknown Source)
        at 
org.apache.derby.client.am.LogicalConnection.getTransactionIsolation(Unknown 
Source)
        at 
com.sun.gjc.spi.ManagedConnectionFactory.resetIsolation(ManagedConnectionFactory.java:463)
        at 
com.sun.gjc.spi.ManagedConnection.resetConnectionProperties(ManagedConnection.java:354)
        at 
com.sun.gjc.spi.ManagedConnection.getConnection(ManagedConnection.java:328)
        at 
com.sun.enterprise.resource.ConnectorAllocator.fillInResourceObjects(ConnectorAllocator.java:155)
        at 
com.sun.enterprise.resource.AbstractResourcePool.getResource(AbstractResourcePool.java:514)
        at 
com.sun.enterprise.resource.PoolManagerImpl.getResourceFromPool(PoolManagerImpl.java:248)
        at 
com.sun.enterprise.resource.PoolManagerImpl.getResource(PoolManagerImpl.java:176)
        at 
com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:337)
        at 
com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:189)
        at 
com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:165)
        at 
com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:158)

This thread is making no progress at all.  This is the one hanging my system.  
The derby log shows:

2010-11-15 23:57:46.593 GMT : Apache Derby Network Server - 10.5.3.0 - (802917) 
started and ready to accept connections on port 1527
----------------------------------------------------------------
2010-11-16 00:00:20.078 GMT:
 Booting Derby version The Apache Software Foundation - Apache Derby - 10.5.3.0 
- (802917): instance a816c00e-012c-51f9-12b2-0000376d74d3
on database directory C:\Documents and Settings\Brett 
Bergquist\.netbeans-derby\csemdb

Database Class Loader started - derby.database.classpath='CSEM.csemderby'
(END)

The rest of Glassfish is up and running as well as other parts of my 
application.  This one thread, however, is causing my JMS processing to be hung.

This is the second time in two days of testing that this has occurred.  The 
previous lockup has exactly the same thread stack traceback in a few other 
threads, all from different database queries, all stuck at the same point.  
Restarting the derby network server, caused the condition to clear up as far as 
the application server is concerned, so I am pretty confident it is related to 
derby.

Any help on where to look to find this problem will be greatly appreciated.

Brett




Reply via email to