如何在 IBM MQ 中实现消息交换:推送还是拉取?
How is message exchange implemented in IBM MQ: push or pull?
我想了解 WebSphere MQ 的 JMS 驱动程序的实现是什么。我不直接对 JMS sync/async 方法感兴趣,而是对它们的实现感兴趣。
如果应用部署在J2EE服务器上,异步调用(通过实现onMessage()),J2EE服务器是否仍然拉取检查消息是否可用,还是MQ主动回调客户端(J2EE服务器)通过打开的套接字通知消息的存在?
这取决于您使用的 IBM MQ 版本。
在 MQ V7 之前,JMS 层会轮询队列管理器以获取消息 - 本质上是拉取。
在 MQ V7 之后,队列管理器本机理解并实现异步获取,它会通知 getter 消息,因此它不再需要轮询。
进一步阅读
- What is new in WebSphere MQ classes for JMS - 页面下方约 half-way。
我想了解 WebSphere MQ 的 JMS 驱动程序的实现是什么。我不直接对 JMS sync/async 方法感兴趣,而是对它们的实现感兴趣。
如果应用部署在J2EE服务器上,异步调用(通过实现onMessage()),J2EE服务器是否仍然拉取检查消息是否可用,还是MQ主动回调客户端(J2EE服务器)通过打开的套接字通知消息的存在?
这取决于您使用的 IBM MQ 版本。
在 MQ V7 之前,JMS 层会轮询队列管理器以获取消息 - 本质上是拉取。
在 MQ V7 之后,队列管理器本机理解并实现异步获取,它会通知 getter 消息,因此它不再需要轮询。
进一步阅读
- What is new in WebSphere MQ classes for JMS - 页面下方约 half-way。