同步请求\响应JMS通信,如何在超时后从JMS队列中删除响应消息

时间:2017-04-20 05:56:38

标签: jms ibm-mq spring-jms

所有

我们有一个同步JMS通信,我们向队列发送请求,并等待400毫秒超时的核心响应。如果响应在400秒内没有返回,那么我们的线程超时并且消息仍然在队列中,并且永远不会被读取。

我们的目标系统花费了大量时间来处理消息,响应在400毫秒后返回,导致我们的线程超时并且响应队列很快就满了。

如何从响应队列中删除此类孤立响应消息,其中响应迟到?

1 个答案:

答案 0 :(得分:0)

理论上,在JMS协议中,您可以设置JMSExpiration,它是JMS头属性。如果使用标准的java-jms,JmsSender类可以使用“setTimeToLive”方法。

https://jms-spec.java.net/2.0/apidocs/