You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Igor Katkov (JIRA)" <ji...@apache.org> on 2009/08/14 23:57:35 UTC
[jira] Issue Comment Edited: (AMQNET-179) TcpTransport.cs consumes
transport-related exceptions
[ https://issues.apache.org/activemq/browse/AMQNET-179?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=53623#action_53623 ]
Igor Katkov edited comment on AMQNET-179 at 8/14/09 2:57 PM:
-------------------------------------------------------------
Yes, you may just throw it, that would break a lot of existing source code though. :-(
So what I did is the lesser evil - those who are interested in handling it will do
{code}
conFactory = new ConnectionFactory(URI);
connection = (Connection) conFactory.CreateConnection();
connection.ExceptionListener += ConnectionExceptionListener;
{code}
those who are not, just carry on
P.S.
FailoverTransport is completely broken in .NET client. I spent a day trying to make it work or even fix it. That's why I turned back to TcpTransport, implemented a hook and handled re-connection on upper application level. Not to mention that it does not support almost any configuration params from URL
How-to see that FailoverTransport is completely broken -
a.
1. Connect c# to a broker via failovertransport to activemq:failover:tcp://localhost:61616
2. Send a few messages
3. Restart the broker, while keep sending messages
4. Bingo! Your client hangs
b.
1. Stop your broker
2. Connect c# to a broker via failovertransport to activemq:failover:tcp://localhost:61616
3. Start the broker
4. Bingo! Connection will never be made
was (Author: igor):
Yes, you may just throw it, that would break a lot of existing source code though. :-(
So what I did is the lesser evil - those who are interested in handling it will do
{code}
conFactory = new ConnectionFactory(URI);
connection = (Connection) conFactory.CreateConnection();
connection.ExceptionListener += ConnectionExceptionListener;
{code}
those who are not, just carry on
P.S.
FailoverTransport is completely broken in .NET client. I spent a day trying to make it work or even fix it. That's why I turned back to TcpTransport, implemented a hook and handled re-connection on upper application level. Not to mention that it does not support almost any configuration params from URL
How-to see that FailoverTransport is completely broken -
a.
1. Connect c# to a broker via failovertransport to activemq:failover:tcp://localhost:61616
2. Send a few messages
3. Restart the broker, while keep sending messages
4. Bingo! Your client hangs
b.
1. Stop your broker
2. Connect c# to a broker via failovertransport to activemq:failover:tcp://localhost:61616
3. Bingo! Connection will never be made
> TcpTransport.cs consumes transport-related exceptions
> -----------------------------------------------------
>
> Key: AMQNET-179
> URL: https://issues.apache.org/activemq/browse/AMQNET-179
> Project: ActiveMQ .Net
> Issue Type: Bug
> Components: ActiveMQ Client
> Affects Versions: 1.1.0
> Reporter: Igor Katkov
> Assignee: Timothy Bish
> Fix For: 1.2.0
>
> Attachments: patchfile.txt
>
>
> TcpTransport.cs consumes transport-related exceptions
> Therefore there is no way to handle broken connections in the client application.
> To reproduce:
> 1. Connect c# to a broker via tcp transport
> 2. Send a few messages
> 3. Restart the broker
> 4. Bingo! Client application thinks connection is up, while it's in fact broken for good.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.