Я пытаюсь отслеживать очередь без использования какого-либо API, такого как Hermes или GEMS, т.е. я хочу использовать исключительно JAVA. Таким образом, чтобы просмотреть очередь, то есть проверить, поступило ли сообщение в очередь или нет, фактически не потребляя сообщение, которое я написал ниже, фрагмент кода:
javax.jms.QueueBrowser browser = session.createBrowser(queue);
Enumeration msgs = browser.getEnumeration();
int Count=0;
while(msgs.hasMoreElements())
{
message = (javax.jms.Message)msgs.nextElement();
System.out.println("Message"+message);
Count++;
}
Однако, когда я публикую сообщения в очереди, результат не отображается. Я проверил, что сообщения поступают в очередь, и они используются получателем.
Так как этот подход не работал, я подумал использовать другой подход, который заключается в подсчете количества сообщений о доставке, полученных очередью до и после. Поэтому я использовал приведенный ниже фрагмент кода
QueueInfo q= new QueueInfo(queueName);
long l=q.getInTransitMessageCount();
System.out.println("In transit Mesasge Count="+l+"\n");
Но это тоже не работает.
Любые предложения или объяснения для решения этой проблемы будут высоко оценены.
Обратите внимание, что в коде нет ошибки компиляции, и все необходимые классы импортированы.