You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by "paul.dark" <ne...@gmail.com> on 2012/08/25 03:47:36 UTC
Error configuration durable topic subscription using spring
listener
Hi,guys:
I'm using activemq(now 5.6.0, early in 5.5.0) and spring 3.1,to configure a
durable topic subscription(queue and non-durable topic I configured before
both ok).
I'm search both this forum both google, and try many solutions I can found,
but no effect.
when my tomcat complete, tomcat console continually show error message:
*Could not refresh JMS Connection for destination 'topic://xxx.topic' -
retrying in 5000 ms. Cause: Broker: localhost - Client: clientId_007 already
connected from tcp://127.0.0.1:XXXXX*
And activemq console show message continually:
* WARN | Transport Connection to: tcp://127.0.0.1:XXXXX failed:
java.io.EOFException
WARN | Failed to add Connection ID:XXX-T2300-63744-1345856322767-0:353,
reason: javax.jms.InvalidClientIDException: Broker: localhost - Client:
clientId_007 already connected from tcp://127.0.0.1
:XXXXXX*
And soonly(about 1hour), tomcat will be out of memoy.
I think this must be spring attempt to create multi connection to activemq,
but durable topic subscription need use single clientId, so my question is:
how can I create a WORKING durable topic subscription spring listener?
this is my sample spring config(jms part):
<beans>
<bean id="singleFactory"
class="org.springframework.jms.connection.SingleConnectionFactory" >
<property name="targetConnectionFactory"
ref="topicReceiveConnectionFactory" />
<property name="clientId" value="clientId_007"/>
</bean>
<bean id="topicReceiveConnectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://127.0.0.1:6117" />
</bean>
<bean id="shortMessageListner" class="XXX.MessageConsumerImpl">
</bean>
<bean id="shortMessageDestination"
class="org.apache.activemq.command.ActiveMQTopic">
<constructor-arg index="0" value="XXX.topic" />
</bean>
<bean id="topicConsumerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="singleFactory" />
<property name="destination" ref="shortMessageDestination" />
<property name="messageListener" ref="shortMessageListner" />
<property name="pubSubDomain" value="true" />
<property name="subscriptionDurable" value="true" />
<property name="concurrentConsumers" value="1"/>
<property name="maxConcurrentConsumers" value="1"/>
<property name="durableSubscriptionName" value="555"/>
<property name="receiveTimeout" value="10000"/>
</bean>
</beans>
PS: I changed much configuration methd and config value, but no effect.
THANKS IN ADVANCE!
--
View this message in context: http://activemq.2283324.n4.nabble.com/Error-configuration-durable-topic-subscription-using-spring-listener-tp4655560.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: Error configuration durable topic subscription using spring
listener
Posted by "paul.dark" <ne...@gmail.com>.
Thanks! solved!
It's not about jms or amq config, it's about tomcat config.
Tomcat load application twice, so...
--
View this message in context: http://activemq.2283324.n4.nabble.com/Error-configuration-durable-topic-subscription-using-spring-listener-tp4655560p4656490.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: Error configuration durable topic subscription using spring listener
Posted by Torsten Mielke <to...@fusesource.com>.
Strange one indeed.
You ConnectionFactory is Springs SingleConnectionFactory, which will only ever create a single connection, not multiple.
Is there possibly another process using the exact same configuration (i.e. the exact same connectionId)?
Have you tried a different connection Id?
You may also want to configure for CACHE_CONSUMER cache level in the DefaultMessageListenerContainer, although I don't see how this would impact your current error.
Regards,
Torsten Mielke
torsten@fusesource.com
tmielke@blogspot.com
On Aug 25, 2012, at 3:47 AM, paul.dark wrote:
> Hi,guys:
> I'm using activemq(now 5.6.0, early in 5.5.0) and spring 3.1,to configure a
> durable topic subscription(queue and non-durable topic I configured before
> both ok).
> I'm search both this forum both google, and try many solutions I can found,
> but no effect.
>
> when my tomcat complete, tomcat console continually show error message:
> *Could not refresh JMS Connection for destination 'topic://xxx.topic' -
> retrying in 5000 ms. Cause: Broker: localhost - Client: clientId_007 already
> connected from tcp://127.0.0.1:XXXXX*
>
> And activemq console show message continually:
> * WARN | Transport Connection to: tcp://127.0.0.1:XXXXX failed:
> java.io.EOFException
> WARN | Failed to add Connection ID:XXX-T2300-63744-1345856322767-0:353,
> reason: javax.jms.InvalidClientIDException: Broker: localhost - Client:
> clientId_007 already connected from tcp://127.0.0.1
> :XXXXXX*
>
> And soonly(about 1hour), tomcat will be out of memoy.
>
> I think this must be spring attempt to create multi connection to activemq,
> but durable topic subscription need use single clientId, so my question is:
> how can I create a WORKING durable topic subscription spring listener?
>
> this is my sample spring config(jms part):
> <beans>
>
> <bean id="singleFactory"
> class="org.springframework.jms.connection.SingleConnectionFactory" >
> <property name="targetConnectionFactory"
> ref="topicReceiveConnectionFactory" />
> <property name="clientId" value="clientId_007"/>
> </bean>
>
> <bean id="topicReceiveConnectionFactory"
> class="org.apache.activemq.ActiveMQConnectionFactory">
> <property name="brokerURL" value="tcp://127.0.0.1:6117" />
> </bean>
>
> <bean id="shortMessageListner" class="XXX.MessageConsumerImpl">
> </bean>
>
> <bean id="shortMessageDestination"
> class="org.apache.activemq.command.ActiveMQTopic">
> <constructor-arg index="0" value="XXX.topic" />
> </bean>
>
> <bean id="topicConsumerContainer"
> class="org.springframework.jms.listener.DefaultMessageListenerContainer">
> <property name="connectionFactory" ref="singleFactory" />
> <property name="destination" ref="shortMessageDestination" />
> <property name="messageListener" ref="shortMessageListner" />
> <property name="pubSubDomain" value="true" />
> <property name="subscriptionDurable" value="true" />
> <property name="concurrentConsumers" value="1"/>
> <property name="maxConcurrentConsumers" value="1"/>
> <property name="durableSubscriptionName" value="555"/>
> <property name="receiveTimeout" value="10000"/>
> </bean>
>
>
> </beans>
>
> PS: I changed much configuration methd and config value, but no effect.
>
> THANKS IN ADVANCE!
>
>
>
>
>
>
>
> --
> View this message in context: http://activemq.2283324.n4.nabble.com/Error-configuration-durable-topic-subscription-using-spring-listener-tp4655560.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.