ActiveMQ请求TimeOut

时间:2014-05-08 19:41:34

标签: c# exception activemq

我在这篇文章前言说我最近才与ActiveMQ合作

我目前正在开发一个使用ActiveMQ作为两个端点之间的消息传递框架的项目。它以相对简单的方式使用。客户端1将JSON放入客户端2的队列中,反之亦然。每个客户端都会侦听其队列并处理消息。

在C#方面,正在使用Apache的NMS库来实现消息传递。我注意到在日志中出现的东西是:

Apache.NMS.ActiveMQ.RequestTimedOutException: Synchronous Request Timed out after [20000] milliseconds
   at Apache.NMS.ActiveMQ.Connection.SyncRequest(Command command, TimeSpan requestTimeout)
   at Apache.NMS.ActiveMQ.Session.DoSend(ActiveMQDestination destination, ActiveMQMessage message, MessageProducer producer, MemoryUsage producerWindow, TimeSpan sendTimeout)
   at Apache.NMS.ActiveMQ.MessageProducer.Send(IDestination destination, IMessage message, MsgDeliveryMode deliveryMode, MsgPriority priority, TimeSpan timeToLive, Boolean specifiedTimeToLive)
   at Apache.NMS.ActiveMQ.MessageProducer.Send(IDestination destination, IMessage message)

我对这个错误的解释是ActiveMQ在最终放弃之前尝试执行实际发送(阻塞)20秒。对我来说有趣的是,我发送日志条目后表示成功发送消息。

有更多ActiveMQ经验的人可以向我解释这一点,并指出我的最佳做法吗?我不确定如何诊断这个和/或如何建立心跳机制,以确认其他客户真的"那里"。我已经通过ping消息进行了实验,这些消息被发送到一个客户端并立即返回到原始客户端的队列中,但在我的测试中,似乎我将在一秒钟之内接收消息然后在某些点,消息停止接收最多一分钟。

0 个答案:

没有答案