On 8/21/06, Aaron Mulder <[EMAIL PROTECTED]> wrote:
I ran a test where one publisher sent 10 messages to a topic with 500
connected subscribers (run as 500 threads from a single VM, but in a
different VM than the producer).  Each consumer knows how many
messages to expect, and tries to shut down once it receives the last
message.  The consumers were registered using
MessageConsumer.setMessageListener(...)

At the end of the run, the consumer VM didn't shut down.  Looking at a
thread dump, it seems like a couple of the consumers are blocked on
I/O and aren't going to shut down (though the majority did shut down).
 I've confirmed that all the consumers received all the messages they
were expecting, and did attempt to shut down (you can see
ActiveMQSession.close in the thread dump).  Any suggestions to avoid
this?

Thanks,
     Aaron

"ActiveMQ Session Task" daemon prio=1 tid=0x082a1cd0 nid=0x3723 in
Object.wait() [0x7bac5000..0x7bac6050]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x97b91310> (a 
org.apache.activemq.thread.PooledTaskRunner$1)
        at java.lang.Object.wait(Object.java:474)
        at 
org.apache.activemq.thread.PooledTaskRunner.shutdown(PooledTaskRunner.java:88)
        - locked <0x97b91310> (a org.apache.activemq.thread.PooledTaskRunner$1)
        at 
org.apache.activemq.ActiveMQSessionExecutor.stop(ActiveMQSessionExecutor.java:113)
        at org.apache.activemq.ActiveMQSession.dispose(ActiveMQSession.java:539)
        - locked <0x9612ff30> (a org.apache.activemq.ActiveMQSession)
        at org.apache.activemq.ActiveMQSession.close(ActiveMQSession.java:516)
        at org.activemq.tests.ActiveMQClient.close(ActiveMQClient.java:77)
        at org.activemq.tests.Consumer$2$1.onMessage(Consumer.java:76)
        at 
org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:795)


It doesn't look too good closing the session inside a MessageListener
- any chance you could change that code?

-

James
-------
http://radio.weblogs.com/0112098/

Reply via email to