currently i'm using a CachedConnectionFactory from spring to limit the number
of open sessions.
together with the connection uri parameters this means that activemq uses
one thread per session to process messages in the
simplemessagelistenercontainer instances and there is a maximum of 60
concurrent sessions.
my problem with this config is that fore some reasons sessions are closed by
the cached factory to early which causes exceptions like this:
2012-06-12 11:46:06,051 DEBUG [ActiveMQ Session Task-19]
o.s.j.l.SimpleMessageListenerContainer - Listener exception after container
shutdown
javax.jms.IllegalStateException: The Session is closed
at
org.apache.activemq.ActiveMQSession.checkClosed(ActiveMQSession.java:722)
~[activemq-core-5.5.1.jar:5.5.1]
at
org.apache.activemq.ActiveMQSession.getTransacted(ActiveMQSession.java:520)
~[activemq-core-5.5.1.jar:5.5.1]
at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) ~[na:na]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[na:1.7.0_04]
at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_04]
at
org.springframework.jms.connection.CachingConnectionFactory$CachedSessionInvocationHandler.invoke(CachingConnectionFactory.java:344)
~[spring-jms-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at $Proxy31.getTransacted(Unknown Source) ~[na:na]
at
org.springframework.jms.listener.AbstractMessageListenerContainer.commitIfNecessary(AbstractMessageListenerContainer.java:572)
~[spring-jms-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:481)
~[spring-jms-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at
org.springframework.jms.listener.AbstractMessageListenerContainer.executeListener(AbstractMessageListenerContainer.java:439)
~[spring-jms-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at
org.springframework.jms.listener.SimpleMessageListenerContainer.processMessage(SimpleMessageListenerContainer.java:311)
[spring-jms-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at
org.springframework.jms.listener.SimpleMessageListenerContainer$2.onMessage(SimpleMessageListenerContainer.java:287)
[spring-jms-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at
org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1230)
[activemq-core-5.5.1.jar:5.5.1]
at
org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:134)
[activemq-core-5.5.1.jar:5.5.1]
at
org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:205)
[activemq-core-5.5.1.jar:5.5.1]
at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:127)
[activemq-core-5.5.1.jar:5.5.1]
at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
[activemq-core-5.5.1.jar:5.5.1]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
[na:1.7.0_04]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
[na:1.7.0_04]
at java.lang.Thread.run(Thread.java:722) [na:1.7.0_04]
--
View this message in context: http://activemq.2283324.n4.nabble.com/Sugestions-how-to-listen-on-several-thousand-topics-with-spring-tp4653164p4653195.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.