2014-01-21 110 views
0

我即将重构为websphere MQ编写的代理应用程序。在现有的应用程序,而读取来自队列的消息时,以下选项被设置:Websphere MQ系列 - MQGMO_WAIT

MQConstants.MQGMO_WAIT和

waitInterval = 1000(毫秒)。

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

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

回答

1

那么它只是每秒检查一次消息的队列。通过在使用线程中使用异步消息传递等功能,您可以更智能化,因为MQ的一些新功能不会对队列进行大量轮询。