WebSphere MQ MessageListener(类似于JMS消息侦听器)

Lwi*_* Ko 0 java websphere-7 ibm-mq

我有MQConsumerClass,它从队列中检索消息,如下所示.

while (running)
{
    try
    {
        MQMessage rcvMessage = new MQMessage();
        MQGetMessageOptions gmo = new MQGetMessageOptions();

        gmo.options = MQConstants.MQGMO_WAIT;
        gmo.waitInterval = 60000; 
        queue.get(rcvMessage, gmo);

        if(rcvMessage.getTotalMessageLength() > 0)
        {
            String msgText = rcvMessage.readUTF();
        }
    }
    catch blocks{}
}
Run Code Online (Sandbox Code Playgroud)

但问题是当队列中没有消息时,会抛出2033异常.

我认为2033 NO_MSG_AVAILABLE异常不是严重的异常,可能会停止操作.

但是,我想onMessage(Message msg)在队列中有新消息时调用函数.

我想用MessageListener创建这个类,但我找不到MessageListener或任何与之相关的示例.

所以,请告诉我WMQ Java API中是否有任何MessageListener函数.

要么

任何方式这样做?

小智 5

2033'错误'实际上不是错误,它更像是MQSeries返回状态:MQRC_NO_MSG_AVAILABLE 2033 MQTester程序正在轮询队列以查找消息,但没有可用的消息.

你可以用它来排除它

MQException.logExclude(new Integer(MQException.MQRC_NO_MSG_AVAILABLE));