如何在基于SOAP / JMS的Web服务的MQ响应消息上设置JMSExpirationTime?

时间:2016-12-19 12:45:11

标签: web-services ibm-mq websphere-8

我们在Websphere 8.5.5上运行基于SOAP over JMS的Web服务。 Web服务接收MQ请求消息,处理请求并发回响应。一切都很好。

现在我们需要在MQ Response消息上设置JMSExpirationTime,这样如果调用应用程序没有在队列的“指定时间”内读取响应,那么消息应该过期,并且不应该保持在队列永远。

Web服务是基于JAX-RPC的SOAP over JMS。我们的SOAP Listsner MDB是JMSListenerMDB(com.ibm.ws.webservices.engine.transport.jms.JMSListenerMDB)的扩展,它自己设置Expiration时间IF“在MQ Request Message上设置相同,否则它设置为0(这是永远的)“。

我们如何在MQ Response Message上设置JMSExpirationTime,因为消息是由IBM API准备的。

1 个答案:

答案 0 :(得分:0)

JMSListenerMDB负责接收消息。还必须有一个消息生产者和目的地,通过它发送回复。如果目标是托管对象,则可以在此处设置“到期”字段。在实例化对象后,您还可以在应用程序中动态设置它。请参阅MQ知识中心的Expiry页面。

如果应用程序动态创建目标(例如,从传入消息的ReplyTo字段),则习惯上在每个消息的基础上设置到期。通过调用消息生成器的setTimeToLive方法执行此操作,如MQMessageProducer的知识中心文档中所述。