Oracle® Fusion Middleware Oracle WebLogic ServerメッセージドリブンBeanのプログラミング 11gリリース1 (10.3.6) B61425-05 |
|
![]() 前 |
付録A「トピック・デプロイメント・シナリオ」で説明されているMDBデプロイメント・シナリオは、WebLogic Server 11g リリース1 (10.3.4)の新機能である、次のJMS機能を活用します。
共有サブスクリプション -- 共有サブスクリプションによって、サブスクライバが異なるMDBサーバーから作成される場合でも、複数のサブスクライバは1つのサブスクリプションを共有できるようになります。同一のサブスクリプションを共有するすべてのサブスクライバは、トピックにパブリッシュされたすべてのメッセージをまとめて処理します。各メッセージは、サブスクライバのいずれか1つのみによって処理されます。たとえば、S1とS2というサブスクライバが2つあり、M1、M2、M3という3つのメッセージがある場合、S1はM1とM2を受信し(ただしM3は受信しません)、S2はM3を受信します(ただしM1とM2は受信しません)。
これによって、アプリケーションは単一のサブスクリプションのトピック・メッセージに関してラウンドロビン方式の分散処理または並列処理を採用できるようになります。MDBは、恒久/非恒久に関係なく、同一のサブスクリプション識別子で複数のサブスクライバを作成できます。JMSサブスクリプション共有ポリシーの詳細は、『Oracle WebLogic Server JMSの構成と管理』の共有サブスクリプションの構成に関する項を参照してください。
非制限クライアントID -- 制限クライアントIDを使用すると、複数の同時実行性アクティブ接続が同一のクライアントIDを使用できるようになります。JMSのclientID
はJMS接続を識別し、当該接続上で恒久サブスクリプションを識別するために使用されます。clientID
をUnrestricted
に設定すると、複数の物理的なサブスクリプションを異なる宛先上で同一名で作成できるようになります。これによって、同一名のサブスクリプションは同一の分散トピックの異なるメンバー上に存在できるようになり、同時に、このようなサブスクリプションは単一の論理サブスクリプションとして処理できます。詳細は、『Oracle WebLogic Server JMSの構成と管理』の非制限クライアントIDの構成に関する項を参照してください。
topicMessagesDistributionMode
は、メッセージが分散トピックに配信される仕組みを制御するために、JMS属性SubscriptionSharingPolicy
およびClientIdPolicy
の順列(接続ファクトリ上で設定)を定義します。WebLogic Serverは、表C-1で示されるようにこれらの値を設定します。
表C-1 topicMessagesDistributionMode設定とJMS接続ファクトリ上の設定間の関係
topicMessagesDistributionMode | SubscriptionSharingPolicy | ClientIdPolicy |
---|---|---|
|
|
|
|
|
|
接続ファクトリ上の設定がこれらの値ではない場合、WebLogic Serverは値をオーバーライドし、警告メッセージを表示します。WebLogic Serverがなんらかの理由で値をオーバーライドできない場合、例外がスローされ、管理者がJMS接続ファクトリ上で設定を変更しないかぎり、MDBはメッセージを処理できません。プログラム的にこのような属性を接続ファクトリ上で直接設定できません。そのかわり、topicMessagesDistributionMode
を使用すると、MDBデプロイメントは接続インスタンス上で値を設定します。