Here's some debug output showing the timeout negotiation from the client:

2015-07-14 14:27:48,969 [main] DEBUG
activemq.transport.WireFormatNegotiator  - Sending: WireFormatInfo {
version=9, properties={MaxFrameSize=9223372036854775807,
CacheSize=1024, CacheEnabled=true, SizePrefixDisabled=false,
MaxInactivityDurationInitalDelay=10000, TcpNoDelayEnabled=true,
MaxInactivityDuration=30000, TightEncodingEnabled=true,
StackTraceEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
2015-07-14 14:27:49,004 [ActiveMQ Transport:
tcp://localhost/127.0.0.1:61616@43697] DEBUG
activemq.transport.InactivityMonitor  - Using min of local:
WireFormatInfo { version=9,
properties={MaxFrameSize=9223372036854775807, CacheSize=1024,
CacheEnabled=true, SizePrefixDisabled=false,
MaxInactivityDurationInitalDelay=10000, TcpNoDelayEnabled=true,
MaxInactivityDuration=30000, TightEncodingEnabled=true,
StackTraceEnabled=true}, magic=[A,c,t,i,v,e,M,Q]} and remote:
WireFormatInfo { version=9, properties={CacheSize=1024,
MaxFrameSize=9223372036854775807, CacheEnabled=true,
SizePrefixDisabled=false, TcpNoDelayEnabled=true,
MaxInactivityDurationInitalDelay=10000, MaxInactivityDuration=30000,
TightEncodingEnabled=true, StackTraceEnabled=true},
magic=[A,c,t,i,v,e,M,Q]}
2015-07-14 14:27:49,004 [ActiveMQ Transport:
tcp://localhost/127.0.0.1:61616@43697] DEBUG
activemq.transport.WireFormatNegotiator  - Received WireFormat:
WireFormatInfo { version=9, properties={CacheSize=1024,
MaxFrameSize=9223372036854775807, CacheEnabled=true,
SizePrefixDisabled=false, TcpNoDelayEnabled=true,
MaxInactivityDurationInitalDelay=10000, MaxInactivityDuration=30000,
TightEncodingEnabled=true, StackTraceEnabled=true},
magic=[A,c,t,i,v,e,M,Q]}
2015-07-14 14:27:49,005 [ActiveMQ Transport:
tcp://localhost/127.0.0.1:61616@43697] DEBUG
activemq.transport.WireFormatNegotiator  -
tcp://localhost/127.0.0.1:61616@43697 before negotiation:
OpenWireFormat{version=9, cacheEnabled=false, stackTraceEnabled=false,
tightEncodingEnabled=false, sizePrefixDisabled=false,
maxFrameSize=9223372036854775807}
2015-07-14 14:27:49,005 [ActiveMQ Transport:
tcp://localhost/127.0.0.1:61616@43697] DEBUG
activemq.transport.WireFormatNegotiator  -
tcp://localhost/127.0.0.1:61616@43697 after negotiation:
OpenWireFormat{version=9, cacheEnabled=true, stackTraceEnabled=true,
tightEncodingEnabled=true, sizePrefixDisabled=false,
maxFrameSize=9223372036854775807}

So the server seems to be completely ignoring my specified settings of :
    transport.useInactivityMonitor=false; maxInactivityDuration=0;

I guess ActiveMQ 5.7.0.x is incapable of disabling its InactivityMonitor ?
Can anyone confirm or deny this ?

Thanks & Regards,
Jason

On 14/07/2015, Jason Vas Dias <jason.vas.d...@gmail.com> wrote:
> Good day -
>
> I have an ActiveMQ 5.7.0.fuse-71-047 server setup with this in its
> at-broker-context.xml
> (main configuration file) :
>
>  <transportConnectors>
>     <transportConnector
> uri="tcp://localhost:${my_apps_broker_port_property}?jms.prefetchPolicy.all=1;transport.useInactivityMonitor=false;wireFormat.maxInactivityDuration=0;"/>
>   </transportConnectors>
>
> Yet still  when clients connect to the broker, they end up using a
> non-zero timeout :
> 2015-07-14 13:48:27,563 [ActiveMQ InactivityMonitor Worker] WARN
> broker.TransportConnection.Transport  - Transport Connection to:
> tcp://127.0.0.1:43475 failed:
> org.apache.activemq.transport.InactivityIOException: Channel was
> inactive for too (>30000) long: tcp://127.0.0.1:43475
>
> Unfortunately, I cannot set any ActiveMQ specific connection
> properties on the client side,
> as the clients are using the plain JMS library (javax:jms:1.1-SP1) to
> get a connection.
>
> But the ActiveMQ documentation suggests that if the server has disabled the
> InactivityMonitor, then clients should be unable to negotiate a
> non-zero timeout :
>
> http://activemq.apache.org/activemq-inactivitymonitor.html says:
> <quote>
> ...
> transport.useInactivityMonitor  true    A value of false disables the
> InactivityMonitor completely and connections will never time out. By
> default it is enabled.
> ...
> At startup the InactivityMonitor negotiates the appropriate
> maxInactivityDuration and maxInactivityDurationInitalDelay. The
> shortest duration is taken for the connection.
> ...
> Setting transport.useInactivityMonitor=false will disable the
> InactivityMonitor. Configuring wireFormat.maxInactivityDuration=0 will
> achieve the same result.
> </quote>
>
> None of the statements made in the documentation appear to be true in my
> case.
>
> I am now looking at producing a patched version of
> ActiveMQ-5.7.0.fuse-71-047 that completely removes and disables the
> InactivityMonitor because of this issue.
>
> Would anyone have any suggestions as to how the InactivityMonitor
> might be disabled
> in the SERVER configuration with ActiveMQ 5.7.0 ?  Changing ActiveMQ
> version
> is not an option.
>
> Thanks & Regards,
> Jason
>

Reply via email to