Atomikos Forum

JMS - durable subscription vs. reapTimeout on ConnectionPool

Using JMS with durable subscriptions does result in jms connection activity "behind" the scenes.
If i use the reapTimeout value on the connection pool it does result in "reaping" connection and after that the pool does complain creating proxies because the underlying XA Session is closed (i guess this is done when the connection is reaped).

So whats the problem here? Increasing the timeout won't help here and closing the connection is not possible to me, because this activity is made by the fact that i am using a durable subscription.

Exception shown if reapTimeout > 0:


2010-03-23 13:49:39,669 [Atomikos:1]    WARN  atomikos [Slf4jConsole.java:82] - atomikos pooled connection for resource amq1: reaping connection...
2010-03-23 13:49:39,669 [Atomikos:1]    WARN  atomikos [Slf4jConsole.java:82] - atomikos connection proxy for resource amq1: reaping - check if the application closes connections correctly, or increase the reapTimeout value
2010-03-23 13:49:39,704 [Thread-24]      WARN  atomikos [Slf4jConsole.java:82] - atomikos TopicSubscriber proxy for ActiveMQMessageConsumer { value=ID:sf050-40461-1269348456891-2:1:2:1, started=true }: error during enlist: The underlying XA session is closed
2010-03-23 13:49:39,705 [Thread-24]      WARN  atomikos [Slf4jConsole.java:82] - error during enlist: The underlying XA session is closed
com.atomikos.datasource.xa.session.InvalidSessionHandleStateException: The underlying XA session is closed
    at com.atomikos.datasource.xa.session.SessionHandleState.notifyBeforeUse(SessionHandleState.java:126)
    at com.atomikos.jms.ConsumerProducerSupport.enlist(ConsumerProducerSupport.java:67)
    at com.atomikos.jms.AtomikosJmsMessageConsumerProxy.receive(AtomikosJmsMessageConsumerProxy.java:45)
    at com.atomikos.jms.AtomikosJmsMessageConsumerProxy.receive(AtomikosJmsMessageConsumerProxy.java:112)
    at com.atomikos.jms.extra.MessageConsumerSession$ReceiverThread.run(MessageConsumerSession.java:464)
2010-03-23 13:49:39,706 [Thread-24]      WARN  atomikos [Slf4jConsole.java:82] - Error in proxy
com.atomikos.jms.AtomikosJMSException: error during enlist: The underlying XA session is closed
    at com.atomikos.jms.AtomikosJMSException.throwAtomikosJMSException(AtomikosJMSException.java:29)
    at com.atomikos.jms.ConsumerProducerSupport.enlist(ConsumerProducerSupport.java:71)
    at com.atomikos.jms.AtomikosJmsMessageConsumerProxy.receive(AtomikosJmsMessageConsumerProxy.java:45)
    at com.atomikos.jms.AtomikosJmsMessageConsumerProxy.receive(AtomikosJmsMessageConsumerProxy.java:112)
    at com.atomikos.jms.extra.MessageConsumerSession$ReceiverThread.run(MessageConsumerSession.java:464)
Caused by: com.atomikos.datasource.xa.session.InvalidSessionHandleStateException: The underlying XA session is closed
    at com.atomikos.datasource.xa.session.SessionHandleState.notifyBeforeUse(SessionHandleState.java:126)
    at com.atomikos.jms.ConsumerProducerSupport.enlist(ConsumerProducerSupport.java:67)
    ... 3 more
2010-03-23 13:49:39,706 [Thread-24]      WARN  atomikos [Slf4jConsole.java:82] - MessageConsumerSession: Error in JMS thread
com.atomikos.jms.AtomikosJMSException: Error in proxy
    at com.atomikos.jms.AtomikosJMSException.throwAtomikosJMSException(AtomikosJMSException.java:29)
    at com.atomikos.jms.ConsumerProducerSupport.handleException(ConsumerProducerSupport.java:36)
    at com.atomikos.jms.AtomikosJmsMessageConsumerProxy.receive(AtomikosJmsMessageConsumerProxy.java:48)
    at com.atomikos.jms.AtomikosJmsMessageConsumerProxy.receive(AtomikosJmsMessageConsumerProxy.java:112)
    at com.atomikos.jms.extra.MessageConsumerSession$ReceiverThread.run(MessageConsumerSession.java:464)
Caused by: com.atomikos.jms.AtomikosJMSException: error during enlist: The underlying XA session is closed
    at com.atomikos.jms.AtomikosJMSException.throwAtomikosJMSException(AtomikosJMSException.java:29)
    at com.atomikos.jms.ConsumerProducerSupport.enlist(ConsumerProducerSupport.java:71)
    at com.atomikos.jms.AtomikosJmsMessageConsumerProxy.receive(AtomikosJmsMessageConsumerProxy.java:45)
    ... 2 more
Caused by: com.atomikos.datasource.xa.session.InvalidSessionHandleStateException: The underlying XA session is closed
    at com.atomikos.datasource.xa.session.SessionHandleState.notifyBeforeUse(SessionHandleState.java:126)
    at com.atomikos.jms.ConsumerProducerSupport.enlist(ConsumerProducerSupport.java:67)
    ... 3 more
2010-03-23 13:49:39,707 [Thread-24]      WARN  atomikos [Slf4jConsole.java:82] - Linked JMS exception is:
com.atomikos.jms.AtomikosJMSException: error during enlist: The underlying XA session is closed
    at com.atomikos.jms.AtomikosJMSException.throwAtomikosJMSException(AtomikosJMSException.java:29)
    at com.atomikos.jms.ConsumerProducerSupport.enlist(ConsumerProducerSupport.java:71)
    at com.atomikos.jms.AtomikosJmsMessageConsumerProxy.receive(AtomikosJmsMessageConsumerProxy.java:45)
    at com.atomikos.jms.AtomikosJmsMessageConsumerProxy.receive(AtomikosJmsMessageConsumerProxy.java:112)
    at com.atomikos.jms.extra.MessageConsumerSession$ReceiverThread.run(MessageConsumerSession.java:464)
Caused by: com.atomikos.datasource.xa.session.InvalidSessionHandleStateException: The underlying XA session is closed
    at com.atomikos.datasource.xa.session.SessionHandleState.notifyBeforeUse(SessionHandleState.java:126)
    at com.atomikos.jms.ConsumerProducerSupport.enlist(ConsumerProducerSupport.java:67)
    ... 3 more
2010-03-23 13:49:39,708 [Thread-24]      WARN  atomikos [Slf4jConsole.java:82] - atomikos connection pool 'amq1': error creating proxy of connection atomikos pooled connection for resource amq1
com.atomikos.datasource.pool.CreateConnectionException: atomikos pooled connection for resource amq1: connection is erroneous
    at com.atomikos.jms.AtomikosPooledJmsConnection.testUnderlyingConnection(AtomikosPooledJmsConnection.java:43)
    at com.atomikos.datasource.pool.AbstractXPooledConnection.createConnectionProxy(AbstractXPooledConnection.java:43)
    at com.atomikos.datasource.pool.ConnectionPool.borrowConnection(ConnectionPool.java:135)
    at com.atomikos.jms.AtomikosConnectionFactoryBean.createConnection(AtomikosConnectionFactoryBean.java:560)
    at com.atomikos.jms.extra.MessageConsumerSession$ReceiverThread.refresh(MessageConsumerSession.java:361)
    at com.atomikos.jms.extra.MessageConsumerSession$ReceiverThread.run(MessageConsumerSession.java:445)
2010-03-23 13:49:39,719 [Thread-24]      WARN  atomikos [Slf4jConsole.java:82] - atomikos connection pool 'amq1': no connection found - waiting a bit...
Torsten Krah Send private email
Tuesday, March 23, 2010
 
 
Yes,

This is a known issue, we will be working on this for a future release (3.7 or higher).

Thanks
Guy Pardon Send private email
Wednesday, March 24, 2010
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics