[
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.