gpt4 book ai didi

java - JMS/WMQ 可以同步消息传递吗?

转载 作者:搜寻专家 更新时间:2023-11-01 02:17:06 27 4
gpt4 key购买 nike

假设有一个移动应用程序需要从服务器发出同步请求/查询某些数据。该请求将首先到达托管的 JMS 客户端,该客户端将在外部队列(来自合作伙伴)上发布消息/请求。现在这里开始不清楚。我如何以同步方式从合作伙伴那里得到回复。

  • 合作伙伴是否应该公开单独的队列供我订阅,然后我阻止移动请求,直到我从该单独的队列中获得响应消息?
  • JMS 或专有的 WebSphere MQ 接口(interface)是否支持同步消息传递?
  • 还有哪些其他方法可以通过消息传递来实现它?

谢谢

最佳答案

课本模式如下:

  1. JMS 应用从移动设备接收请求。
  2. JMS 应用打开回复队列(可能是动态的)。
  3. JMS 应用程序准备一条请求消息,将来自 #2 的目的地指定为 JMSREplyTo 目的地。
  4. JMS 应用程序将请求发送到外部服务提供商的同步点之外。
  5. JMS 应用程序以指定的等待间隔监听响应。如果它使用动态回复队列,它会进行简单的接收。如果多个实例正在监听同一个队列(更可能是外部服务),那么它将使用从发送返回的 JMSMessageID 作为接收指定的 JMSCorrelationID。
  6. JMS 应用程序接收来自外部服务的响应。
  7. JMS 应用回复移动设备。

请注意,对于 WMQ,服务提供者的预期行为是将 JMSMessageID 从请求消息复制到响应的 JMSCorrelationID。要求发送方生成 JMSCorrelation ID 并将其复制到响应的 JMSCorrelationID 的情况不太常见,但某些应用程序会使用该行为。您将需要了解您的服务提供商如何处理此问题,以确定您的请求者应用程序的正确行为。

如果您正在使用完整的 WMQ 客户端安装,您将已经拥有完成大部分工作的示例代码。如果安装到默认位置,请查看...

C:\Program Files\IBM\Websphere MQ\tools\jms\samples\simple\simpleRequestor.java

...或 UNIX/Linux 发行版的 /var/mqm 下的等效位置。这是安装完整客户端而不是简单地获取 jar 文件的众多原因之一。如果您需要下载客户端,则交付为 SupportPac MQC7 .

关于java - JMS/WMQ 可以同步消息传递吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5031461/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com