ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

HornetQ ClientRequestor#requestが応答なしになる場合の対処

ソースの断片

ClientSession managedsession = factory.createSession();
ClientRequestor requestor = new ClientRequestor(managedsession, "hornetq.management");
ClientMessage messagemanaged = managedsession.createMessage(false);
ManagementHelper.putAttribute(messagemanaged, queueName, "messageCount");
managedsession.start();
ClientMessage reply = requestor.request(messagemanaged);
Integer count = (Integer)ManagementHelper.getResult(reply);
System.out.println("There are " + count + " messages in exampleQueue");

キューからメッセージ数を取得するサンプル。
これを実行すると、

ClientMessage reply = requestor.request(messagemanaged);

の行で応答なしになる場合がある。

原因

ClientRequestor requestor = new ClientRequestor(managedsession, "hornetq.management");

キュー名が違う。
誤)"hornetq.management"
正)"jms.queue.hornetq.management"

対策

ClientRequestor requestor = new ClientRequestor(managedsession, "jms.queue.hornetq.management");

ソース

github.com