VMTransport fails with IOException
----------------------------------
Key: AMQ-2734
URL: https://issues.apache.org/activemq/browse/AMQ-2734
Project: ActiveMQ
Issue Type: Bug
Components: Broker
Affects Versions: 5.3.0
Environment: OS: Linux / 2.6.9-67.ELsmp / i386 / 8
JVM: Java HotSpot(TM) Server VM / Sun Microsystems Inc. / 1.6.0_17-b04
Reporter: Erich Liebmann
We are able to successfully publish a large number of messages to an embedded
ActiveMQ instance via the VM protocol/transport. After a while, however,
further publishing starts to fail with IOExceptions (caused by
InterruptedExceptions). For some (unknown) reason the invocation of
LinkedBlockingQueue#put() in the VMTransport#oneway() method starts to fail
with InterruptedExceptions. Please find the full stack trace below.
Since we use the VM transport together with the FAILOVER transport the
connection is recovered automatically (a fraction of a second later). Our
connection URL currently is as follows:
failover:(vm://amqmasterbroker?create=false&waitForStart=10000)?initialReconnectDelay=100&maxReconnectAttempts=5
We intend to set the transport parameters backup=true&timeout=100 on the
FAILOVER protocol to work around the problem of stuck publishing threads and
message publishing errors in case of the IOException (not sure if this will
help) but would want see the root-cause to be fixed by ActiveMQ as this issue
is causing a lot of troubles for us in production.
2010-05-14 18:19:13,950 [EventServiceChannel$ReceiverThread[daemon]_357] DEBUG
failover.FailoverTransport - Send oneway attempt: 0 failed for
command:ActiveMQObjectMessage {commandId = 1929587556, responseRequired =
false, messageId = ID:saturntstsgp-40467-1273493117026-2:0:35:2:8847665,
originalDestination = null, originalTransactionId = null, producerId =
ID:saturntstsgp-40467-127349311702
2010-05-14 18:19:13,950 [EventServiceChannel$ReceiverThread[daemon]_357] WARN
failover.FailoverTransport - Transport failed to
vm://amqmasterbroker?create=false&waitForStart=10000 , attempting to
automatically reconnect due to: java.io.IOException
2010-05-14 18:19:13,951 [EventServiceChannel$ReceiverThread[daemon]_357] DEBUG
failover.FailoverTransport - Transport failed with the following exception:
java.io.IOException
at
org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:45)
at
org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:104)
at
org.apache.activemq.transport.failover.FailoverTransport.oneway(FailoverTransport.java:471)
at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
at
org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
at
org.apache.activemq.ActiveMQConnection.doAsyncSendPacket(ActiveMQConnection.java:1225)
at
org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1219)
at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1680)
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:231)
at
org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:269)
at
org.springframework.jms.connection.CachedMessageProducer.send(CachedMessageProducer.java:117)
at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:597)
at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:574)
at
org.springframework.jms.core.JmsTemplate$3.doInJms(JmsTemplate.java:541)
at
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:471)
at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:539)
at
com.scb.saturn.services.messagebroker.MessageBrokerImpl.publishMessage(MessageBrokerImpl.java:118)
at
com.scb.saturn.services.messagebroker.MessageBrokerImpl.publishMessage(MessageBrokerImpl.java:102)
at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:64)
at
org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:78)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
at
org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:36)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
at
org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy45.publishMessage(Unknown Source)
at
com.scb.saturn.services.apamaclient.scenario.ScenarioService.publishToMessageBroker(ScenarioService.java:362)
at
com.scb.saturn.services.apamaclient.scenario.ScenarioService.updateInstance(ScenarioService.java:97)
at
com.scb.saturn.services.apamaclient.scenario.ScenarioService.propertyChange(ScenarioService.java:176)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at
com.apama.services.scenario.internal.ScenarioDefinition.handle_instanceUpdated(ScenarioDefinition.java:1424)
at
com.apama.services.scenario.internal.ScenarioDefinition.access$300(ScenarioDefinition.java:52)
at
com.apama.services.scenario.internal.ScenarioDefinition$2.handleEvent(ScenarioDefinition.java:1627)
at
com.apama.services.event.internal.EventServiceChannel.processEvent(EventServiceChannel.java:1057)
at
com.apama.services.event.internal.EventServiceChannel$ReceiverThread.run(EventServiceChannel.java:1179)
Caused by: java.lang.InterruptedException
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterruptibly(Unknown
Source)
at java.util.concurrent.locks.ReentrantLock.lockInterruptibly(Unknown
Source)
at java.util.concurrent.LinkedBlockingQueue.put(Unknown Source)
at
org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:94)
... 44 more
2010-05-14 18:19:13,960 [EventServiceChannel$ReceiverThread[daemon]_357] WARN
util.LoggingTransportListener - transport
[amqMessageBrokerAmqConnectionTransport] has been interrupted
2010-05-14 18:19:13,961 [ActiveMQ Task] DEBUG failover.FailoverTransport -
urlList connectionList:[vm://amqmasterbroker?create=false&waitForStart=10000]
2010-05-14 18:19:13,961 [ActiveMQ Task] DEBUG failover.FailoverTransport -
Attempting connect to: vm://amqmasterbroker?create=false&waitForStart=10000
2010-05-14 18:19:13,962 [ActiveMQ Task] DEBUG failover.FailoverTransport -
Connection established
2010-05-14 18:19:13,962 [ActiveMQ Task] WARN util.LoggingTransportListener -
transport [amqMessageBrokerAmqConnectionTransport] has been resumed
2010-05-14 18:19:14,025 [ActiveMQ Task] INFO failover.FailoverTransport -
Successfully reconnected to vm://amqmasterbroker?create=false&waitForStart=10000
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.