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