JMSトピックを使用したMDBの構成とデプロイこの章では、JMSトピックのサブスクリプションを自動的に設定し、サブスクリプション・メッセージを処理するMDBを開発する方法を説明します。JMSトピックにパブリッシュされるメッセージは、一致するセレクタ・フィルタを持つすべてのサブスクリプションにレプリケートされます。Serverインスタンスごとに1つ以上のフリー・プールを持つことが可能です。この動作は、MDB属性設定、トピック・タイプ、および同一のクラスタまたはJVMでトピックとしてMDBが実行されているかどうかによって制御されます。(MDBフリー・プールの詳細は、「MDBおよび同時実行処理」を参照してください。JMS分散トピックを併用する方法も説明します。JMS分散トピックとは、複数の物理的なトピックから構成される論理トピックであり、各物理トピックは異なるJMSサーバー・インスタンス上でホストされます。10.3.4で飛躍的に強化されました。この機能拡張には、リモートでホストされる分散トピック、複数の物理的なサブスクリプション全体に渡る単一の論理サブスクリプションの完全分散処理、および同一の物理的なサブスクリプションからメッセージを処理するための複数のJVMなどに関する直接サポートが含まれます。この章は次のように構成されます。以前のリリースからのアプリケーションのアップグレードトピックMDBのサンプルJMSトピックの詳細は、次を参照してください。JMSのプログラミング』の拡張パブリッシュ/サブスクライブ・アプリケーションの開発に関する項。Serverパフォーマンスおよびチューニング』のメッセージ・ドリブンBeanのチューニングに関する項。この章をお読みになる前にこのマニュアルの前の章を見直すことをお薦めします。MDBは次の種類のトピックをサポートします。JMS分散トピックの特定メンバー・トピックへの参照のいずれかです。JMSの共通分散トピック・メンバーのJNDI名構文は、jms-server-name@jndi-name-of-distributed-topicメンバーをホストするJMSサーバー名に基づきます。WebLogic以外のJMSトピックは、外部プロバイダ・トピックと呼ばれます。MDBは、シングルトン・トピックと同様に外部プロバイダを処理します。このようなトピックは通常、リモートとみなされます。JMS分散トピックは、複数の物理トピックで構成される論理トピックで、各物理トピックは同一クラスタ内の異なるJMSサーバー・インスタンス上でホストされます。10.3.4以前のリリースでは、分散トピックのメンバーに送信される各メッセージは常に、分散トピックのすべての他のメンバー上のすべてのサブスクリプションに自動的にレプリケーション(転送)されます。この種類の分散トピックは依然としてサポートされていますが、レプリケートされた分散トピック(短縮形はRDT)と呼ばれます。JMS分散トピックは、複数の物理トピックで構成される論理トピックで、各物理トピックは同一クラスタ内の異なるJMSサーバー・インスタンス上でホストされます。パーティション化された分散トピック(短縮形はPDT)は、メンバー間でメッセージを転送しません。PDTメンバーにパブリッシュされるメッセージは、該当メンバー上のサブスクリプションにのみコピーされます。10.3.4以降でサポートされています。分散トピック・タイプを構成するには、PartitionedまたはReplicatedをJMS分散トピック構成属性のJMS転送ポリシーの値として設定します。JMSの構成と管理』のパーティション化された分散トピックの構成に関する項を参照してください。使用されるトピックMDB属性は次のとおりです。JMS宛先と接続ファクトリサブスクリプション永続性コンテナ管理対象トランザクションメッセージ分散チューニング他の役に立つトピックMDB属性は次のとおりです。フリー・プール・サイズデプロイ解除時の自動検出メッセージ・フィルタリング(JMSセレクタ)サブスクリプション識別子メッセージ分散チューニング設定には、topicMessagesDistributionMode、distributedDestinationConnection、およびgenerate-unique-client-id属性が含まれます。大半の属性は、アノテーションを使用するか、または記述子のXMLスタンザを介するかのいずれかの方法で構成できます。記述子のXMLスタンザおよびアノテーションの固有の属性名は、第11章「MDBのデプロイメント要素およびアノテーション」の表でまとめられています。JMS宛先、宛先タイプ、および接続ファクトリの設定トピックMDBの構成は、構成のJMS接続ファクトリ、宛先、および宛先タイプの場所を適切に指定する必要があります。通常、次の操作を実行すると指定できます。トピック・タイプの指定。ejb-jar.xmlのmessage-driven-destination要素では、destination-typeをjavax.jms.Topicに設定します。"javax.jms.Topic"と共に指定します。接続ファクトリのJNDI名および宛先JNDI名の指定。接続ファクトリのJNDI名の指定は通常、接続ファクトリが同一のクラスタまたはサーバー上でMDBとしてホストされている場合には必要ではありません。通常はデフォルトで十分です。宛先がMDBプールとして同一クラスタまたはサーバーで存在していない場合、管理上、リモート宛先および接続ファクトリのJNDIエントリからのマッピングを、前述の#2で指定されたエントリに一致するローカルJNDIエントリに構成します。リモート・リソースを参照する方法には別の選択肢がありますが、オラクル社がお薦めするベスト・プラクティスはマッピングする方法です。各フリー・プールでは、MDBコンテナが指定した接続ファクトリを使用して接続を作成し、接続を使用してその宛先上の1つ以上のサブスクリプションを検索または作成して、最後に接続を使用してサブスクリプションからメッセージを受信するJMSコンシューマを作成します。接続ファクトリと宛先MDB属性の固有名、およびお薦めのJNDIマッピング構成については、「宛先用のMDBの構成」を参照してください。サブスクリプション永続性の設定MDBは、JMSトピック上でサブスクリプションを自動作成します。JMSトピックは、恒久および非恒久の2種類のサブスクリプションをサポートします。非恒久サブスクリプションは、サブスクライバの存続期間中のみ存在します。サブスクリプションにこれ以上サブスクライバが含まれないとき、そのサブスクリプションは自動的に削除されます。非恒久サブスクリプションに保存されるメッセージは、JMSサーバーが停止またはクラッシュすると絶対に復元されません。恒久サブスクリプションを使用すると、サブスクライバ・アプリケーションが使用できない期間にパブリッシュされるメッセージをサブスクライバが受信できるようになります。トピック上の各恒久サブスクリプションでは、メッセージの送信時にサブスクリプション上でアクティブなサブスクライバが存在しない場合でも、JMSは送信されるまで(または期限が切れるまで)ファイルまたはデータベース内のパブリッシュされた永続メッセージのそれぞれのコピーを保存します。JMSは各恒久サブスクリプション内の非永続メッセージそれぞれのコピーも保存しますが、JMSサーバーが停止またはクラッシュするとそのようなメッセージは復元されません。非恒久サブスクリプションはデフォルトです。恒久サブスクリプションを指定するには、ejb-jar.xmlのmessage-driven-destination要素で、subscription-durabilityをDurableに設定します。"Durable"と共に指定します。恒久サブスクリプションの自動検出の設定MDBのデプロイが解除されるか、またはMDBがサーバーから削除されたとき、恒久トピック・サブスクリプションを自動削除するようにMDBを構成できます。恒久トピック・サブスクリプションを自動削除するようにMDBを構成するには、durable-subscription-deletionをTrueに設定します。デフォルトでは、durable-subscription-deletionはFalseに設定されています。「MDBのトランザクション管理戦略の構成」を参照してください。メッセージ・フィルタリング(JMSセレクタ)の設定JMSは、標準的なJMSメッセージ・ヘッダー・フィールドとメッセージ・プロパティに基づいてメッセージをフィルタリングするためのSQLスタイルの構文を提供します。JMSはセレクタ構文への拡張機能をサポートします。これを使用すると、XMLコンテンツに基づいたXMLメッセージのフィルタリングに使用されるXMLの「xpath」式を含むセレクタを指定できます。"messageSelector"を持つActivationConfigPropertyのpropertyValueとしてセレクタを指定します。JMSセレクタの構文は、javax.jms.MessageクラスのJavadocで詳細に説明されています。JMSのプログラミング』のメッセージのフィルタリングに関する項で説明されています。付録A「トピック・デプロイメント・シナリオ」で説明されているように、MDBデプロイメントは1つ以上のMDBフリー・プールを作成できます。descriptor属性が共に機能し、次に示すようにMDBフリー・プール内でMDBスレッドの同時実行性を制御します。Serverパフォーマンスおよびチューニング』の同時実行性MDBの数の決定に関する項を参照してください。MDBのtopicMessagesDistributionModeがCompatibilityに設定され、MDBがコンテナ管理対象トランザクションを使用するとき、同時実行性MDBの呼出しは妨害されます。max-beans-in-free-poolは、外部(WebLogic以外の)トピックによって主導されるBean管理対象トランザクションMDB用に明示的に1に設定する必要があります。外部(WebLogic以外の)トピックと共に機能する非トランザクションMDBには、明示的にmax-beans-in-free-poolを1に設定することをお薦めします。この設定に不具合があると、MDBアプリケーションがRuntimeまたはErrorの例外をスローするなど、特定の失敗がある場合にメッセージの損失につながる可能性があります。JMSの「順序単位」値を持つメッセージを処理する非トランザクション「互換性」モードのMDBには、明示的にmax-beans-in-free-poolを1に設定することをお薦めします。このユース・ケースのような「順序単位」メッセージは、max-beans-in-free-poolを1に設定しない場合、順序通りに処理されない可能性があります。Serverパフォーマンスおよびチューニング』のメッセージ・ドリブンBeanのチューニングに関する項を参照してください。各JMSトピック・サブスクリプションは、MDB構成設定の数に基づいてMDBが生成する、それぞれの「サブスクリプション識別子」に基づいて作成および参照されます。生成されたサブスクリプション識別子の構文の説明は、付録B「トピック・サブスクリプション識別子」を参照してください。メッセージ分散チューニングの設定この項では、メッセージ分散チューニングの設定に関する方法と時期について説明します。これには、すべてのトピック・タイプ(シングルトン、外部、および分散)に適用される情報が含まれます。この設定には、topicMessagesDistributionMode、distributedDestinationConnection、およびgenerate-unique-client-id属性が含まれます。これらの属性によって、トピック・サブスクリプションが作成される場所、サブスクリプション識別子の種類、パブリッシュされたトピック・メッセージそれぞれに対してMDBが1回のみ処理するか、あるいはサーバーごとに1回のみ処理するかどうかが制御されます。結果的に自動生成されるサブスクリプションID、サブスクリプションの場所、およびデプロイされたMDBフリー・プールの場所の詳細と図解は、付録A「トピック・デプロイメント・シナリオ」および付録B「トピック・サブスクリプション識別子」を参照してください。topicMessagesDistributionModeの設定topicMessagesDistributionMode設定をdistributedDestinationConnection設定またはgenerate-unique-client-id設定と組み合せて使用し、トピック・メッセージ処理動作を制御します。topicMessagesDistributionModeを設定するには、同じ名前を持つ@ActivationConfigPropertyアノテーションを使用するか、またはejb-jar.xmlデプロイメント記述子で<activation-config-property>を指定します。topicMessagesDistributionModeの有効な値は次のとおりです。アプリケーションをホストするサーバーの数に関係なく、MDBアプリケーションが分散トピックに1度パブリッシュされた各メッセージを全体的に受信するように指定します。JMSシングルトンおよび分散トピックで機能します。MDBアプリケーションの各デプロイメント・インスタンスが、分散トピックにパブリッシュされたすべてのメッセージを受信するように指定します。JMSシングルトンおよび分散トピックで機能します。Serverリリースで処理されたのと同じ方法で、分散トピックからのメッセージを処理するよう指定します。シングルトンWebLogicトピックを使用する恒久/非恒久サブスクリプションをサポートします。リモートRDTを使用する非恒久サブスクリプションもサポートします。詳細は、下記の互換性に関する注意事項を参照してください。注意:最新のアプリケーションには、One-Copy-Per-ApplicationおよびOne-Copy-Per-Serverモードを使用することをお薦めします。JMSトピックまたは外部(WebLogic以外の)トピックから消費する必要があるアプリケーションは除きます。トピック分散モードは、次の制約を持つ様々なトピック・タイプおよびバージョンをサポートします。10.3.4以降の分散トピックを使用する場合のみ機能します。Serverリリース10.3.4以前からのWebLogicトピックの使用時には警告を記録し、前述のモードを使用するメッセージを処理しません。Serverインスタンスごとに1つのトピック・メンバーのみを構成するように求めます。サービスの移行が実行される場合、ローカル・トピック・メンバーが構成される場合、またはサーバーごとに1つ以上のトピック・メンバーがデプロイされる場合、アプリケーションではメッセージの重複または損失が発生し、未処理のメッセージを蓄積する中止サブスクリプションも作成する場合があります。サービスの移行が必要な場合、distributedDestinationConnection属性にデフォルトのLocalOnlyではなく、EveryMemberオプションを使用します。(後述する制限を持つ)、およびシングルトンWebLogicトピックを使用する恒久/非恒久サブスクリプションをサポートします。互換性モードはリモートRDTを使用する非恒久サブスクリプションもサポートします。リモートRDTの論理JNDI名をサブスクライブする恒久的なMDBのデプロイメントは正常に実行されますが、MDBデプロイメントは接続に失敗し、警告ログ・メッセージが表示されます。PDTをサブスクライブするMDBのデプロイメントは正常に実行されますが、MDBデプロイメントは接続に失敗し、警告ログ・メッセージが表示されます。詳細は、下記の「topicMessagesDistributionModeの互換性モードについての注意点」を参照してください。ローカルRDTをサブスクライブする恒久的なMDBの互換性モードは、「topicMessagesDistributionModeの互換性モードについての注意点」を参照してください。MDBが生成したサブスクリプション、サブスクリプションID、およびフリー・プールの場所の詳細と図解は、付録A「トピック・デプロイメント・シナリオ」および付録B「トピック・サブスクリプション識別子」を参照してください。distributedDestinationConnectionの設定ローカル分散トピックについてtopicMessagesDistributionModeのOne-Copy-Per-ApplicationおよびOne-Copy-Per-Serverモードの動作を任意で詳細にチューニングするには、distributedDestinationConnectionアクティブ化構成プロパティを使用できます。weblogic-ejb-jar.xmlデプロイメント記述子のdistributed-destination-connection要素を使用できます。有効な値は、LocalOnlyおよびEveryMemberです。リモート・クラスタをサブスクライブするMDBに対して指定する場合は、警告メッセージが表示されてオプションが無視されます。互換性モードで使用する場合、警告メッセージが表示されてオプションが無視されます。EveryMemberを使用する理由の1つは、恒久的なMDBのLocalOnlyには、One-Copy-Per-Serverモード時のローカルRDTに関する制限があるからです。「恒久的なMDBとローカルRDTを併用する際の警告」を参照してください。EveryMemberを使用するもう1つの理由は、不均一なメッセージ・ロードまたはメッセージ処理の遅延を最適に処理するためです。詳細は、「不均一なメッセージ・ロードおよび/またはメッセージ処理の遅延の処理方法」を参照してください。topicMessagesDistributionModeの互換性モードについての注意点サポートされるトピック・タイプとバージョンの説明は、前述の「topicMessagesDistributionModeの設定」を参照してください。topicMessagesDistributionModeの互換性を非トランザクションMDBと組み合せて使用しており、トピックが外部(WebLogic以外の)宛先であるか、またはトピックが順序単位(UOO)メッセージを使用するWebLogic宛先の場合、警告については、「MDB同時実行性の制御」を参照してください。動作を変更するには、generate-unique-client-id属性を設定します。generate-unique-client-idがtrueに設定されている場合、恒久的なMDBフリー・プールはそれぞれ固有のサブスクライバIDを生成します。それぞれのMDBフリー・プールは、パブリッシュされたメッセージそれぞれのコピーを受信します。詳細は、付録B「トピック・サブスクリプション識別子」を参照してください。フリー・プールの詳細は、「MDBおよび同時実行性処理」および付録A「トピック・デプロイメント・シナリオ」を参照してください。(デフォルト)に設定されている場合、恒久的なMDBによってサブスクリプションが1つのみ作成され、1つのMDBフリー・プールのみが恒久サブスクリプションに正常に接続されます(残りのMDBプールは接続に失敗し、警告を記録して再試行を続けます)。ローカルでレプリケートされた分散トピック(ローカルRDT)の論理名をサブスクライブする恒久サブスクリプションMDBの場合、後述の「恒久的なMDBとローカルRDTを併用する際の警告」で説明される構成のみがサポートされます。リモートでレプリケートされたトピック(リモートRDT)の論理名をサブスクライブする恒久サブスクリプションMDBの場合、次のようになります。RDTの論理JNDI名をサブスクライブする恒久的なMDBのデプロイメントは正常に実行されますが、MDBデプロイメントは接続に失敗し、警告ログが表示されます。リモートでレプリケートされたトピックの特定のメンバー宛先をサブスクライブする恒久サブスクリプションMDBの場合、次のようになります。RDTメンバーを直接サブスクライブする恒久MDBのデプロイメントは正常に実行されますが、後続の動作は前述のとおりにgenerate-unique-client-id設定によって決定されます。共通分散宛先の場合、特定のメンバーのJNDI名は"jms-server-name@udd-jndi-name"となります。ローカルでレプリケートされた分散トピック(ローカルRDT)の論理名、リモートでレプリケートされたトピック(リモートRDT)、外部トピック、またはシングルトン・トピックの論理名をサブスクライブする非恒久サブスクリプションMDBの場合、各サーバーはトピックに送信された各メンバーのコピーを受信します。distributedDestinationConnectionオプションは、互換性モードには適用されません。設定すると、警告メッセージが表示され、オプションは無視されます。ベスト・プラクティスMDBの構成に役立てるため、次の項の情報を検討します。互換性モード使用時の非トランザクションMDBについての警告topicMessagesDistributionModeの互換性モードを非トランザクションMDBと組み合せて使用しており、トピックが外部(WebLogic以外の)宛先であるか、またはトピックが順序単位(UOO)メッセージを使用するWebLogic宛先の場合、警告については、「MDB同時実行性の制御」を参照してください。互換性モードでは、ローカルでレプリケートされた分散トピック(ローカルRDT)の論理名をサブスクライブする恒久サブスクリプションMDBの場合、次の構成のみがサポートされます。常にgenerate-unique-client-idをtrueに設定します。ServerがRDTのメンバーのみをホストしていることを確認します。service-migrationは使用しないでください。このユース・ケースには対応していません。「サーバー全体の移行」を使用できます。各サーバーは、トピックに送信された各メッセージのコピーを受信することに注意します。メッセージがRDTの物理的なトピック・メンバーのいずれかに着信すると、メッセージのコピーが他のトピック・メンバーそれぞれに転送されることをRDTが自動的に確認します。同様に、distributedDestinationConnectionがLocalOnlyに設定されているときにOne-Copy-Per-Applicationモードでは、ローカルでレプリケートされた分散トピック(ローカルRDT)の論理名をサブスクライブする恒久サブスクリプションMDBの場合、次の構成のみがサポートされます。使用中の構成が前述のお薦め構成と一致しない場合、メッセージの損失、メッセージの重複、メッセージのスタックなどの非確定的動作が発生する可能性があります。別の選択肢を含む詳細は、前述の「topicMessagesDistributionModeの設定」を参照してください。恒久的なMDB属性、トピック・タイプ、EJB名の変更についての警告MDBまたはJMS設定を変更すると、恒久サブスクリプション上の現在のメッセージが削除されたり、新規の恒久サブスクリプションに従って既存の恒久サブスクリプションが中止、削除、または置換されたりする可能性があります。このような設定には、トピック・タイプ、JMSセレクタ、分散チューニング、サブスクリプション永続性、ejb-name、およびclient-idが含まれます。中止された恒久サブスクリプションは、MDBがメッセージを処理していない場合でもメッセージを蓄積し続けます。これによって、割当の例外やJVMメモリー不足エラーが発生し、これ以上メッセージがトピックにパブリッシュされなくなってしまう可能性があります。JMSのプログラミング』の恒久サブスクリプションの管理に関する項を参照してください。サブスクリプションIDおよび場所の説明は、付録B「トピック・サブスクリプション識別子」を参照してください。パーティション化されたトピックとレプリケートされたトピックのどちらを選択するか前述の「サポートされるトピック・タイプ」では、2種類のWebLogic分散トピック(パーティション化されたトピックとレプリケートされたトピック)を説明しています。一般的に、次の2つの使用事例を除き、使用できる場合はパーティション化されたトピック(PDT)の使用をお薦めします。従来のアプリケーションまたはMDB以外のアプリケーションと同時に使用するために、レプリケートされたトピック(RDT)の動作が必要な場合。LocalOnlyのローカルRDTの場合。メッセージ・ロードは、PDTのOne-Copy-Per-Serverモードにおいて完全に接続されたトポロジに必要なネットワーク・トラフィックの増加と比較して、RDTに組み込まれた転送オーバーヘッドの負荷のコストが低くなっているかどうかを判定します。一般的に、非永続性または「軽量の」永続性メッセージ・ロードには、PDTを使用する方が無難です。JMS分散トピック構成属性のJMS転送ポリシーの値として設定します。JMSの構成と管理』のパーティション化された分散トピックの構成に関する項を参照してください。最新のアプリケーションには、One-Copy-Per-ApplicationおよびOne-Copy-Per-Serverモードを使用することをお薦めします。JMSトピックまたは外部(WebLogic以外の)トピックから消費する必要があるアプリケーションは除きます。JMSトピックを使用する場合にのみ機能します。サブスクリプションの管理と表示サブスクリプションの名前と場所の説明は、付録A「トピック・デプロイメント・シナリオ」および付録B「トピック・サブスクリプション識別子」を参照してください。JMSのプログラミング』の恒久サブスクリプションの管理に関する項も参照してください。不均等なメッセージ負荷または予期しないメッセージ処理の遅延が発生したアプリケーションでは、次の事項を検討する必要があります。ローカル分散トピックの場合、トピック分散モードがOne-Copy-Per-ServerまたはOne-Copy-Per-Applicationのとき、distributedDestinationConnectionをEveryMemberにチューニングします。LocalOnlyオプションは、不要なネットワーク・トラフィックを回避するため、極めて良好なパフォーマンスを発揮できますが、ユース・ケースによっては、LocalOnly最適化のネットワークの節約よりも、バランシングされていないキューの負荷のためにクラスタ内のすべてのJVM間でメッセージ処理をできるかぎり均等に分散するメリットのほうが勝ります。これは特に、メッセージのバックログがクラスタ全体で不均等に生じ、メッセージ処理にコストがかかる場合に問題になる可能性があります。このようなユース・ケースでは、恒久サブスクリプションを使用するEveryMemberシナリオを採用し、LocalOnly構成は避けるべきです。各プロデューサのメッセージがクラスタ全体でラウンドロビン方式に基づいて均一に処理されるように、RDTのかわりにPDTを使用して、プロデューサの接続ファクトリでプロデューサのロード・バランシングをチューニングします。JMS接続ファクトリの「サーバー・アフィニティの有効化」および「ロード・バランシングの有効化」属性を使用して、分散トピック・メンバー間でロード・バランシングされます。アフィニティを無効化すると、ネットワーク・オーバーヘッドが増加しますが、メッセージはクラスタ全体に渡って均一にロード・バランシングされることが保証されます。アフィニティ設定はRDTに何の影響を及ぼしません。JMSの構成と管理』の分散宛先全体に渡るメッセージのロード・バランシングに関する項を参照してください。JMS非同期メッセージ・パイプラインのサイズを1まで下げ、前のメッセージ処理ですでにブロックされているMDBスレッドにこれ以上メッセージがプッシュされないようにします。この設定のデフォルトは10です。カスタム接続ファクトリを参照するようにMDBを変更することで構成できます。恒久サブスクリプションの場合、JMSサービス移行(自動または手動)は、LocalOnlyがローカルでレプリケートされたトピックで適用されるとサポートされません。通常、LocalOnlyとは、分散トピック・メンバーが別のサーバーに移行されると、MDBデプロイメント・インスタンスがローカル分散トピック・メンバーに固定されることを示します。MDBデプロイメント・インスタンスは、再起動後に同一の元の分散メンバーをサブスクライブできません。実行した場合は、警告メッセージが表示される可能性があります。JMSサービス移行を使用するには、EveryMemberとして構成する必要があります。サーバー全体の移行は両クラスでサポートされています。10.3.4の新しいJMS機能を使用すると、拡張性と高可用性の拡張を提供するMDBを実装してデプロイできるようになります。10.3.4以前のリリース用に記述されたMDBアプリケーションをアップグレードする必要があります。10.3.4以前のリリースで実行するために記述されたアプリケーションは、互換性モードを使用すると変更せずに実行を継続できます。これは、「topicMessagesDistributionModeの設定」で説明したように、topicMessagesDistributionModeのデフォルト設定です。以前のリリースからアプリケーションをアップグレードするには、次の手順を実行します。パーティション化された分散トピックへの変更を検討します。前述の「パーティション化されたトピックとレプリケートされたトピックのどちらを選択するか」を参照してください。topicMessagesDistributionModeをOne-Copy-Per-ServerまたはOne-Copy-Per-Applicationに設定し、distributedDestinationConnectionオプションをチューニングします。前述の「メッセージ分散チューニングの設定」を参照してください。警告:互換性モードから変更すると、現在のメッセージは保存されません。「恒久的なMDB属性、トピック・タイプ、EJB名の変更についての警告」を参照してください。JMSトピックへの恒久サブスクリプションを使用し、メッセージ・トランザクションを処理してターゲットの宛先にメッセージを転送します。JMS接続ファクトリMyCFを使用してMDBは接続し、トピックMyTopicから受信します。接続ファクトリMyTargetCFから生成された接続を使用して、メッセージをMyTargetDestに転送します。MDBは、リソース参照を使用してMyTargetCFにアクセスします。JMSをEJBおよびサーブレットと併用するための拡張サポートに関する項で説明されているように、自動的にJMSプロデューサ・プーリングを有効化します。トピックではなくキューを使用する同様のサンプルは、例7-3「分散キューを使用するMDBのサンプル」を参照してください。reserved.法律上の注意点ライブラリ。