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

Gary Tully commented on AMQ-2067:
---------------------------------

scanned this issue again pre 5.4 and it looks like the exception thrown from 
the ActiveMQ RA cleanup method should be handled by the RA contract and the 
connection should be removed from the pool. It does not appear as if activemq 
is doing anything wrong in this case short of reporting an exception that says 
it cannot cleanup an already closed or shutdown connection.

> After getting an EOFException with the JMS connection, the channel is 
> inactive and the server is not able to recover its connection to ActiveMQ.
> ------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-2067
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2067
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.0.0
>         Environment: Solaris with server JBOSS connecting to a standalone 
> Message FUSE Broker ActiveMQ server 5.0.0.14
>            Reporter: Pierre-Luc Dupont
>             Fix For: 5.4.0
>
>
> We have this problem and it is causing a lot of trouble since we need to 
> restart our server every time that this error occurs.
> Can someone help me to fix or give me a procedure to avoid this situation?
> Thank you!
> This is our configuration in our deploy folder.
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE connection-factories
>     PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"
>     "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd";>
> <connection-factories>
>    <tx-connection-factory>
>       <jndi-name>activemq/QueueConnectionFactory</jndi-name>
>       <xa-transaction/>
>       <track-connection-by-tx/>
>       <rar-name>activemq-rar-5.0.0.14-fuse.rar</rar-name>
>       
> <connection-definition>javax.jms.QueueConnectionFactory</connection-definition>
>       
> <ServerUrl>tcp://<host>:61616?wireFormat.maxInactivityDuration=0&amp;keepAlive=true</ServerUrl>
>       <!--
>       <UserName>sa</UserName>
>       <Password></Password>
>       -->
>       <min-pool-size>2</min-pool-size>
>       <max-pool-size>200</max-pool-size>
>       <blocking-timeout-millis>30000</blocking-timeout-millis>
>       <idle-timeout-minutes>1440</idle-timeout-minutes>
>    </tx-connection-factory>
>    <tx-connection-factory>
>       <jndi-name>activemq/TopicConnectionFactory</jndi-name>
>       <xa-transaction/>
>       <track-connection-by-tx/>
>       <rar-name>activemq-rar-5.0.0.14-fuse.rar</rar-name>
>       
> <connection-definition>javax.jms.TopicConnectionFactory</connection-definition>
>       
> <ServerUrl>tcp://<host>:61616?wireFormat.maxInactivityDuration=0&amp;keepAlive=true</ServerUrl>
>       <!--
>       <UserName>sa</UserName>
>       <Password></Password>
>       -->
>       <min-pool-size>2</min-pool-size>
>       <max-pool-size>200</max-pool-size>
>       <blocking-timeout-millis>30000</blocking-timeout-millis>
>       <idle-timeout-minutes>1440</idle-timeout-minutes>
>    </tx-connection-factory>
>    
>     ....
> </connection-factories>
> 22:59:21,007 WARN  [ActiveMQManagedConnection] Connection failed: 
> javax.jms.JMSException: java.io.EOFException
> 22:59:21,009 WARN  [TxConnectionManager] Connection error occured: 
> org.jboss.resource.connectionmanager.txconnectionmanager$txconnectioneventliste...@1c3dfe[state=normal
>  mc=org.apache.activemq.ra.activemqmanagedconnect...@1ff0bb4 handles=1 
> lastUse=1231786631511 permit=true trackByTx=false 
> mcp=org.jboss.resource.connectionmanager.jbossmanagedconnectionpool$onep...@1a83509
>  
> context=org.jboss.resource.connectionmanager.internalmanagedconnectionp...@321810
>  xaresource=org.apache.activemq.ra.activemqmanagedconnectio...@159773f 
> txSync=null]
> javax.jms.JMSException: java.io.EOFException
>       at 
> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
>       at 
> org.apache.activemq.ActiveMQConnection.onAsyncException(ActiveMQConnection.java:1684)
>       at 
> org.apache.activemq.ActiveMQConnection.onException(ActiveMQConnection.java:1701)
>       at 
> org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:99)
>       at 
> org.apache.activemq.transport.ResponseCorrelator.onException(ResponseCorrelator.java:114)
>       at 
> org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:99)
>       at 
> org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:99)
>       at 
> org.apache.activemq.transport.WireFormatNegotiator.onException(WireFormatNegotiator.java:152)
>       at 
> org.apache.activemq.transport.InactivityMonitor.onException(InactivityMonitor.java:244)
>       at 
> org.apache.activemq.transport.TransportSupport.onException(TransportSupport.java:96)
>       at 
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:187)
>       at java.lang.Thread.run(Thread.java:595)
> Caused by: java.io.EOFException
>       at java.io.DataInputStream.readInt(DataInputStream.java:358)
>       at 
> org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:269)
>       at 
> org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:203)
>       at 
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:195)
>       at 
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:183)
>       ... 1 more
> 23:01:27,933 ERROR [ProductManager] End of a batch (2199 s,  0.227/sec). No 
> failures out of 500 products processed. Attempt 0 of 1
> 23:01:27,934 WARN  [BatchSink] Message (Product/addOrUpdate, x500), batch 
> [258] on port ABC processing STOPPED
> 23:01:27,936 INFO  [AdvisoryConsumer] Failed to send remove command: 
> javax.jms.JMSException: Channel was inactive for too long: 
> <host>/<ipaddress>:61616
> javax.jms.JMSException: Channel was inactive for too long: 
> <host>/<ipaddress>:61616
>       at 
> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62)
>       at 
> org.apache.activemq.ActiveMQConnection.doAsyncSendPacket(ActiveMQConnection.java:1178)
>       at 
> org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1170)
>       at 
> org.apache.activemq.AdvisoryConsumer.dispose(AdvisoryConsumer.java:56)
>       at 
> org.apache.activemq.ActiveMQConnection.cleanup(ActiveMQConnection.java:1353)
>       at 
> org.apache.activemq.ra.ActiveMQManagedConnection.cleanup(ActiveMQManagedConnection.java:250)
>       at 
> org.jboss.resource.connectionmanager.InternalManagedConnectionPool.returnConnection(InternalManagedConnectionPool.java:320)
>       at 
> org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.returnConnection(JBossManagedConnectionPool.java:620)
>       at 
> org.jboss.resource.connectionmanager.BaseConnectionManager2.returnManagedConnection(BaseConnectionManager2.java:363)
>       at 
> org.jboss.resource.connectionmanager.BaseConnectionManager2$BaseConnectionEventListener.connectionErrorOccurred(BaseConnectionManager2.java:756)
>       at 
> org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.connectionErrorOccurred(TxConnectionManager.java:676)
>       at 
> org.apache.activemq.ra.ActiveMQManagedConnection.fireErrorOccurredEvent(ActiveMQManagedConnection.java:189)
>       at 
> org.apache.activemq.ra.ActiveMQManagedConnection.onException(ActiveMQManagedConnection.java:408)
>       at 
> org.apache.activemq.ActiveMQConnection$3.run(ActiveMQConnection.java:1690)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>       at java.lang.Thread.run(Thread.java:595)
> Caused by: org.apache.activemq.transport.InactivityIOException: Channel was 
> inactive for too long: <host>/<ipaddress>:61616
>       at 
> org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:225)
>       at 
> org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:83)
>       at 
> org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:100)
>       at 
> org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
>       at 
> org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
>       at 
> org.apache.activemq.ActiveMQConnection.doAsyncSendPacket(ActiveMQConnection.java:1176)
>       ... 15 more
> 23:01:27,939 WARN  [JBossManagedConnectionPool] ResourceException cleaning up 
> ManagedConnection: 
> org.jboss.resource.connectionmanager.txconnectionmanager$txconnectioneventliste...@1c3dfe[state=normal
>  mc=org.apache.activemq.ra.activemqmanagedconnect...@1ff0bb4 handles=0 
> lastUse=1231786631511 permit=true trackByTx=false 
> mcp=org.jboss.resource.connectionmanager.jbossmanagedconnectionpool$onep...@1a83509
>  
> context=org.jboss.resource.connectionmanager.internalmanagedconnectionp...@321810
>  xaresource=org.apache.activemq.ra.activemqmanagedconnectio...@159773f 
> txSync=null]
> javax.resource.ResourceException: Could cleanup the ActiveMQ connection: 
> javax.jms.JMSException: Channel was inactive for too long: 
> <host>/<ipaddress>:61616
>       at 
> org.apache.activemq.ra.ActiveMQManagedConnection.cleanup(ActiveMQManagedConnection.java:252)
>       at 
> org.jboss.resource.connectionmanager.InternalManagedConnectionPool.returnConnection(InternalManagedConnectionPool.java:320)
>       at 
> org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.returnConnection(JBossManagedConnectionPool.java:620)
>       at 
> org.jboss.resource.connectionmanager.BaseConnectionManager2.returnManagedConnection(BaseConnectionManager2.java:363)
>       at 
> org.jboss.resource.connectionmanager.BaseConnectionManager2$BaseConnectionEventListener.connectionErrorOccurred(BaseConnectionManager2.java:756)
>       at 
> org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.connectionErrorOccurred(TxConnectionManager.java:676)
>       at 
> org.apache.activemq.ra.ActiveMQManagedConnection.fireErrorOccurredEvent(ActiveMQManagedConnection.java:189)
>       at 
> org.apache.activemq.ra.ActiveMQManagedConnection.onException(ActiveMQManagedConnection.java:408)
>       at 
> org.apache.activemq.ActiveMQConnection$3.run(ActiveMQConnection.java:1690)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>       at java.lang.Thread.run(Thread.java:595)
> Caused by: javax.jms.JMSException: Channel was inactive for too long: 
> <host>/<ipaddress>:61616
>       at 
> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62)
>       at 
> org.apache.activemq.ActiveMQConnection.doAsyncSendPacket(ActiveMQConnection.java:1178)
>       at 
> org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1170)
>       at 
> org.apache.activemq.ActiveMQConnection.cleanup(ActiveMQConnection.java:1376)
>       at 
> org.apache.activemq.ra.ActiveMQManagedConnection.cleanup(ActiveMQManagedConnection.java:250)
>       ... 11 more
> Caused by: org.apache.activemq.transport.InactivityIOException: Channel was 
> inactive for too long: <host>/<ipaddress>:61616
>       at 
> org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:225)
>       at 
> org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:83)
>       at 
> org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:100)
>       at 
> org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
>       at 
> org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
>       at 
> org.apache.activemq.ActiveMQConnection.doAsyncSendPacket(ActiveMQConnection.java:1176)
>       ... 14 more
> 23:01:27,945 WARN  [ActiveMQManagedConnection] Connection failed: 
> javax.jms.JMSException: Channel was inactive for too long: 
> <host>/<ipaddress>:61616

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to