9.2. メッセージ順序グループを有効にする方法
接続ファクトリか、プロデューサーのいずれかで順序グループを有効化できます。
- 接続ファクトリで順序グループを定義した場合、接続ファクトリにあるプロデューサーはすべて、同じ順序グループを利用します (「プロデューサー上の順序グループを有効化」 参照)。
- プロデューサーで順序グループを定義すると (接続ファクトリ上でプロデューサーは定義)、プロデューサーは定義した順序グループを利用します。プロデューサーの接続ファクトリが順序グループも定義している場合は、プロデューサーの順序グループがその設定をオーバーライドし、独自の順序グループを利用します (「接続ファクトリで順序グループを有効化」 参照)。
9.2.1. プロデューサー上の順序グループを有効化
プロデューサーで順序グループ機能を有効にするには、以下を行います。
- セッションに
JBossMessageProducerを追加します。JBossMessageProducer producer=(JBossMessageProducer)session.createProducer(queue);
- enableOrderingGroup メソッドを追加し順序グループを設定します。
producer.enableOrderingGroup(String ogrpName) throws JMSException
このメソッドは順序グループを作成します。つまり、このメソッドが呼び出されると、JBossMessageProducer は順序グループの代わりにメッセージを送信します。nullパラメーターを渡すと順序グループは自動的に生成されます。このメソッドへ新たに呼び出しを行うと、以前の呼び出しをオーバーラードします。 - オプションで、
disableOrderingGroup()を追加し順序グループを無効にすることができます。public void disableOrderingGroup() throws JMSException
このメッセージが呼び出されると、JBossMessageProducer は順序グループのメッセージ送信を停止して、デフォルトの動作を再開します。
OrderingGroupExample.java クラスの $EAPHOME/doc/examples/jboss-messaging-examples/ordering-group/ にサンプルが用意されています (src/org/jboss/example/jms/ordering/OrderingGroupExample.java)。このサンプルは jboss-eap-docs の一部として提供されています。