9.2. メッセージ順序グループを有効にする方法

接続ファクトリか、プロデューサーのいずれかで順序グループを有効化できます。
  • 接続ファクトリで順序グループを定義した場合、接続ファクトリにあるプロデューサーはすべて、同じ順序グループを利用します (「プロデューサー上の順序グループを有効化」 参照)。
  • プロデューサーで順序グループを定義すると (接続ファクトリ上でプロデューサーは定義)、プロデューサーは定義した順序グループを利用します。プロデューサーの接続ファクトリが順序グループも定義している場合は、プロデューサーの順序グループがその設定をオーバーライドし、独自の順序グループを利用します (「接続ファクトリで順序グループを有効化」 参照)。

9.2.1. プロデューサー上の順序グループを有効化

プロデューサーで順序グループ機能を有効にするには、以下を行います。
  1. セッションに JBossMessageProducer を追加します。
    JBossMessageProducer producer=(JBossMessageProducer)session.createProducer(queue);
  2. enableOrderingGroup メソッドを追加し順序グループを設定します。
    producer.enableOrderingGroup(String ogrpName) throws JMSException
    このメソッドは順序グループを作成します。つまり、このメソッドが呼び出されると、JBossMessageProducer は順序グループの代わりにメッセージを送信します。null パラメーターを渡すと順序グループは自動的に生成されます。このメソッドへ新たに呼び出しを行うと、以前の呼び出しをオーバーラードします。
  3. オプションで、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 の一部として提供されています。