We've been using ActiveMQ 4.1.1 for several months and it works well. I'm
looking at upgrading to version 5 to make use of some bug fixes and I'm
having trouble.

The main problem is inactivity exceptions keep happening. The exact
exception is at the bottom of this message. I haven't changed the connection
string from v4.1.1 and it works fine there. It will work if I disable
inactivity duration (set it to 0) but that means the broker doesn't know
when I've disconnected. So, without disabling the inactivity monitor is
there a way of making this work as it did in version4.1.1?

>From looking at the InactivityMonitor it looks like it should send a
KeepAliveInfo message at half the inactivity duration. Perhaps the broker
isn't sending a response back? Or perhaps it's not sending a response back
in time?

Something interesting and slightly related is that the FailoverTransport
doesn't reconnect correctly after being left run for a long time. I let it
run over the weekend where it reconnected lots of times but this morning the
blocking receive didn't pick up new messages in the message queue. Before
the weekend it worked fine, even after a failover reconnect.

Any help would be great.

Thanks.

21 Jan 09:04:20 WARN  [ActiveMQ: Inactivity Handler:
localhost/127.0.0.1:1616] FailoverTransport  - Transport failed, attempting
to automatically reconnect due to:
org.apache.activemq.transport.InactivityIOException: Channel was inactive
for too long: localhost/127.0.0.1:1616
org.apache.activemq.transport.InactivityIOException: Channel was inactive
for too long: localhost/127.0.0.1:1616
        at
org.apache.activemq.transport.InactivityMonitor$4.run(InactivityMonitor.java:108)
21 Jan 09:04:20 WARN  [ActiveMQ Transport: tcp://localhost/127.0.0.1:1616]
FailoverTransport  - Transport failed, attempting to automatically reconnect
due to: java.net.SocketException: Socket closed
java.net.SocketException: Socket closed
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at
org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:50)
        at
org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:58)
        at java.io.DataInputStream.readInt(DataInputStream.java:353)
        at
org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:268)
        at
org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:192)
        at
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:184)
        at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:172)
        at java.lang.Thread.run(Thread.java:595)
21 Jan 09:04:20 INFO  [ActiveMQ Task] FailoverTransport$1  - Successfully
reconnected to tcp://localhost:1616?wireFormat.maxInactivityDuration=5000

-- 
View this message in context: 
http://www.nabble.com/ActiveMQ-5%3A-Keepalive-problems-tp14994260s2354p14994260.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to