Active NMS Producer + Java Consumer

View: New views
3 Messages — Rating Filter:   Alert me  

Active NMS Producer + Java Consumer

by KimSchneider :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I'm using Active NMS .NET to produce messages and a java consumer.

I can send messages from the producer to the message queue and the consumer is able to use them. But after a couple of seconds without sending a message, I get the following error

[code]
Apache.NMS.ActiveMQ.BrokerException: System.InvalidOperationException: Error writing to broker.  Transport connection is closed.
   bei Apache.NMS.ActiveMQ.Transport.Tcp.TcpTransport.Oneway(Command command) in d:\Hudson\jobs\Regatta_Products\workspace\External\Apache.NMS\project\Apache.NMS.ActiveMQ\tags\1.1.0\src\main\csharp\Transport\Tcp\TcpTransport.cs:Zeile 118. : Transport connection error: Error writing to broker.  Transport connection is closed.

   bei Apache.NMS.ActiveMQ.Transport.ResponseCorrelator.Request(Command command, TimeSpan timeout) in d:\Hudson\jobs\Regatta_Products\workspace\External\Apache.NMS\project\Apache.NMS.ActiveMQ\tags\1.1.0\src\main\csharp\Transport\ResponseCorrelator.cs:Zeile 105.
   bei Apache.NMS.ActiveMQ.Connection.SyncRequest(Command command, TimeSpan requestTimeout) in d:\Hudson\jobs\Regatta_Products\workspace\External\Apache.NMS\project\Apache.NMS.ActiveMQ\tags\1.1.0\src\main\csharp\Connection.cs:Zeile 338.
   bei Apache.NMS.ActiveMQ.Session.DoSend(Command message, TimeSpan requestTimeout) in d:\Hudson\jobs\Regatta_Products\workspace\External\Apache.NMS\project\Apache.NMS.ActiveMQ\tags\1.1.0\src\main\csharp\Session.cs:Zeile 484.
   bei Apache.NMS.ActiveMQ.Session.CreateProducer(IDestination destination) in d:\Hudson\jobs\Regatta_Products\workspace\External\Apache.NMS\project\Apache.NMS.ActiveMQ\tags\1.1.0\src\main\csharp\Session.cs:Zeile 224.
   bei Communicator.ActiveMQCommunicator.sendMessage(String message) in D:\dev\ServerEye3\Source\Communicator\Communicator\ActiveMQCommunicator.cs:Zeile 78.[/code]

Does anyone know what this means and how I can fix that?

PS: I'm using the latest version of activemq and activemq nms

Re: Active NMS Producer + Java Consumer

by Timothy Bish :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, 2009-11-03 at 01:08 -0800, KimSchneider wrote:
> Hi,
>
> I'm using Active NMS .NET to produce messages and a java consumer.
>
> I can send messages from the producer to the message queue and the consumer
> is able to use them. But after a couple of seconds without sending a
> message, I get the following error

This is caused by a change in the 5.3 release of ActiveMQ.  You can do
on of three things.  

1. add this option to your client's current URI string;
wireFormat.MaxInactivityDuration=-1

2. Change the Openwire connector configuration in ActiveMQ's
activemq.xml to the following:

<transportConnectors>
   <transportConnector name="openwire"
uri="tcp://0.0.0.0:61616?transport.keepAliveResponseRequired=true"/>
</transportConnectors>

3. Download the latest source for NMS and NMS.ActiveMQ from trunk and
build the DLLs from that since this issue has been resolved there.

Regards
Tim.

>
> [code]
> Apache.NMS.ActiveMQ.BrokerException: System.InvalidOperationException: Error
> writing to broker.  Transport connection is closed.
>    bei Apache.NMS.ActiveMQ.Transport.Tcp.TcpTransport.Oneway(Command
> command) in
> d:\Hudson\jobs\Regatta_Products\workspace\External\Apache.NMS\project\Apache.NMS.ActiveMQ\tags\1.1.0\src\main\csharp\Transport\Tcp\TcpTransport.cs:Zeile
> 118. : Transport connection error: Error writing to broker.  Transport
> connection is closed.
>
>    bei Apache.NMS.ActiveMQ.Transport.ResponseCorrelator.Request(Command
> command, TimeSpan timeout) in
> d:\Hudson\jobs\Regatta_Products\workspace\External\Apache.NMS\project\Apache.NMS.ActiveMQ\tags\1.1.0\src\main\csharp\Transport\ResponseCorrelator.cs:Zeile
> 105.
>    bei Apache.NMS.ActiveMQ.Connection.SyncRequest(Command command, TimeSpan
> requestTimeout) in
> d:\Hudson\jobs\Regatta_Products\workspace\External\Apache.NMS\project\Apache.NMS.ActiveMQ\tags\1.1.0\src\main\csharp\Connection.cs:Zeile
> 338.
>    bei Apache.NMS.ActiveMQ.Session.DoSend(Command message, TimeSpan
> requestTimeout) in
> d:\Hudson\jobs\Regatta_Products\workspace\External\Apache.NMS\project\Apache.NMS.ActiveMQ\tags\1.1.0\src\main\csharp\Session.cs:Zeile
> 484.
>    bei Apache.NMS.ActiveMQ.Session.CreateProducer(IDestination destination)
> in
> d:\Hudson\jobs\Regatta_Products\workspace\External\Apache.NMS\project\Apache.NMS.ActiveMQ\tags\1.1.0\src\main\csharp\Session.cs:Zeile
> 224.
>    bei Communicator.ActiveMQCommunicator.sendMessage(String message) in
> D:\dev\ServerEye3\Source\Communicator\Communicator\ActiveMQCommunicator.cs:Zeile
> 78.[/code]
>
> Does anyone know what this means and how I can fix that?
>
> PS: I'm using the latest version of activemq and activemq nms
--
Tim Bish
http://fusesource.com
http://timbish.blogspot.com/




Re: Active NMS Producer + Java Consumer

by KimSchneider :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks a lot for your reply!

I've found the wireFormat.MaxInactivityDuration option somewhen last night and that's the solution for my problem. I wonder if nobody else had that problem, because I didn't find anything and the option is kinda hidden (I'm new to jms)

Now I'm using the failover, too, it's a great help.

Anyway, thanks for your answer

Timothy Bish wrote:
On Tue, 2009-11-03 at 01:08 -0800, KimSchneider wrote:
> Hi,
>
> I'm using Active NMS .NET to produce messages and a java consumer.
>
> I can send messages from the producer to the message queue and the consumer
> is able to use them. But after a couple of seconds without sending a
> message, I get the following error

This is caused by a change in the 5.3 release of ActiveMQ.  You can do
on of three things.  

1. add this option to your client's current URI string;
wireFormat.MaxInactivityDuration=-1

2. Change the Openwire connector configuration in ActiveMQ's
activemq.xml to the following:

<transportConnectors>
   <transportConnector name="openwire"
uri="tcp://0.0.0.0:61616?transport.keepAliveResponseRequired=true"/>
</transportConnectors>

3. Download the latest source for NMS and NMS.ActiveMQ from trunk and
build the DLLs from that since this issue has been resolved there.

Regards
Tim.

>
> [code]
> Apache.NMS.ActiveMQ.BrokerException: System.InvalidOperationException: Error
> writing to broker.  Transport connection is closed.
>    bei Apache.NMS.ActiveMQ.Transport.Tcp.TcpTransport.Oneway(Command
> command) in
> d:\Hudson\jobs\Regatta_Products\workspace\External\Apache.NMS\project\Apache.NMS.ActiveMQ\tags\1.1.0\src\main\csharp\Transport\Tcp\TcpTransport.cs:Zeile
> 118. : Transport connection error: Error writing to broker.  Transport
> connection is closed.
>
>    bei Apache.NMS.ActiveMQ.Transport.ResponseCorrelator.Request(Command
> command, TimeSpan timeout) in
> d:\Hudson\jobs\Regatta_Products\workspace\External\Apache.NMS\project\Apache.NMS.ActiveMQ\tags\1.1.0\src\main\csharp\Transport\ResponseCorrelator.cs:Zeile
> 105.
>    bei Apache.NMS.ActiveMQ.Connection.SyncRequest(Command command, TimeSpan
> requestTimeout) in
> d:\Hudson\jobs\Regatta_Products\workspace\External\Apache.NMS\project\Apache.NMS.ActiveMQ\tags\1.1.0\src\main\csharp\Connection.cs:Zeile
> 338.
>    bei Apache.NMS.ActiveMQ.Session.DoSend(Command message, TimeSpan
> requestTimeout) in
> d:\Hudson\jobs\Regatta_Products\workspace\External\Apache.NMS\project\Apache.NMS.ActiveMQ\tags\1.1.0\src\main\csharp\Session.cs:Zeile
> 484.
>    bei Apache.NMS.ActiveMQ.Session.CreateProducer(IDestination destination)
> in
> d:\Hudson\jobs\Regatta_Products\workspace\External\Apache.NMS\project\Apache.NMS.ActiveMQ\tags\1.1.0\src\main\csharp\Session.cs:Zeile
> 224.
>    bei Communicator.ActiveMQCommunicator.sendMessage(String message) in
> D:\dev\ServerEye3\Source\Communicator\Communicator\ActiveMQCommunicator.cs:Zeile
> 78.[/code]
>
> Does anyone know what this means and how I can fix that?
>
> PS: I'm using the latest version of activemq and activemq nms
--
Tim Bish
http://fusesource.com
http://timbish.blogspot.com/