2016-12-19 12 views
2

У нас есть веб-сервис SOAP поверх JMS, работающий на Websphere 8.5.5. Веб-служба получает сообщение запроса MQ, обрабатывает запрос и отправляет ответ. Все хорошо.Как установить JMSExpirationTime в сообщении MQ Response для веб-службы на основе SOAP/JMS?

Теперь у нас есть требование установить JMSExpirationTime в сообщении MQ Response, чтобы, если вызывающее приложение не читает ответ в «определенное время» из очереди, сообщение должно истечь и не должно оставаться в очереди навсегда.

Веб-сервис основан на JAX-RPC SOAP над JMS. Наш SOAP Listner MDB является расширением JMSListenerMDB (com.ibm.ws.webservices.engine.transport.jms.JMSListenerMDB), который сам устанавливает время истечения срока действия IF «то же самое задано в MQ Request Message еще, он установлен в 0 (которая навсегда) ».

Как установить JMSExpirationTime на MQ Response Message, поскольку сообщение подготовлено IBM API.

+0

Когда вы говорите «Websphere 8.5.5», что вы имеете в виду, точно? WebSphere - это бренд, а не продукт. Когда он используется сам по себе, он обычно означает WebSphere App Server. С другой стороны, MQ покинул бренд WebSphere, и хотя он имеет v8, он не имеет v8.5.5. –

ответ

0

Ответственность за получение сообщений несет JMSListenerMDB. Также должен быть поставщик сообщений и пункт назначения, через который отправляются ответы. Если целью является управляемый объект, вы можете установить там поле Expiry. Вы также можете установить его динамически в приложении после создания объекта. Пожалуйста, смотрите страницу в Expiry в Центре знаний MQ.

Если приложение создает место назначения динамически (например, из поля ReplyTo входящего сообщения), обычно принято устанавливать истечение срока действия для каждого сообщения. Сделайте это, вызвав метод setTimeToLive производителя сообщения, как описано в документах Центра знаний для MQMessageProducer.