Details
Description
I have two client application written on Java. Each of them has consumers to ActiveMQ (maven dependancy 'activemq-core' version 5.3.2).
Also there are three applications written on C# (two windows services and one ASP.NET application) which use Apache.NMS 1.5 to connect to ActiveMQ server.
During some time everything's fine (e.g. today this period has been about 4 hours). But since some moment .NET started throw the following exception:
Wire format negotiation timeout: peer did not send his wire format.
Apache.NMS.ActiveMQ.IOException: Wire format negotiation timeout: peer did not send his wire format.
at Apache.NMS.ActiveMQ.Connection.SyncRequest(Command command) in c:\dev\NMS.ActiveMQ\src\main\csharp\Connection.cs:line 628
at Apache.NMS.ActiveMQ.Connection.CheckConnected() in c:\dev\NMS.ActiveMQ\src\main\csharp\Connection.cs:line 712
at Apache.NMS.ActiveMQ.Connection.CreateAtiveMQSession(AcknowledgementMode ackMode) in c:\dev\NMS.ActiveMQ\src\main\csharp\Connection.cs:line 467
at Apache.NMS.ActiveMQ.Connection.CreateSession() in c:\dev\NMS.ActiveMQ\src\main\csharp\Connection.cs:line 454
Actually Java consumers also don't work though there are no errors in their part. But I can see via ActiveMQ web console that no one Query has consumers (for each Query column 'Number Of Consumers' value equals 0).
So actually nothing works (not Java, not C#) since some moment. I can see the error in .NET but can't see in Java.
Also this problem appears after restarting operation system. Not always but it happens occasionally.
PS For Java application I use org.apache.activemq.ActiveMQConnectionFactory and Mule ESB jms:activemq-connector. And this part doesn't show error when it happens.
For C# applications I use Apache.NMS.ActiveMQ.ConnectionFactory and every time when I think we can face to problem I'm trying to get new connection with the following code lines:
if ((connection == null) || !connection.IsStarted)
{
connection = factory.CreateConnection();
ISession session = connection.CreateSession();
IDestination dest = session.GetDestination(Queue);
producer = session.CreateProducer(dest);
}
but unfortunately it doesn't help.