2012-08-28 36 views
2

我有用於ActiveMQ的.Net客戶端。 我使用Apache.NMS 1.5.1.2739和Apache.NMS.ActiveMQ 1.5.6.2746.NET中的ActiveMQ連接啓動超時

我使用的後續代碼連接到代理:

var connectionFactory = new ConnectionFactory("failover:tcp://127.0.0.1:61616/?transport.timeout=5000"); 
IConnection connection = connectionFactory.CreateConnection(); 
connection.Start(); 

問題是,當沒有ActiveMQ代理然後可用connection.Start()永遠掛起。所以transport.timeout在這裏沒有幫助。 我想超時Start()方法。所以在這段時間之後發生異常並且執行可能進一步進行。 如何避免這樣的問題?

+0

可能重複的[ActiveMQ NMS:connection.start()掛起與故障轉移協議當代理關閉](http://stackoverflow.com/questions/10880814/activemq-nms-connection-start-hangs-with-failover - 方案 - 當經紀人,是-DOW) – ecatmur

回答

4

我找到了正確的uri參數。 整個URI應該是這樣的一個

故障轉移:(TCP://127.0.0.1:61616 /)?transport.startupMaxReconnectAttempts = 2

但如果再發生ActiveMQ客戶機的異常注意不會嘗試重新連接,你需要自己做。