我将重构为Websphere MQ编写的代理应用程序。在现有应用程序中,从队列中读取消息时,设置了以下选项:

MQConstants.MQGMO_WAIT和

waitInterval = 1000(毫秒)。

在我们的应用程序中,不能保证我们每秒都会收到一条消息。甚至几个小时我们可能都不会收到消息。我不确定为什么该应用程序的创建者选择了waitInterval = 1000而不是将waitInterval设置为MQWI_UNLIMITED。
当前,代码中有一个catch块,当MQException.MQRC_NO_MSG_AVAILABLE发生时,该块不会执行任何操作。

该应用程序的创建者是非常聪明的人,所以我不知道他们为什么选择这种方法。我是MQ系列的新手,所以任何人都可以解释其原因吗?

最佳答案

好吧,它只是每秒检查队列中是否有消息。通过在使用MQ的一些新功能中使用异步消息传递之类的功能,您可以变得更加聪明,而MQ的一些新功能不会对Queue进行很多轮询。

10-04 14:44