Unhandled Exception in thread started by Apache.NMS.ActiveMQ when Broker is
restarted
-------------------------------------------------------------------------------------
Key: AMQNET-316
URL: https://issues.apache.org/jira/browse/AMQNET-316
Project: ActiveMQ .Net
Issue Type: Bug
Components: ActiveMQ
Affects Versions: 1.2.0
Environment: Apache.NMS.dll 1.2.0.1836, Apache.NMS.ActiveMQ.dll
1.2.0.1864, Active MQ Broker 5.3.1, .NET Framework 3.5 SP1, Windows 7 64-bit
Reporter: Philip Oswald
Assignee: Jim Gomes
We observed occasional crashes in a .NET message producer when the Broker was
restarted. The crash could be traced to
an unhandled System.InvalidOperationException that was thrown in a thread
started by Apache.NMS.ActiveMQ.
The following information was reported by the
System.AppDomain.CurrentDomain.UnhandledException event:
------
.NET Exception in database layer:
System.InvalidOperationException (from module mscorlib): Die Auflistung
wurde geändert. Der Enumerationsvorgang kann möglicherweise nicht ausgeführt
werden.
Detailed Information:
Message: Die Auflistung wurde geändert. Der Enumerationsvorgang kann
möglicherweise nicht ausgeführt werden.
Type: System.InvalidOperationException
Source: mscorlib
Stack Trace:
bei System.Collections.Hashtable.HashtableEnumerator.MoveNext()
bei Apache.NMS.ActiveMQ.Transport.ResponseCorrelator.OnException(ITransport
sender, Exception command)
bei Apache.NMS.ActiveMQ.Transport.InactivityMonitor.OnException(ITransport
sender, Exception command)
bei Apache.NMS.ActiveMQ.Transport.Tcp.TcpTransport.ReadLoop()
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext,
ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()
The .NET runtime is terminating.
------
The problem occurs only in rare circumstances.
It could be reproduced by repeatedly executing the following steps (for about
one hour):
- Stop the Broker (NET STOP ActiveMQ)
- Wait for 5 secs
- Start the Broker (NET START ActiveMQ)
- Wait for 5 secs
Further info:
- We have a fairly simple "reporter thread" that sends messages to an ActiveMQ
queue using a single connection,
session and producer instance. Whenever the reporter thread encounteres an
exception, the three instances
(connection, session, producer) are closed and recreated. The instances are
only accessed by the reporter thread.
- URL: activemq:tcp://test-cus-server:61616
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira