Если очередь FIFO, то ваш просмотр вернет самое старое сообщение. Но если очередь настроена на приоритетную доставку, вам придется просматривать очередь, пока не будет найдено первое сообщение с самым низким приоритетом. Ваш фрагмент кода указывает, что это очередь событий. Если это относится к очередям SYSTEM.*.EVENT, то они всегда должны находиться в режиме FIFO. Даже если администратор изменяет их на приоритетную доставку, все сообщения о системных событиях создаются с одинаковым приоритетом.
Трудность, с которой вы сталкиваетесь с сообщениями с упорядоченным приоритетом, заключается в том, что вы можете игнорировать более низкие приоритеты, но не более высокие. Например, если вы укажете приоритет 5 при просмотре, а какие-либо сообщения имеют приоритет 4 или ниже, они не будут возвращены. Но будут возвращены сообщения или сообщения с более высоким приоритетом, и не только сообщения с приоритетом 5, но скорее сообщения с приоритетом 9, за которыми следуют сообщения с приоритетом 8 и так далее. Таким образом, вы не сможете выборочно просматривать первое сообщение в каждом приоритете, а вместо этого будете вынуждены просматривать до тех пор, пока не найдете первое сообщение с приоритетом 0, чтобы знать, что вы видели самое старое сообщение в очереди, если порядок доставки очереди установлен на Приоритет.
Возможно, стоит просмотреть методы в com.ibm.mq.pcf, чтобы узнать, как запрашивать атрибуты очереди. Если очередь FIFO, просто просмотрите первое сообщение. Если нет, просмотрите длину очереди, сохранив первое полученное сообщение с каждым приоритетом, сравните метку времени с любым сообщением с более высоким приоритетом и отбросьте более новое.
Обратите внимание, что транзакции повлияют на вашу возможность просматривать сообщения. Любое сообщение, хранящееся в точке синхронизации, будет недоступно для просмотра. Будет возвращено самое старое сообщение, не находящееся в точке синхронизации.
Наконец, если вы пытаетесь определить состояние очереди Интервал обслуживания очереди или события QStatus может предоставить то, что вам нужно, и избежать накладных расходов на просмотр глубоких очередей.
person
T.Rob
schedule
18.02.2011