activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Ellis (JIRA)" <>
Subject [jira] Updated: (AMQNET-147) Connection fails to close if a producer or consumer has not been disposed (only when using the failover transport).
Date Thu, 26 Feb 2009 11:53:59 GMT


Daniel Ellis updated AMQNET-147:

    Attachment: ConnectionError.patch

This issue may not be solely due to the failover transport, it may just be that the failover
transport identifies an underlying issue.

If you run the unit tests using the standard activemq transport, the tests pass, but I have
noticed the following line at the end of the trace output:

ERROR: Unknown command: ConnectionError[ Exception=Apache.NMS.ActiveMQ.Commands.BrokerError:
id = 0 ConnectionId= ]

The connection error type is not handled, so the ConnectionError.patch file attached handles
this command type and writes the actual error message to the trace.  This is the error that
is now displayed:

ERROR: Connection error: Cannot remove a consumer from a session that had not been registered:

I suspect that this error is possibly causing the failover transport to continually disconnect
and reconnect.  But that is just a hunch and I have not proved that yet.

> Connection fails to close if a producer or consumer has not been disposed (only when
using the failover transport).
> -------------------------------------------------------------------------------------------------------------------
>                 Key: AMQNET-147
>                 URL:
>             Project: ActiveMQ .Net
>          Issue Type: Bug
>          Components: ActiveMQ Client
>    Affects Versions: 1.1
>         Environment: Using failover transport
>            Reporter: Daniel Ellis
>            Assignee: Jim Gomes
>             Fix For: 1.1
>         Attachments: ConnectionError.patch, ConnectionsTests.patch
> When using the failover transport such as:-
> <defaultURI value="activemq:failover:(tcp://activemqhost:61616,tcp://activemqhost:61616)"/>
> A connection will fail to close if you dispose a connection before disposing a consumer
or producer that is associated with the connection.  The dispose call never returns because
the failover transport is continually reconnecting due to a KeyNotFoundException.  The KeyNotfoundException
is thrown because a session no longer exists in the connection state.
> A number of the existing unit tests fail (actually they never return) when using the
failover transport.  When in debug, a DebugAssert is displayed for each error that causes
the reconnect.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message