0
我们已经制定了同步JMS通信,我们将请求发送到一个队列,等待corelated响应后摆脱响应消息超时时间为400毫秒。如果响应不会在400秒内回来,那么我们的线程超时和消息将保留在队列中,并且永远不会读取。
我们的目标系统花费了大量的时间来处理消息,响应在400毫秒后回来,导致我们的线程超时并且响应队列很快满了。
我该如何摆脱响应队列中响应来迟的孤儿响应消息?
我们已经制定了同步JMS通信,我们将请求发送到一个队列,等待corelated响应后摆脱响应消息超时时间为400毫秒。如果响应不会在400秒内回来,那么我们的线程超时和消息将保留在队列中,并且永远不会读取。
我们的目标系统花费了大量的时间来处理消息,响应在400毫秒后回来,导致我们的线程超时并且响应队列很快满了。
我该如何摆脱响应队列中响应来迟的孤儿响应消息?
理论上,在JMS协议中,可以设置JMS头部属性即JMSExpiration。如果您使用标准的java-jms,则JmsSender类具有您可以使用的“setTimeToLive”方法。
这就是通常使用的“生存时间”。 –