Ниже код .NET/amqmdnet - но вы можете попробовать и преобразовать это в то же время, пока DEV Java не видит ваш пост.
Чтобы узнать, есть ли сообщение в очереди, фактически не снимая его очередь, используйте MQC.MQOO_BROWSE
на очереди и IBM.WMQ.MQC.MQGMO_BROWSE_FIRST
в качестве опции Вы получите MQRC_NO_MSG_AVAILABLE
, если очередь пуста.
MQQueueManager queueManager = null;
MQQueue queue = null;
MQMessage queueMessage = new MQMessage();
queueManager = new MQQueueManager(qmName, channelName, connName);
queue = queueManager.AccessQueue(qName,
MQC.MQOO_BROWSE + MQC.MQOO_FAIL_IF_QUIESCING);
MQGetMessageOptions opt = new MQGetMessageOptions();
opt.Options = IBM.WMQ.MQC.MQGMO_BROWSE_FIRST;
queueMessage.CorrelationId = IBM.WMQ.MQC.MQMI_NONE;
queueMessage.MessageId = IBM.WMQ.MQC.MQMI_NONE;
queue.Get(queueMessage, opt);
String sMessage = queueMessage.ReadString(queueMessage.DataLength);
Для просмотра следующего сообщения используйте IBM.WMQ.MQC.MQGMO_BROWSE_NEXT
;
Чтобы действительно прочитать сообщение OFF, используйте MQC.MQOO_INPUT_SHARED
в AccessQueue.
Просьба указать, какая платформа/язык разработки? Java, C# и т. Д. – StuartLC
Прошу прощения, что на Java –