Using (provided as attachments):
- the Java application ScheduledRequesterDemo using the 5.13.1 or 5.4.1 ActiveMQ jars running on Windows
- the C# application Program using the NMS 1.7.1 assemblies
- the activemq-61616.xml configuration for the broker 5.13.1 running on Windows
- Java 1.7 (for the Java application and the broker)
Test case on Windows (request/reply):
- launching the C# application with "tcp://localhost:61616 test.nms.1.7.1" as parameters - it listens on the queue "test.nms.1.7.1" for request message
- launching the Java application with "failover://tcp://localhost:61616 test.nms.1.7.1" as parameters - it periodically sends a request on the queue "test.nms.1.7.1" and waits for the response on a temporary queue it has created
- letting them run for 5 hours
After 3-5 hours, the C# application fails to detect the temporary queue (that is visible in the JMX console during the 10 seconds wait). The C# application error message is:
The Java application logs an error since it did not receive the response on the temporary queue.
Restarting the broker resolves the problem temporary, until a few hours later it occurs again.
Note that this test was also done the same error with:
- the same 5.13.1 broker running on Linux
- the Java application using 5.4.1 running on Linux
- the C# application using NMS 1.5.1
With an ActiveMQ broker 5.10.2 (or 5.4.1), after two days running on Linux (with the Java application using the 5.4.1 jars), this issue never occurs.
It is likely unrelated, but during the tests on Windows, before the first failure (between several minutes and an hour), the broker logged a single warning: