Hi all, We have 2 amq servers, in a master-slave setup. Recently, I observed this in the master's log file (see attached). Basically, there were quite a few debug messages about stopping master bridge and "negociation timeout". Later, followed by a out of memory exception.
The master server continued to run, even after the memory exception, but reading messages from a specific topic, froze the consumer. I had a durable subscription to a topic, but the subscriber had disconnected for a while and the subscription had collected around 40,000 messages (at a guess). Here is my activemq.xml -------- <memoryManager> <usageManager id="memory-manager" limit="2048 MB"/> </memoryManager> <destinationPolicy> <policyMap><policyEntries> <policyEntry topic="wss.>"> <dispatchPolicy> <strictOrderDispatchPolicy /> </dispatchPolicy> <subscriptionRecoveryPolicy> <lastImageSubscriptionRecoveryPolicy /> </subscriptionRecoveryPolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="50000"/> </pendingMessageLimitStrategy> </policyEntry> </policyEntries></policyMap> </destinationPolicy> ------------- with both "usageManager" and the "message limit strategy", I expected activemq to drop old messages on a durable subscription, once the limit was hit. In a separate test on one of the dev servers, I observed , via the jmx console, on a durable subscription the messages were never dropped, even after crossing the limit. we are running ActiveMQ 4.1 (stable), with 64bit Java v1.5.0. Any help is appreciated. Thanks. - Sandeep
2007-01-17 01:00:18,501 [.24.37.58:37599] DEBUG TransportConnection - Setting up new connection: [EMAIL PROTECTED] 2007-01-17 01:00:19,783 [.24.37.58:37600] DEBUG TransportConnection - Setting up new connection: [EMAIL PROTECTED] ..... 2007-01-17 01:01:32,886 [ource.com:61613] WARN ManagedTransportConnection - Failed to register MBean: org.apache.activemq:BrokerName=master,Type=Connection,ConnectorName=stomp,ViewType=address,Name=/172.24.37.58_37699 2007-01-17 01:01:32,886 [ource.com:61613] DEBUG ManagedTransportConnection - Failure reason: javax.management.InstanceAlreadyExistsException: org.apache.activemq:BrokerName=master,Type=Connection,ConnectorName=stomp,ViewType=address,Name=/i.p.address_37699 javax.management.InstanceAlreadyExistsException: org.apache.activemq:BrokerName=master,Type=Connection,ConnectorName=stomp,ViewType=address,Name=/i.p.address_37699 at com.sun.jmx.mbeanserver.RepositorySupport.addMBean(RepositorySupport.java:452) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(DefaultMBeanServerInterceptor.java:1410) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:936) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:337) at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:497) at org.apache.activemq.broker.jmx.ManagedTransportConnection.registerMBean(ManagedTransportConnection.java:102) at org.apache.activemq.broker.jmx.ManagedTransportConnection.<init>(ManagedTransportConnection.java:60) at org.apache.activemq.broker.jmx.ManagedTransportConnector.createConnection(ManagedTransportConnector.java:56) at org.apache.activemq.broker.TransportConnector$1.onAccept(TransportConnector.java:147) at org.apache.activemq.transport.tcp.TcpTransportServer.run(TcpTransportServer.java:167) at java.lang.Thread.run(Thread.java:595) .... 2007-01-17 01:11:14,246 [.24.37.55:55440] DEBUG TransportConnection - Stopping connection: /172.24.37.55:55440 2007-01-17 01:11:18,340 [.24.37.55:55443] DEBUG WireFormatNegotiator - tcp:///172.24.37.55:55443 after negotiation: OpenWireFormat{version=2, cacheEnabled=true, stackTraceEnabled=true, tightEncodingEnabled=true, sizePrefixDisabled=false} 2007-01-17 01:11:18,341 [.24.37.55:55443] DEBUG TransportConnection - Setting up new connection: [EMAIL PROTECTED] 2007-01-17 01:11:18,341 [.24.37.55:55443] DEBUG Service - Async error occurred: javax.jms.InvalidClientIDException: Broker: master - Client: NC_slave_outboundslave already connected javax.jms.InvalidClientIDException: Broker: master - Client: NC_slave_outboundslave already connected at org.apache.activemq.broker.region.RegionBroker.addConnection(RegionBroker.java:205) at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:82) at org.apache.activemq.advisory.AdvisoryBroker.addConnection(AdvisoryBroker.java:70) at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:82) at org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:92) at org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:687) at org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddConnection(ManagedTransportConnection.java:86) at org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:121) at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:284) at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:177) at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65) at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:133) at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122) at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137) at java.lang.Thread.run(Thread.java:595 ..... 2007-01-17 01:11:24,528 [.24.37.58:38309] DEBUG TransportConnection - Setting up new connection: [EMAIL PROTECTED] 2007-01-17 01:11:24,529 [ource.com:61616] DEBUG WireFormatNegotiator - Sending: WireFormatInfo { version=2, properties={TightEncodingEnabled=true, CacheSize=1024, TcpNoDelayEnabled=true, SizePrefixDisabled=false, StackTraceEnabled=true, MaxInactivityDuration=30000, CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]} 2007-01-17 01:11:26,438 [ception Handler] DEBUG Transport - Transport failed: java.net.SocketException: Broken pipe java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at org.apache.activemq.transport.tcp.TcpBufferedOutputStream.flush(TcpBufferedOutputStream.java:109) at java.io.DataOutputStream.flush(DataOutputStream.java:106) at org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:119) at org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:141) at org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:80) at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:93) at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:43) at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1051) at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:779) at org.apache.activemq.broker.TransportConnection.iterate(TransportConnection.java:788) at org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:88) at org.apache.activemq.thread.DedicatedTaskRunner.access$000(DedicatedTaskRunner.java:25) at org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:39) ..... 2007-01-17 01:12:39,857 [ Agent Notifier] INFO NetworkConnector - Establishing network connection between from vm://master?network=true to tcp://slave:61616 2007-01-17 01:12:41,791 [.24.37.55:55452] DEBUG Transport - Transport failed: java.io.EOFException java.io.EOFException at java.io.DataInputStream.readInt(DataInputStream.java:358) at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:267) at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:156) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:136) at java.lang.Thread.run(Thread.java:595) 2007-01-17 01:12:43,720 [ception Handler] DEBUG Transport - Transport failed: java.net.SocketException: Socket closed java.net.SocketException: Socket closed at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:99) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at org.apache.activemq.transport.tcp.TcpBufferedOutputStream.flush(TcpBufferedOutputStream.java:109) at java.io.DataOutputStream.flush(DataOutputStream.java:106) at org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:119) at org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:141) at org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:80) at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:93) at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:43) at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1051) at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:779) at org.apache.activemq.broker.TransportConnection.start(TransportConnection.java:818) at org.apache.activemq.broker.TransportConnector$1.onAccept(TransportConnector.java:148) at org.apache.activemq.transport.tcp.TcpTransportServer.run(TcpTransportServer.java:167) at java.lang.Thread.run(Thread.java:595) .... 2007-01-17 01:18:03,157 [ Agent Notifier] INFO TransportConnector - Connector vm://master Started 2007-01-17 01:21:38,112 [ Agent Notifier] DEBUG DemandForwardingBridge - stopping master bridge to Unknown is disposed already ? false 2007-01-17 01:22:12,921 [ Agent Notifier] DEBUG TransportConnection - Stopping connection: vm://master#14 2007-01-17 01:22:49,518 [ Agent Notifier] DEBUG TransportConnection - Stopped connection: vm://master#14 2007-01-17 01:23:32,721 [ Agent Notifier] DEBUG DemandForwardingBridge - Caught exception stopping java.io.IOException: Wire format negociation timeout: peer did not send his wire format. at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:88) at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:43) at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60) at org.apache.activemq.network.DemandForwardingBridgeSupport.stop(DemandForwardingBridgeSupport.java:302) at org.apache.activemq.util.ServiceSupport.dispose(ServiceSupport.java:40) at org.apache.activemq.network.DiscoveryNetworkConnector.onServiceRemove(DiscoveryNetworkConnector.java:155) at org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$3.run(MulticastDiscoveryAgent.java:371) 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) at java.lang.Thread.run(Thread.java:595) .... 2007-01-17 01:36:43,038 [eckpoint Worker] ERROR JournalPersistenceAdapter - Failed to checkpoint a message store: edu.emory.mathcs.backport.java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space edu.emory.mathcs.backport.java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.getResult(FutureTask.java:299) at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.get(FutureTask.java:118) at org.apache.activemq.store.journal.JournalPersistenceAdapter.doCheckpoint(JournalPersistenceAdapter.java:386) at org.apache.activemq.store.journal.JournalPersistenceAdapter$2.iterate(JournalPersistenceAdapter.java:129) at org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:88) at org.apache.activemq.thread.DedicatedTaskRunner.access$000(DedicatedTaskRunner.java:25) at org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:39) Caused by: java.lang.OutOfMemoryError: Java heap space