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");