History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: AMQ-1863
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Rob Davies
Reporter: don ingratta
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
ActiveMQ

org.apache.activemq.transport.InactivityIOException: Channel was inactive for too long

Created: 21/Jul/08 07:20 AM   Updated: 14/Aug/08 10:45 AM
Component/s: Broker
Affects Version/s: 4.0.2
Fix Version/s: 5.1.0

Time Tracking:
Not Specified

File Attachments:
  Size
XML File activemq.xml 2008-07-21 07:20 AM don ingratta 2 kb
Environment: RedHat Linux


 Description  « Hide
I have web client which uses jetty configured through servicemix which intermittently throws an activemq.transport.InactivityIOException. The problem is reported in a solaris environment and I have been able to reproduce this issue with Redhat Linux AdvancedServer 2.1 after an extended period of no web client activity for about 2 days.

I have tried setting maxInactivityDuration = 0 (at the web client end) and have also tried applying the patch (changes to Transport.InactivityMonitor.java) mentioned in AMQ-1146 to 4.0.2 but the issue still occurs.

It appears that this issue has been ongoing as there are similar issues resolved in 5.1.

Is this issue resolved in 4.1 or must I upgrade to 5.1 to resolve this issue?

Below is exception message from the servicemix.log and the activemq.xml confguration file is attached.

15:25:19,414 | WARN | btpool0-10922 | jetty | ervicemix.http.jetty.JCLLogger 93 | /ecli/:
java.lang.Exception: org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is org.apache.activemq.ConnectionFailedException: The JMS connection has failed: Channel was inactive for too long.; nested exception is org.apache.activemq.transport.InactivityIOException: Channel was inactive for too long.
at org.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:202)
at org.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:71)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:615)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:443)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:356)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:179)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:615)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
at org.mortbay.jetty.Server.handle(Server.java:269)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:430)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:333)
at org.mortbay.jetty.nio.HttpChannelEndPoint.run(HttpChannelEndPoint.java:270)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
Caused by: org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is org.apache.activemq.ConnectionFailedException: The JMS connection has failed: Channel was inactive for too long.; nested exception is org.apache.activemq.transport.InactivityIOException: Channel was inactive for too long.
at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:194)
at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:162)
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:432)
at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:485)
at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:471)
at org.apache.servicemix.components.jms.JmsSenderComponent.process(JmsSenderComponent.java:81)
at org.apache.servicemix.components.util.OutBinding.onMessageExchange(OutBinding.java:49)
at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:624)
at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:169)
at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:177)
at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:227)
at org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.activemq.ConnectionFailedException: The JMS connection has failed: Channel was inactive for too long.
at org.apache.activemq.ActiveMQConnection.checkClosedOrFailed(ActiveMQConnection.java:1171)
at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:270)
at org.apache.activemq.pool.SessionPool.createSession(SessionPool.java:112)
at org.apache.activemq.pool.SessionPool.makeObject(SessionPool.java:80)
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771)
at org.apache.activemq.pool.SessionPool.borrowSession(SessionPool.java:55)
at org.apache.activemq.pool.ConnectionPool.createSession(ConnectionPool.java:70)
at org.apache.activemq.pool.PooledConnection.createSession(PooledConnection.java:129)
at org.springframework.jms.core.JmsTemplate.createSession(JmsTemplate.java:826)
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:420)
... 11 more
Caused by: org.apache.activemq.transport.InactivityIOException: Channel was inactive for too long.
at org.apache.activemq.transport.InactivityMonitor.readCheck(InactivityMonitor.java:101)
at org.apache.activemq.transport.InactivityMonitor.access$000(InactivityMonitor.java:35)
at org.apache.activemq.transport.InactivityMonitor$1.run(InactivityMonitor.java:51)
at edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:431)
at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.runAndReset(FutureTask.java:198)
at edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:189)
at edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:213)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
... 1 more



 All   Comments   Work Log   Change History   Subversion Commits   FishEye   Crucible      Sort Order: Ascending order - Click to sort in descending order
Rob Davies - 14/Aug/08 10:45 AM
This is fixed in 5.1