ActiveMQにてTopicに送信したメッセージを取得したいのですがやり方がわかりません。使用しているAPIはapache-activemqです。
以下のコードを実行すると既に送信したメッセージは取得できずに、メッセージの受信待ちになってしまいます。待ちの間にメッセージを送信すると受信できる事は確認済みです。
Queueに送信したメッセージの場合は後から取得する事が出来きたのですが、Topicの場合は無理なのでしょうか?正直、QueueとTopicの違いもよくわからないので、そういうものだという事であれば納得できます。
日本語のドキュメントも少なく、探し回ってみてはいるものの答えが見つかりません。ご存知の方よろしくお願いします。
lang
1 public void receiver() { 2 ActiveMQConnectionFactory factory = 3 new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_BROKER_URL); 4 try { 5 TopicConnection connection = factory.createTopicConnection(); 6 TopicSession session = 7 connection.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE); 8 connection.start(); 9 Topic topic = session.createTopic("test_topic"); 10 TopicSubscriber subscriber = session.createSubscriber(topic); 11 12 // メッセージの受信 13 TextMessage msg = (TextMessage) subscriber.receive(); 14 System.out.println(msg.getText()); 15 16 // close 17 subscriber.close(); 18 session.close(); 19 connection.close(); 20 } catch (JMSException e) { 21 e.printStackTrace(); 22 } 23 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/04/16 06:42
2015/04/16 15:44