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

Jim Gomes commented on AMQNET-159:
----------------------------------

I'm not sure what the state of 1.2 is.  A lot of development has been going on, 
so I can't be 100% on it.  For what it's worth, the unit tests continue to pass 
at the same rate as previously.  The 1.2 trunk is allowed to be in a state of 
flux since that is our active development branch.  So the best I can offer is, 
try it and see if it works for you.  We try not to break stuff.

BTW, would you mind reviewing the merge that I did.  It got pretty hairy at 
times, so I would appreciate a review.  Thanks.

> Make failover protocol optionally asynchronously connect to sockets
> -------------------------------------------------------------------
>
>                 Key: AMQNET-159
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-159
>             Project: ActiveMQ .Net
>          Issue Type: New Feature
>          Components: ActiveMQ Client
>    Affects Versions: 1.1.0
>         Environment: XP, Windows Server 2008, Sql Server 2008
>            Reporter: Mark Gellings
>            Assignee: Jim Gomes
>             Fix For: 1.2.0
>
>         Attachments: FailoverAsyncConnect.patch
>
>
> The current failover transport synchronously attempts to socket connect to a 
> broker.  Preferably we would first socket connect trying the master address 
> in the failover address to avoid a socket connection timeout.  When the first 
> tcp address in the failover address is the slave, its connectors are not 
> started, and .NET takes around 20 - 25s to timeout trying to socket connect 
> to the slave.  Thus the client is waiting 20-25s to submit a message when the 
> session is first established.
> Since the first tcp address in the failover address is never guaranteed to be 
> the master, I've coded an enhancement that optionally allows to 
> asynchronously socket connect utilizing all the tcp addresses in the failover 
> address.  I have a patch you can apply.
> The following failover address is an example of how to use the async connect.
> private static Uri _uri = new 
> Uri("failover:(tcp://WAMQDEV1.qg.com:10083,tcp://SXMQDEV1.qg.com:10083)?AsyncConnect=true&AsyncTimeout=20000");
> This will cause the failover transport to attempt connecting to WAMQDEV1 and 
> SXMQDEV1 at the same time to avoid the impact of any socket connect timeouts. 
>  First broker connected to becomes the transport utilized.  If WAMQDEV1 
> broker is not running or is running the slave broker then if SXMQDEV1 is 
> running the master broker the client will connect to SXMQDEV1.
> AsyncTimeout is the max time in milliseconds to wait for a transport to be 
> initialized.  So if both brokers are down, in the example above, after 20000 
> milliseconds the normal retry logic will kick in.

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

Reply via email to