【发布时间】:2018-08-09 15:02:15
【问题描述】:
我想了解 WebSphere MQ 的 JMS 驱动程序的实现是什么。我对 JMS 同步/异步方法不感兴趣,而是对它们的实现感兴趣。
如果应用程序部署在 J2EE 服务器上并执行异步调用(通过实现 onMessage()),J2EE 服务器是否仍然拉取以检查消息的可用性,或者 MQ 是否主动回调客户端(J2EE 服务器)通过打开的socket来通知消息的存在?
【问题讨论】:
标签: jakarta-ee ibm-mq
我想了解 WebSphere MQ 的 JMS 驱动程序的实现是什么。我对 JMS 同步/异步方法不感兴趣,而是对它们的实现感兴趣。
如果应用程序部署在 J2EE 服务器上并执行异步调用(通过实现 onMessage()),J2EE 服务器是否仍然拉取以检查消息的可用性,或者 MQ 是否主动回调客户端(J2EE 服务器)通过打开的socket来通知消息的存在?
【问题讨论】:
标签: jakarta-ee ibm-mq
这取决于您使用的 IBM MQ 版本。
在 MQ V7 之前,JMS 层会轮询队列管理器以获取消息 - 本质上是拉取。
在 MQ V7 之后,队列管理器原生地理解并实现了异步 get,它将通知 getter 一条消息,因此它不再需要轮询。
进一步阅读
【讨论】: