[jboss-user] [JBoss Messaging] - Re: LocalTx, ClientTransaction leak?

ydzsidemiik do-not-reply at jboss.com
Tue Jan 8 09:49:41 EST 2008


I've studied the GC root paths for some of these objects, they all look like this:


  | org.jboss.jms.tx.ClientTransaction
  | <- value of EDU.oswego.cs.dl.util.concurrent.ConcurrentHashMap$Entry
  | <- [287] of EDU.oswego.cs.dl.util.concurrent.ConcurrentHashMap$Entry[1025]
  | <- table of EDU.oswego.cs.dl.util.concurrent.ConcurrentHashMap
  | <- transactions of org.jboss.jms.tx.ResourceManager
  | <- resourceManager of org.jboss.jms.client.state.ConnectionState
  | <- parent of org.jboss.jms.client.state.SessionState
  | <- parent of org.jboss.jms.client.state.ConsumerState
  | <- state of org.jboss.jms.client.delegate.ClientConsumerDelegate [Stack Local]
  | 

Where the stack local is reported to be on the stack of 'Connection Consumer for dest JBossQueue[...]', which is a thread feeding an MDB.

I've collected allocation traces for some of these objects as well, and they all look like this:


  | org.jboss.resource.connectionmanager.xa.JcaXAResourceWrapper.end(Xid, int)
  | com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.delistResource(XAResource, int)
  | org.jboss.resource.adapter.jms.JmsSession.close()
  | ... earlier frames vary ...
  | 

It's strange that the traces cut off there since (looking at the source), no allocations occur in that function. However, I tried to figure out where the trace went from there and my guess is something like MessagingXAResource.end -> MessagingXAResource.unsetCurrentTransactionId -> ResourceManager.createLocalTx, which seems to be a plausible source of these allocations.

I don't know where to go from here. Please help :(

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4117935#4117935

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4117935



More information about the jboss-user mailing list