Try replacing the & in your xml with & That should take care of the xml parsing.
<transportConnectors> <transportConnector uri="tcp://localhost:${com.newbay.whitelabel.ContentIngestionTestSuite. ports.sal_vm.jms_broker}?jms.prefetchPolicy.all=1&transport. useInactivityMonitor=false&wireFormat.maxInactivityDuration=0"/> </transportConnectors> On Tue, Jul 14, 2015 at 10:37 AM, Jason Vas Dias <jason.vas.d...@gmail.com> wrote: > On 14/07/2015, Christopher Shannon <christopher.l.shan...@gmail.com> > wrote: > > The useInactivityMonitor option appears to have been added in 5.3.0 and > > maxInactivityDuration even earlier than that. > > > > Yes, but they do not work! > > > You can set the properties on your connection string in the client. > > > > For example: > > > > tcp://localhost:61616?transport.useInactivityMonitor=false&wireformat. > > maxInactivityDuration=0 > > > > Actually, if you try to use that string in an XML configuration file, > you'll get a SAX Parser > exception : parameters in the URL must be separated by ';' , not '&' . > > As I stated in my original post, I AM using a server configuration URL of : > > > <transportConnectors> > <transportConnector > > uri="tcp://localhost:${com.newbay.whitelabel.ContentIngestionTestSuite.ports.sal_vm.jms_broker}?jms.prefetchPolicy.all=1;transport.useInactivityMonitor=false;wireFormat.maxInactivityDuration=0;"/> > </transportConnectors> > > But this has no effect. If I try and add ampersands to the above URL I > get a SAX XML parser > exception. > > Also as stated in my original mail I am unable to add parameters to > the client connection URL . > > I am now focusing on trying to rebuild ActiveMQ with the > InactivityMonitor disabled by > default because of this issue. > > Any known workarounds ? > > > > > On Tue, Jul 14, 2015 at 9:52 AM, Jason Vas Dias < > jason.vas.d...@gmail.com> > > wrote: > > > >> 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 > >> > > >> > > >