geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Problems with AMQ RA under Geronimo MDB container
Date Wed, 20 Jun 2007 18:02:39 GMT
What happens if the thread pool is say 3 X larger than the number of  
message endpoints/sessions?  The code looks a little bit like it  
needs twice as many threads as message endpoints (???)

Do any messages get through?

just guessing...
thanks
david jencks

On Jun 20, 2007, at 1:49 PM, vineetc wrote:

>
> Hello All Geronimo Users and Developers,
>
> I am trying to build a MDB based recv. application that will process
> messages delivered by AMQ RA.
>
> ENVIRONMENT
> Windows XP
> JDK 1.6.0_01
> ActiveMQ 4.1.1 and the the RA provided by the dist.
> Geronimo1.1.1
> MySQL 5x
>
> I have set the "maxSessions" to 29 and "maxMessagesPerSession" to  
> 900 on the
> ActivationSpec. for the MDB. These properties are made available by  
> AMQ for
> performance tuning. MaxSession corresponds to the number of AMQ
> ServerSession's or MessageEndpoint (listeners) i believe and
> "maxMessagesPerSession" is the number of messages kept in RAM.
>
> Scenario:
> I send a bunch of messages while the EAR is not running.
> After the messages have been sent (say 1000 messages) I start the EAR
> application.
> The EAR application seems to hang and or deadlock after processing 29
> messages.
>
> The JEECA's connector Thread Pool is configured with a size of 30  
> threads
> and the property "waitWhenBlocked" is set to "true".
> This WorkManager thread pool is provided by Geronimo server.
> After looking at the threads from JConsole i saw following stack  
> trace(s)
> for Connector Threads which are stuck.
>
> The first thread from connector thread pool had following stack trace.
>
> Name: ConnectorThreadPool 0
> Stack trace:
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> edu.emory.mathcs.backport.java.util.concurrent.locks.CondVar.await 
> (CondVar.java:75)
> edu.emory.mathcs.backport.java.util.concurrent.ArrayBlockingQueue.take 
> (ArrayBlockingQueue.java:318)
> org.apache.activemq.transport.FutureResponse.getResult 
> (FutureResponse.java:42)
> org.apache.activemq.transport.ResponseCorrelator.request 
> (ResponseCorrelator.java:75)
> org.apache.activemq.ActiveMQConnection.syncSendPacket 
> (ActiveMQConnection.java:1175)
> org.apache.activemq.ActiveMQConnectionConsumer.<init> 
> (ActiveMQConnectionConsumer.java:86)
> org.apache.activemq.ActiveMQConnection.createConnectionConsumer 
> (ActiveMQConnection.java:1085)
> org.apache.activemq.ra.ActiveMQEndpointWorker$1.run 
> (ActiveMQEndpointWorker.java:164)
>    - locked org.apache.activemq.ra.ActiveMQEndpointWorker$1@4b755
> org.apache.geronimo.connector.work.WorkerContext.run 
> (WorkerContext.java:291)
> org.apache.geronimo.pool.ThreadPool$1.run(ThreadPool.java:172)
> org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run 
> (ThreadPool.java:289)
> EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown  
> Source)
> java.lang.Thread.run(Thread.java:619)
>
>
> All of the rest 29 threads from the connector thread pool have the  
> same
> stack trace as below.
>
> Name: ConnectorThreadPool 29
> State: WAITING on
> edu.emory.mathcs.backport.java.util.concurrent.locks.CondVar@4dd658
> Total blocked: 156  Total waited: 1
>
> Stack trace:
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> edu.emory.mathcs.backport.java.util.concurrent.locks.CondVar.await 
> (CondVar.java:75)
> edu.emory.mathcs.backport.java.util.concurrent.ArrayBlockingQueue.take 
> (ArrayBlockingQueue.java:318)
> org.apache.activemq.transport.FutureResponse.getResult 
> (FutureResponse.java:42)
> org.apache.activemq.transport.ResponseCorrelator.request 
> (ResponseCorrelator.java:75)
> org.apache.activemq.ActiveMQConnection.syncSendPacket 
> (ActiveMQConnection.java:1175)
> org.apache.activemq.TransactionContext.setXid 
> (TransactionContext.java:578)
> org.apache.activemq.TransactionContext.end(TransactionContext.java: 
> 329)
> org.apache.activemq.ra.LocalAndXATransaction.end 
> (LocalAndXATransaction.java:90)
> org.apache.geronimo.transaction.manager.WrapperNamedXAResource.end 
> (WrapperNamedXAResource.java:51)
> org.apache.geronimo.transaction.manager.TransactionImpl.delistResource 
> (TransactionImpl.java:209)
>    - locked  
> org.apache.geronimo.transaction.manager.TransactionImpl@1221045
> org.apache.geronimo.transaction.context.InheritableTransactionContext. 
> delistResource(InheritableTransactionContext.java:99)
> org.openejb.mdb.EndpointHandler.teardownDelivery 
> (EndpointHandler.java:360)
> org.openejb.mdb.EndpointHandler.afterDelivery(EndpointHandler.java: 
> 256)
> org.openejb.mdb.EndpointProxy.afterDelivery(EndpointProxy.java:72)
> org.apache.activemq.ra.MessageEndpointProxy 
> $MessageEndpointAlive.afterDelivery(MessageEndpointProxy.java:126)
> org.apache.activemq.ra.MessageEndpointProxy.afterDelivery 
> (MessageEndpointProxy.java:65)
> org.apache.activemq.ra.ServerSessionImpl.afterDelivery 
> (ServerSessionImpl.java:216)
> org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:751)
> org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java: 
> 165)
> org.apache.geronimo.connector.work.WorkerContext.run 
> (WorkerContext.java:291)
> org.apache.geronimo.pool.ThreadPool$1.run(ThreadPool.java:172)
> org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run 
> (ThreadPool.java:289)
> EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown  
> Source)
> java.lang.Thread.run(Thread.java:619)
>
>
> Any idea whats causing the problem?
> Any help is appreciated.
>
> Thanks,
> Vineet
> -- 
> View this message in context: http://www.nabble.com/Problems-with- 
> AMQ-RA-under-Geronimo-MDB-container-tf3954028s134.html#a11218765
> Sent from the Apache Geronimo - Users mailing list archive at  
> Nabble.com.
>


Mime
View raw message