activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (JIRA)" <jira+amq...@apache.org>
Subject [jira] Commented: (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 19:02:00 GMT

    [ https://issues.apache.org/activemq/browse/AMQNET-147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50054#action_50054
] 

Timothy Bish commented on AMQNET-147:
-------------------------------------

I haven't had a chance to try this yet but it looks to me like the issue is probably due to
the fact that the Session removes itself from the Connection before it removes its consumers
and producers in its close method.  The removeSession call causes the client to send a dispose
message to the broker and removing it from the state tracker used in the Failover Transport,
so when that's followed by the remove of the consumers and producers the state is not valid.

I've attached a patch you can try out.

> Connection fails to close if a producer or consumer has not been disposed (only when
using the failover transport).
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQNET-147
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-147
>             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: CloseSessionAfterEverythingElse.patch, 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.


Mime
View raw message