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.