如何使用JMS向特定ibm mq队列发送/接收消息

如何使用JMS向特定ibm mq队列发送/接收消息,jms,Jms,目前,我正在使用“onMessage”侦听消息的专用队列 现在新的要求是,, 1.不同的供应商会将消息放在单个队列中,我必须按供应商区分消息并将其存储到oracle数据库中。 2.第二个要求是在单个队列上发回消息,以便特定的供应商能够接收 我是新来的。 感谢您的回复。1)请您的供应商在邮件上设置一个属性,如“供应商名称”。然后可以使用该属性按供应商进行区分。如果无法对消息设置属性,则必须解析消息负载并相应地更新数据库 2) 请您的供应商在他们放入队列的消息上设置JMSReplyTo属性。然后可以

目前,我正在使用“onMessage”侦听消息的专用队列

现在新的要求是,, 1.不同的供应商会将消息放在单个队列中,我必须按供应商区分消息并将其存储到oracle数据库中。 2.第二个要求是在单个队列上发回消息,以便特定的供应商能够接收

我是新来的。 感谢您的回复。

1)请您的供应商在邮件上设置一个属性,如“供应商名称”。然后可以使用该属性按供应商进行区分。如果无法对消息设置属性,则必须解析消息负载并相应地更新数据库

2) 请您的供应商在他们放入队列的消息上设置
JMSReplyTo
属性。然后可以使用
JMSReplyTo
的值将回复发送回供应商。您还需要获取供应商消息的
JMSMessageID
,并将其设置为应用程序正在发送的回复消息的
JMSCorrelationID
。这样,您的供应商可以将请求消息与您发送的回复消息关联起来


希望这有帮助。

将消息属性设置为“供应商名称”。这对我来说很有用。我有另一个疑问,假设我在一个队列中为4个卖家发回消息。假设vender 1应用程序启动,他为vender 1拾取了消息,但vender 2应用程序关闭,他不会拾取消息,在这种情况下,vender 3和4应用程序将能够拾取消息,因为消息位于单个队列的sequence中。或者它会一直等待直到供应商1接收消息,因为队列上的消息是以FIFO方式提供的。请记住,您使用的是一个队列,所以无论哪个供应商应用程序首先出现,它都会获得位于队列顶部的消息。Vendor1可能会收到Vendor2的回复消息,因为Vendor2的应用程序首先请求消息。因此,当一个队列被共享时,应用程序必须使用匹配的相关id来获取消息。我在上面的回答的#2中提到了。在队列的顶部,vender 2 msg坐着,然后vender 1,然后vender 3。现在vender 2应用程序已关闭。在这种情况下,供应商1和3是否会获得消息,因为在队列顶部,供应商2消息正在定位,其应用程序已关闭。更正id在回复消息中为各自的供应商消息设置。