activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From softweave <ja...@softweave.com>
Subject durable topic subscriber using spring and atomikos
Date Tue, 11 Jan 2011 22:53:04 GMT

I wrote a topic listener that works fine as a non-durable topic subscriber. I
want to convert it to a durable topic subscriber, but am running into
problems. 

This portion of the spring configuration sets up the topic listener: 

        <bean id="xaFactory"
class="org.apache.activemq.ActiveMQXAConnectionFactory"> 
        <property name="brokerURL" value="tcp://localhost:61616"/> 
<!--	 <property name="clientID" value="xaEventListenerConnection" />--> 
        </bean> 

        <bean id="atomikosConnectionFactoryBean" 
                class="com.atomikos.jms.AtomikosConnectionFactoryBean" 
                init-method="init" destroy-method="close"> 
          <property name="uniqueResourceName" value="ACTIVEMQ_BROKER"/> 
          <property name="xaConnectionFactory" ref="xaFactory" /> 
          <property name="maxPoolSize" value="1"/> 
        </bean> 

        <bean id="eventHandler" class="com.med.XAEventHandler"> 
                <property name="eventRepository" ref="eventRepository"/> 
        </bean> 

        <!-- a class that implements javax.jms.MessageListener --> 
        <bean id="eventListener" class="com.med.XAEventListener"> 
                <property name="eventHandler" ref="eventHandler"/> 
        </bean> 
        
        <!--  initialize the destination --> 
    <bean id="eventTopic" class="org.apache.activemq.command.ActiveMQTopic"
> 
          <constructor-arg value="ChangeDataEvents.Topic" /> 
    </bean>   
    
        <!-- Configure the session pool for JMS. 
        This will also manage the transactions for incoming messages. --> 
        <bean id="eventListenerContainer" 
                class="com.atomikos.jms.extra.MessageDrivenContainer" 
                init-method="start" destroy-method="stop"> 
                <property name="atomikosConnectionFactoryBean"
ref="atomikosConnectionFactoryBean" /> 
            <property
name="transactionTimeout"><value>120</value></property> 
            <property name="destination"><ref bean="eventTopic"/></property>

            <property name="messageListener"><ref
bean="eventListener"/></property> 
        <property name="noLocal" value="true"/> 
        <property name="poolSize" value="50"/> 
<!--	 <property name="subscriberName" value="xaEventListener"/>--> 
        </bean> 

If I uncomment out the clientID and subscriberName properties, it gets the
following error: 

WARN-[2011-01-07 22:39:20,262][Thread-5][Error delegating 'start' call to
JMS driver 
javax.jms.InvalidClientIDException: Broker: localhost - Client:
xaEventListenerConnection already connected from /127.0.0.1:2299 
        at
org.apache.activemq.broker.region.RegionBroker.addConnection(RegionBroker.java:243) 
        at
org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85) 
        at
org.apache.activemq.advisory.AdvisoryBroker.addConnection(AdvisoryBroker.java:78) 
        at
org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85) 
        at
org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85) 
        at
org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:91)

        at
org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:696)

        at
org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddConnection(ManagedTransportConnection.java:83)

        at
org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:137) 
        at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:311) 
        at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:185) 
        at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69) 
        at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)

        at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:228) 
        at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83) 
        at
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:220) 
        at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:202) 
        at java.lang.Thread.run(Unknown Source) 
][-atomikos][com.atomikos.diagnostics.Slf4jConsole.println(Slf4jConsole.java:107)] 
WARN-[2011-01-07 22:39:20,278][Thread-5][MessageConsumerSession: Error in
JMS thread 

How do I prevent this?

-- 
View this message in context: http://activemq.2283324.n4.nabble.com/durable-topic-subscriber-using-spring-and-atomikos-tp3209848p3209848.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Mime
View raw message