Environment & versions: ==== Activemq: 5.3.2 ==== OS: RHEL5 (Linux xxx.yyy.zzz 2.6.18-238.1.1.el5 #1 SMP Tue Jan 4 13:32:19 EST 2011 x86_64 x86_64 x86_64 GNU/Linux) ==== Java (both on the apps- and activemq- side): java version "1.6.0_13" Java(TM) SE Runtime Environment (build 1.6.0_13-b03) Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02, mixed mode) The activemq configuration is the out-of-the-box one without any tweaks. The clients connect on the tcp transport. Here's the relevant config snippet from the broker's activemq.xml: <transportConnectors> <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/> </transportConnectors>
The producers and consumers on the activemq managed queues (Java applications running within JBoss) use "tcp://x.x.x.x:61616" as the JMS destination JNDI URL to open JMS connections. Usually on a Monday after no activity during the weekend we see the following exceptions when we try to run things in the environment: javax.jms.JMSException: Channel was inactive for too long: tlcvmq01/x.x.x.x:61616 at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport. java:62) at org.apache.activemq.ActiveMQConnection.doAsyncSendPacket(ActiveMQConnect ion.java:1245) at org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnectio n.java:1237) at org.apache.activemq.ActiveMQSession.asyncSendPacket(ActiveMQSession.java :1857) at org.apache.activemq.ActiveMQMessageConsumer.doClose(ActiveMQMessageConsu mer.java:654) at org.apache.activemq.ActiveMQMessageConsumer.close(ActiveMQMessageConsume r.java:645) at com.hmsonline.cvutils.workdistribution.JmsThreadedConsumer.run(JmsThread edConsumer.java:116) at java.lang.Thread.run(Thread.java:619) Caused by: org.apache.activemq.transport.InactivityIOException: Channel was inactive for too long: tlcvmq01/x.x.x.x:61616 at org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor .java:235) at org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.jav a:83) at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNego tiator.java:104) at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java: 40) at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelat or.java:60) at org.apache.activemq.ActiveMQConnection.doAsyncSendPacket(ActiveMQConnect ion.java:1243) ... 6 more and we basically need to reconnect the clients to be able to run things again. Googling a bit and reading the documentation on the activemq site showed that there is a way to turn the "inactivity policy" off, but the posts that google found and the actual docs are sketchy and conflicting a bit. Some posts say that all that's needed is passing the wireFormat.maxInactivityDuration=0 pair on the connect string that the client is using (tcp://x.x.x.x:61616? wireFormat.maxInactivityDuration=0). The documentation however hints that this parameter needs to match the broker's configuration as well. More specifically this page http://activemq.apache.org/configuring-wire-formats.html says "When using the maxInactivityDuration option, the setting must match on both sides of the connection. The default value the maxInactivityDuration option on the broker side is 30 seconds so each consumer must have the same setting so that the option actually takes effect. If the settings do not match, the option will have no effect". I looked here - http://activemq.apache.org/configuring-transports.html - in the "Server Side Options" section and could not spot any transport connector option that specifies the server side maxInactivityDuration setting. Long story short, the questions I have are: 1) By default what is the duration that causes the InactivityIOException-s? The documentation suggests 30 seconds, but I do not experience it in that short of a frame. 2) How can I turn inactivity timeouts off? Is there a way to find out (log, etc) whether the turn-inactivity-monitoring-off configuration is in effect (short of leaving the environment inactive for a long period of time and trying activity)? Help/feedback will be much appreciated. Thanks, -nik