activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Claus Ibsen (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (AMQ-3988) PooledSession throw Exception at closing
Date Thu, 30 Aug 2012 09:14:07 GMT

    [ https://issues.apache.org/jira/browse/AMQ-3988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13444812#comment-13444812
] 

Claus Ibsen edited comment on AMQ-3988 at 8/30/12 8:13 PM:
-----------------------------------------------------------

Ah you are shutting down the application. Do you have an embedded AMQ broker, or do you connect
to a remote broker?

Since its Spring that shutdown, then make sure to set the order in the XML files using depends-on
attributes. So Spring will shutdown Camel first.

You should also use the start|stop method on the pook as documented here
http://camel.apache.org/activemq
{code}
<bean id="pooledConnectionFactory" 
   class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
{code}

But the "depends-on" attribute should be set on these <bean> to depend on <camelContext>
so Spring can shutdown Camel before them etc.



Looking at the source in 5.4.2 vs 5.6.0 then in 5.6.0 there is a try  .. catch now with a
log WARN.
As the logic is clearing the session listener, we could possible enhance AMQ to allow setting
the listener to null, even if its already closed. 
                
      was (Author: davsclaus):
    When does this happend? Do you shutdown the application, and then you see the WARN logs.
Or do you see them during routing messages?


Looking at the source in 5.4.2 vs 5.6.0 then in 5.6.0 there is a try  .. catch now with a
log WARN.
As the logic is clearing the session listener, we could possible enhance AMQ to allow setting
the listener to null, even if its already closed. 

                  
> PooledSession throw Exception at closing
> ----------------------------------------
>
>                 Key: AMQ-3988
>                 URL: https://issues.apache.org/jira/browse/AMQ-3988
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: activemq-camel, JMS client
>    Affects Versions: 5.6.0
>         Environment: Mac OSX Snow Leopard, Java 6, ActiveMQ 5.6.0, Camel 2.10, Spring
3.0.7.RELEASE
>            Reporter: Jorge Davison
>            Priority: Minor
>
> Using ActiveMQ library 5.6.0 with Camel 2.10, the PooledSession is throwing IllegalStateException
at shutdown application time.
> With the version 5.4.2 of ActiveMQ library there is not such behavior.
> {code}
> 2012-08-23 12:08:48,274 [WARN] PooledSession(122): Caught exception trying close() when
putting session back into the pool, will invalidate. javax.jms.IllegalStateException: The
Session is closed 
> javax.jms.IllegalStateException: The Session is closed
> 	at org.apache.activemq.ActiveMQSession.checkClosed(ActiveMQSession.java:731) ~[activemq-core-5.6.0.jar:5.6.0]
> 	at org.apache.activemq.ActiveMQSession.setMessageListener(ActiveMQSession.java:813)
~[activemq-core-5.6.0.jar:5.6.0]
> 	at org.apache.activemq.pool.PooledSession.close(PooledSession.java:99) ~[activemq-pool-5.6.0.jar:5.6.0]
> 	at org.springframework.jms.support.JmsUtils.closeSession(JmsUtils.java:108) [spring-jms-3.0.7.RELEASE.jar:3.0.7.RELEASE]
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.clearResources(DefaultMessageListenerContainer.java:1099)
[spring-jms-3.0.7.RELEASE.jar:3.0.7.RELEASE]
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:999)
[spring-jms-3.0.7.RELEASE.jar:3.0.7.RELEASE]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[na:1.6.0_33]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_33]
> 	at java.lang.Thread.run(Thread.java:680) [na:1.6.0_33]
> {code}
> Pool Connection Declaration:
> {code}
> 	<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
> 		<property name="brokerURL" value="${amq.url}" />
> 		<property name="userName" value="${amq.username}" />
> 		<property name="password" value="${amq.password}" />
> 		<property name="watchTopicAdvisories" value="${amq.watchTopicAdv}" />
> 	</bean>
> 	<bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
> 		<property name="maxConnections" value="${amq.maxConnections}" />
> 		<property name="maximumActive" value="${amq.maximumActive}" />
> 		<property name="connectionFactory" ref="jmsConnectionFactory" />
> 	</bean>
> 	<bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">
> 		<property name="connectionFactory" ref="pooledConnectionFactory" />
> 		<property name="transacted" value="false" />
> 		<property name="testConnectionOnStartup" value="true" />
> 		<property name="concurrentConsumers" value="${amq.concurrentConsumers}" />
> 	</bean>
> 	<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
> 		<property name="configuration" ref="jmsConfig" />
> 	</bean>
> {code}
> Maven Dependencies:
> {code}
> 		<dependency>
> 			<groupId>org.apache.activemq</groupId>
> 			<artifactId>activemq-camel</artifactId>
> 			<version>5.6.0</version>
> 		</dependency>
> 		<dependency>
> 			<groupId>org.apache.activemq</groupId>
> 			<artifactId>activemq-pool</artifactId>
> 			<version>5.6.0</version>
> 		</dependency>
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message