[
https://issues.apache.org/activemq/browse/AMQNET-188?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timothy Bish resolved AMQNET-188.
---------------------------------
Resolution: Duplicate
Fix Version/s: 1.2.0
This should have been addressed by the fixes for AMQNET-171 and other recent
changes. I cannot reproduce this error. Will close this issue and if it
reoccurs we can reopen.
> Apache.NMS.ActiveMQ.MessageProducer does throw error when on FailoverTransport
> ------------------------------------------------------------------------------
>
> Key: AMQNET-188
> URL: https://issues.apache.org/activemq/browse/AMQNET-188
> Project: ActiveMQ .Net
> Issue Type: Bug
> Components: ActiveMQ
> Affects Versions: 1.1.0
> Environment: Windows XP SP3, Windows 2003 Server
> Reporter: Michel Van Hoof
> Assignee: Jim Gomes
> Fix For: 1.2.0
>
>
> I had a production broker which had some issues with his Java GC limits. When
> the broker had an issue (using failover transport), my services using this
> broker started throwing errors (while exceptions should be supressed when
> using failover transport ). Looking into the code i found out that when the
> broker closes the connection while a message producer is sending messages,
> this throws an error in the MessageProducer.CS Class in the folowing void:
> {code}
> protected void Send(IDestination destination, IMessage message,
> MsgDeliveryMode deliveryMode, MsgPriority priority, TimeSpan timeToLive, bool
> specifiedTimeToLive)
> {
> if(null == destination)
> {
> // See if this producer was created without a
> destination.
> if(null == info.Destination)
> {
> throw new NotSupportedException();
> }
> // The producer was created with a destination,
> but an invalid destination
> // was specified.
> throw new
> Apache.NMS.InvalidDestinationException();
> }
> ActiveMQMessage activeMessage = (ActiveMQMessage)
> message;
> if(!disableMessageID)
> {
> MessageId id = new MessageId();
> id.ProducerId = info.ProducerId;
> id.ProducerSequenceId =
> Interlocked.Increment(ref messageCounter);
> activeMessage.MessageId = id;
> }
> activeMessage.ProducerId = info.ProducerId;
> activeMessage.FromDestination = destination;
> activeMessage.NMSDeliveryMode = deliveryMode;
> activeMessage.NMSPriority = priority;
> if(!disableMessageTimestamp)
> {
> activeMessage.NMSTimestamp = DateTime.UtcNow;
> }
> if(specifiedTimeToLive)
> {
> activeMessage.NMSTimeToLive = timeToLive;
> }
> lock(closedLock)
> {
> if(closed)
> {
> throw new ConnectionClosedException();
> }
> if(session.Transacted)
> {
> session.DoStartTransaction();
> activeMessage.TransactionId =
> session.TransactionContext.TransactionId;
> }
> session.DoSend(activeMessage,
> this.RequestTimeout);
> }
> }
> {code}
> this is the error:
> {code}
> Apache.NMS.ActiveMQ.BrokerException: System.InvalidOperationException: Error
> writing to broker. Transport connection is closed.
> at Apache.NMS.ActiveMQ.Transport.Tcp.TcpTransport.Oneway(Command command)
> : Transport connection error: Error writing to broker. Transport connection
> is closed.
> at Apache.NMS.ActiveMQ.Transport.ResponseCorrelator.Request(Command
> command, TimeSpan timeout)
> at Apache.NMS.ActiveMQ.Connection.SyncRequest(Command command, TimeSpan
> requestTimeout)
> at Apache.NMS.ActiveMQ.Session.DoSend(Command message, TimeSpan
> requestTimeout)
> at Apache.NMS.ActiveMQ.MessageProducer.Send(IDestination destination,
> IMessage message, MsgDeliveryMode deliveryMode, MsgPriority priority,
> TimeSpan timeToLive, Boolean specifiedTimeToLive)
> at Apache.NMS.ActiveMQ.MessageProducer.Send(IMessage message)
> at tp2server.mqServer.OnMessage(IMessage oMessage)
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.