35 ビジネス・イベントの管理

この章では、ビジネス・イベントおよびイベント配信ネットワーク(EDN)の管理方法(様々なJMS宛先を介した各種ビジネス・イベントのフローのマッピング、ビジネス・イベントの公開のテスト、ビジネス・イベントのイベント定義言語(EDL)ファイルの表示およびビジネス・イベントをサブスクライブしているサービス・コンポーネントの表示、JMSタイプの変更およびインバウンド・ポーラー・スレッド番号の構成を含む)について説明します。ビジネス・イベントは、ビジネス環境での発生結果として送信されたメッセージ・データで構成されています。ビジネス・イベントが公開されると、他のサービス・コンポーネントはそれをサブスクライブできます。

この章の内容は次のとおりです。

ビジネス・イベント問題のトラブルシューティングの詳細は、「ビジネス・イベントおよびイベント配信ネットワークのトラブルシューティング」を参照してください。

Oracle JDeveloperでのビジネス・イベントの作成の詳細は、『Oracle SOA SuiteでのSOAアプリケーションの開発』「ビジネス・イベントおよびイベント配信ネットワークの使用」を参照してください。

イベント配信ネットワークおよびJMSプロバイダ・タイプの概要

ビジネス・イベントは、Oracle JDeveloper で作成し、SOAコンポジット・アプリケーションに組み込みます。このアプリケーションは、Oracle Enterprise Manager Fusion Middleware Controlにデプロイします。サービス・コンポーネントはビジネス・イベントにサブスクライブできます。公開されたビジネス・イベントは、そのイベントをサブスクライブしているエンティティが受信します。

EDNとは、公開済のビジネス・イベントを受け入れ、サブスクライバに配信するOracle SOA Suiteのサブシステムです。EDNは、バックエンド・ストアとしてJMSトピックを使用します。EDNは次の2つのJMSベースのタイプを提供します。

  • Oracle WebLogic Server JMS

    EDNは、すべてのイベント・タイプの基になるJMSストアとして、デフォルトのOracle WebLogic Server JMSトピックを使用します。図35-1に詳細を示します。

    図35-1 Oracle WebLogic Server JMSのJMSトピック

    図35-1の説明が続きます
    「図35-1 Oracle WebLogic Server JMSのJMSトピック」の説明

    サポートされているJMSアダプタ接続ファクトリは次のとおりです。

    • eis/wls/EDNxaDurableTopic (XA、ClientID=edn_wljms_xa_clientとの永続トピックをサポート)

    • eis/wls/EDNxaTopic (XAをサポート)

    • eis/wls/EDNLocalTxDurableTopic (ローカル・トランザクション、ClientID=edn_wljms_localtx_clientとの永続トピックをサポート)

    • eis/wls/EDNLocalTxTopic (ローカル・トランザクションをサポート)

    デフォルトのJMSタイプを変更できます。詳細は、「JMSタイプの変更」を参照してください。また、カスタムのJMSトピックを作成し、そのカスタム・トピックにマップする特定の対象イベント・タイプを指定することもできます。

  • Oracle Advanced Queueing (AQ) JMS

    AQ JMSトピックを作成して使用することもできます。EDNでは、事前プロビジョニングされた即時利用可能なAQ JMSトピックを提供します。図35-2に詳細を示します。

    図35-2 Oracle AQ JMSのJMSトピック

    図35-2の説明が続きます
    「図35-2 Oracle AQ JMSのJMSトピック」の説明

AQ JMSは、外部サーバーを介して公開されます。

サポートされているJMSアダプタ接続ファクトリは次のとおりです。

  • eis/aqjms/EDNxaDurableTopic (XA、ClientID=edn_aqjms_xa_clientとの永続トピックをサポート)

  • eis/aqjms/EDNxaTopic (XAをサポート)

  • eis/aqjms/EDNLocalTxDurableTopic (ローカル・トランザクション、ClientID=edn_aqjms_localtx_clientとの永続トピックをサポート)

  • eis/aqjms/EDNLocalTxTopic (ローカル・トランザクションをサポート)

サポートされているJDBCデータ・ソースは次のとおりです。

  • jdbc/EDNDataSource (XAをサポート)

  • jdbc/EDNLocalTxDataSource (ローカル・トランザクションをサポート)

次の外部サーバーがサポートされています。

  • EDNAQjmsForeignServer (XAをサポート)

  • EDNAQjmsLocalTxForeignServer (ローカル・トランザクションをサポート)

表35-1は、両方のJMSプロバイダ・タイプの利点を示しています。

表35-1 JMSプロバイダ・タイプの比較

Oracle WebLogic Server JMS AQ JMS
  • ファイルベースの(ファイル・ストア)、およびファイルがキャッシュされデータベースにバックアップされた(JDBCストア)実装。

  • JMSサーバーと同じプロセス・スペースで実行されるアプリケーションがある場合、それは常にAQ JMSより高速になります。これは、AQ JMSで常にデータベース・ラウンドトリップを必要とするためです。

  • メッセージのSQL可視性を提供しないため、言語の変換のコストがかかりません。

  • ほとんどの中小規模および一部のハイエンド(同時実行、スループット)のJMSユース・ケースでは、Oracle WebLogic Server JMSのパフォーマンスはAQ JMSを上回ります。これは、標準のJMSで期待されている機能以上のもの(たとえば、クラッシュのリカバリ可能性、SQL可視性、完全順序付けおよび障害回復など)が求められるときには、通常、各種のサービスのクオリティが比較されるためです。

  • 合計コストを評価する場合、通常は価格とパフォーマンスの点で有利になります。

  • Oracleデータベース・アクセスは、複数のデータベース接続を使用することにより本質的にマルチスレッド化されています(Oracle WebLogic Server JMSストレージはシングル・スレッドです)。予備のデータベース接続が十分にある場合、AQ JMSはクラスタ化(AQ JMSの場合RAC)および非クラスタ化環境の両方で、同じ宛先に到達するOracle WebLogic Server JMSと比較して、高い同時実行性を提供します。

  • AQ JMSでは、Oracleデータベース操作がXAトランザクションに関連している場合、2台のPCの使用を省略できます。そのため、XAを使用するために必要な2台のPCのコストに比べてメッセージング・コストがずっと低い場合は、AQ JMSが適しています。

  • AQ JMSは、大きなメッセージ・バックログや、複雑なセレクタが存在する場合など、大規模なメッセージ・サイズが関連している場合は、Oracle WebLogic Server JMSよりも優れたパフォーマンスを提供します。これは、データベースが、Oracle WebLogic Server JMSが提供するよりも優れたインデックス付け、LOBストリーミング、埋込みのルール・エンジン、およびロック管理を提供するためです。

  • AQ JMSでは、Exadata機能をよりよく活用するため、Exadata-Exalogicペアにおいて適切に機能します。Oracle WebLogic Server JMSでは、Exalogicのローエンドのストレージ・ノードが原因で、ボトルネックが発生します。

永続サブスクリプションがサポートされています。つまり、サブスクライバが起動して稼働していない場合でも、イベントは保持されます。永続サブスクリプションによってイベントが蓄積され続けます。表35-2に、SOAコンポジット・アプリケーションの様々なライフ・サイクル状態で非永続サブスクリプションと永続サブスクリプションがどのように処理されるかを示します。

表35-2 ビジネス・イベントおよびコンポジットのライフ・サイクル状態

コンポジットの状態 非永続サブスクライバに対する影響 永続サブスクライバに対する影響

デプロイ

サブスクライバは作成され、イベントの受信を開始します。

サブスクライバは作成され、永続サブスクリプションが登録され、サブスクライバはイベントの受信を開始します。

アンデプロイ

サブスクライバは削除され、イベントの受信を停止します。

サブスクライバは削除され、永続サブスクリプションが登録解除され、サブスクライバはイベントの受信を停止します。

再デプロイ

永続サブスクリプションとサブスクライバは再作成されます。

永続サブスクリプションとそのサブスクライバは再作成されます。

停止

サブスクライバはイベントの受信を停止します。

サブスクライバはイベントの受信を停止しますが、イベントは永続サブスクリプションを介してキューに入れられ続けます(削除されません)。

起動

サブスクライバはイベントの受信を開始します。

サブスクライバは、起動前にキューに入れられたイベントも含め、イベントを受信します。

リタイア

サブスクライバはイベントの受信を停止します。

サブスクライバはイベントの受信を停止し、イベントはキューに入れられません(削除されます)。

アクティブ化

サブスクライバはイベントの受信を開始します。

サブスクライバはイベントの受信を開始します。

JMSトピック宛先へのビジネス・イベントのマッピング

Oracle Enterprise Manager Fusion Middleware Controlで様々なJMS宛先を介して各種ビジネス・イベントのフローをマップできます。このマッピングにより、単一の宛先を介してすべてのビジネス・イベントをマッピングすることで発生するビジネス・イベントのボトルネックを軽減できます。インストール後、すべてのビジネス・イベントはデフォルトで1つのローカルなOracle WebLogic Server JMSトピックにマップされます。追加のJMSトピックを手動で作成し、パフォーマンスのニーズに適したトピックにビジネス・イベントをマップできます。

デフォルト以外のJMSトピックにビジネス・イベントをマップする際には、次のベスト・プラクティスに注意してください。

  • マッピングは、メッセージがJMSトピック宛先に流れ込む前に実行します。これにより、サブスクライバがない古いJMSトピック宛先に既存のイベントが流れ込むのを防ぎます。

  • SOAコンポジット・アプリケーションまたはSOAサーバーのサブスクライブは、マッピングの完了後に再開します。これにより、新しいJMSトピック宛先にサブスクライバを関連付けることができます。

  • Oracle WebLogic Server管理コンソールで、JMSトピックが構成されていることを確認します。Oracle WebLogic Server JMSトピックの作成を参照してください。

  • Oracle WebLogic Server管理コンソールで、すべてのJMSアダプタ接続ファクトリが構成されていることを確認します。「JMSのJMSアダプタ接続ファクトリの作成(オプション)」を参照してください。

Oracle WebLogic Server JMSトピックの作成

Oracle WebLogic Server JMSトピックを作成するには:

  1. Oracle WebLogic Server管理コンソールにログインします。
  2. 「ドメイン構造」で、「サービス」「メッセージング」「JMSモジュール」に移動します。
  3. 「名前」列で、「SOAJMSModule」をクリックします。
  4. 「新規」をクリックします。
  5. 新規トピックを作成します。
  6. それを「SOAJMSServer」に割り当てます。

Oracle WebLogic Server JMSのJMSアダプタ接続ファクトリの作成(オプション)

通常、EDNインストールに含まれるものを再利用できるため、JMSアダプタの接続ファクトリを作成する必要はありません。接続ファクトリを作成する必要がある場合(別途の管理目的など)は、次のステップを実行します。

Oracle WebLogic Server JMSのJMSアダプタ接続ファクトリを作成するには:

  1. Oracle WebLogic Server管理コンソールにログインします。
  2. 「ドメイン構造」で、「soainfra」「環境」「デプロイメント」JMSアダプタ「構成」「アウトバウンド接続プール」の順に選択します。
  3. 「新規」をクリックします。
  4. JNDI名を指定します(eis/wls/MyEdnWLjmsTopicなど)。
  5. 新しいデプロイメント・プランを保存します。
  6. JMSアダプタ「構成」「アウトバウンド接続プール」に戻り、新規に作成した接続ファクトリをクリックします。
  7. 接続ファクトリに次の適切な値を指定します。
    プロパティ名 プロパティ値

    AcknowledgeMode

    AUTO_ACKNOWLEDGEのままにします。

    ConnectionFactoryLocation

    XAの場合、weblogic.jms.XAConnectionFactoryを使用します。ローカル・トランザクションの場合、weblogic.jms.ConnectionFactoryを使用します。

    FactoryProperties

    永続トピックの場合、ClientID=your_client_IDを指定します。非永続トピックの場合、このフィールドを空白のままにします。

    IsTopic

    常にtrueにします。

    IsTransacted

    XAの場合、falseを使用します。

    ローカル・トランザクションの場合、trueを使用します。ただし、Oracle WebLogic Server JMSサーバーがローカルJVM (EDN/JMSアダプタと同じJVM)で実行中の場合は、IsTransactedfalseに設定します。

    パスワード

    空白のままにします。

    Username

    空白のままにします。

    Transaction Support (「トランザクション」タブ内)

    XA Transactionのままにします。

AQ JMSトピックの作成

データベース・ナビゲータ(Oracle JDeveloperの場合)またはSQL Developerをsoainfraユーザーとして開き、次のスクリプトを実行してAQ JMSトピックを作成します。

define edn_user=soainfra_schema_user_here
define topic=your_custom_aqjms_topic_name_here (for example, EDN_AQJMS_TOPIC_2)
define topic_table=your_custom_aqjms_topic_table_here (EDN_AQJMS_TOPIC_
TABLE_2)
 
begin
  DBMS_AQADM.stop_queue(queue_name => '&edn_user..&topic');
  DBMS_AQADM.drop_queue(queue_name => '&edn_user..&topic');
  DBMS_AQADM.drop_queue_table(queue_table => '&edn_user..&topic_table');
end;
/
begin
  dbms_aqadm.create_queue_table(queue_table => '&edn_user..&topic_table', 
                                queue_payload_type => 'SYS.AQ$_JMS_MESSAGE', 
                                multiple_consumers => true);
  dbms_aqadm.create_queue(queue_name => '&edn_user..&topic', 
                          queue_table => '&edn_user..&topic_table', 
                          max_retries => 256);
  dbms_aqadm.start_queue(queue_name	=>	'&edn_user..&topic');
end;
/
commit;

キューおよびキュー表が作成されます。

AQ JMSトピックの公開

「AQ JMSトピックの作成」でAQ JMSトピックを作成したら、トピックをOracle WebLogic Serverアプリケーション(Oracle SOA Suiteアプリケーションを含む)に公開する必要があります。Oracle WebLogic Server管理コンソールを使用して新しい外部サーバーを作成するか、既存の外部サーバーEDNAQjmsForeignServerを更新してAQ JMSトピック・マッピングを追加します。

AQ JMSトピックを公開するには:

  1. オプションで、新しい外部サービスを作成します。

    1. Oracle WebLogic Server管理コンソールにログインします。

    2. 「ドメイン構造」で、「サービス」「メッセージング」「JMSモジュール」「SOAJMSModule」に移動します。

    3. 「新規」をクリックして、「外部サーバー」を選択します。

    4. 外部サーバーに名前を付け、それをSOAサーバーに割り当てて、「終了」をクリックします。

    5. 新しい外部サーバーを開いて、「構成」「全般」に移動します。

    6. 次のプロパティを設定します。

      プロパティ

      JNDI初期コンテキスト・ファクトリ

      oracle.jms.AQjmsInitialContextFactory

      JNDIプロパティ

      EDN XA JDBCデータ・ソースの場合(たとえば、datasource=jdbc/EDNDataSource)。

      EDN 非XA JDBCデータ・ソースの場合(たとえば、datasource=jdbc/EDNLocalTxDataSource)。

  2. AQ JMSにカスタムJMSアダプタの接続ファクトリも作成する場合は、次のように接続ファクトリ・マッピングを作成する必要があります。

    1. 外部サーバーの「構成」「接続ファクトリ」タブに移動し、「新規」をクリックします。

    2. ローカルJNDI名(アダプタのConnectionFactoryLocationで構成した値に一致するもの)とリモートJNDI名(XAサポートの場合XATopicConnectionFactory)を指定します。

    3. 非XA JDBCデータ・ソースを使用する別の外部サーバーを作成する必要がある場合は、リモートJNDI名を、非XAサポートのTopicConnectionFactoryに設定します。

  3. AQ JMSトピックへのマッピングの追加

    1. 「新規」をクリックして、新規に作成した外部サーバーの1つまたは既存の外部サーバーEDNAQjmsForeignServerで新しい宛先マッピングを作成します。

    2. ローカルJNDI名を、Topics/custom_aqjms_topic_nameのリモートJNDI命名規則にマップします。

AQ JMSのJMSアダプタの接続ファクトリの作成(オプション)

通常、EDNインストールに含まれるものを再利用できるため、JMSアダプタの接続ファクトリを作成する必要はありません。接続ファクトリを作成する必要がある場合(別途の管理目的など)は、次のステップを実行します。

AQ JMSのJMSアダプタの接続ファクトリを作成するには:

  1. Oracle WebLogic Server管理コンソールにログインします。
  2. 「ドメイン構造」で、「soainfra」「環境」「デプロイメント」JMSアダプタ「構成」「アウトバウンド接続プール」の順に選択します。
  3. 「新規」をクリックします。
  4. JNDI名を指定します(eis/wls/MyEdnAQjmsTopicなど)。
  5. この新しいデプロイメント・プランを保存します。
  6. JMSアダプタ「構成」「アウトバウンド接続プール」に戻り、新規に作成した接続ファクトリをクリックします。
  7. 接続ファクトリに次の適切な値を指定します。
    プロパティ名 プロパティ値

    AcknowledgeMode

    AUTO_ACKNOWLEDGEのままにします。

    ConnectionFactoryLocation

    XAの場合、値はEDNAQjmsForeignServerの外部サーバーまたはXAをサポートするカスタム外部サーバーのXATopicConnectionFactoryにマップされる接続ファクトリのローカルJNDI名と一致している必要があります。

    ローカル・トランザクションの場合、値はEDNAQjmsLocalTxForeignServerの外部サーバーまたはローカル・トランザクションをサポートするカスタム外部サーバーのTopicConnectionFactoryにマップされる接続ファクトリのローカルJNDI名と一致している必要があります。

    FactoryProperties

    永続トピックの場合、ClientID=your_client_IDを指定します。非永続トピックの場合、このフィールドを空白のままにします。

    IsTopic

    常にtrueにします。

    IsTransacted

    XAの場合、falseを使用します。

    ローカル・トランザクションの場合、trueを使用します。

    パスワード

    空白のままにします。

    Username

    空白のままにします。

    Transaction Support (「トランザクション」タブ内)

    XA Transactionのままにします。

リモート・クライアントのAQ JMSベースのトピックとの相互作用の有効化

イベント・タイプがデフォルトのEDN AQ JMSトピックまたはカスタムのAQ JMSトピックにマップされている場合、EDNはOracle SOA SuiteパブリッシャおよびサブスクライバがAQ JMSトピックを介してこのイベント・タイプと相互作用できるようにします。ただし、EDNはデフォルトではリモート・パブリッシャまたはサブスクライバの相互作用を有効化しません。

リモート・パブリッシャ、サブスクライバまたはその両方を有効化するには、EDN外部サーバー(EDNによりインストールされたサーバーまたはカスタム外部サーバー)で、表35-3で示すようにJNDIプロパティと資格証明が更新されている必要があります。

表35-3 JNDIプロパティおよび資格証明

プロパティ名 プロパティ値

JNDIプロパティ

db_url=jdbc:oracle:thin:@host:port:service

java.naming.security.principal=soainfra_schema_userを追加します。

JNDIプロパティ資格証明

oainfra_schema_userのパスワードを入力します。

図35-3に詳細を示します。

図35-3 リモート・クライアントのAQ- MSベース・トピックとの相互作用の有効化

図35-3の説明が続きます
「図35-3 リモート・クライアントのAQ- MSベース・トピックとの相互作用の有効化」の説明

「ビジネス・イベント」ページでのJMSトピック宛先へのビジネス・イベントのマッピング

Oracle Enterprise Manager Fusion Middleware Controlの「ビジネス・イベント」ページで、JMSトピック宛先にビジネス・イベントをマップできます。

「ビジネス・イベント」ページでJMSトピック宛先にビジネス・イベントをマップするには:

  1. 次のいずれかのオプションを使用して、このページにアクセスします。
    SOAインフラストラクチャのメニューから... ナビゲータのSOAフォルダから...

    「ビジネス・イベント」を選択します。

    「soa-infra」を右クリックして、「ビジネス・イベント」を選択します。

    「ビジネス・イベント」ページに、次の詳細が表示されます。

    • 特定のビジネス・イベントを検索するためのユーティリティ。名前の全部または一部を指定して「検索」アイコンをクリックします。詳細は、「weblogic」メニューの「ヘルプ」「このページのヘルプ」をクリックします。

    • ビジネス・イベント。ネームスペース、イベント名、JMSタイプおよびマッピング、各イベントのサブスクリプション数および失敗したイベント配信数が表示されます。ビジネス・イベントは、それぞれのネームスペース内に格納されています。

  2. 「JMSマッピング」列に、イベントのサポートされるJMSトピック・マッピングを表示します。
    • デフォルト: ビジネス・イベントがデフォルトのJMSトピック宛先マッピングを使用していることを示します。デフォルトの構成は、基礎となるプロバイダとしてOracle WebLogic Server JMSを使用する1つのローカルなJMSトピック宛先で構成されます。

    • 変更済: ビジネス・イベントがデフォルトのJMSトピック宛先マッピングを使用していないことを示します。

  3. 列のJMSトピック・マッピング・タイプをクリックします。たとえば、「デフォルト」を選択した場合は、次の詳細が表示されます。最初に表示される接続ファクトリ設定は、インストール時に自動的に設定されます。
  4. 環境に適した値を入力します。
    要素 説明

    Oracle Enterprise Messaging System (OEMS)

    基礎となるJMSプロバイダを次から選択します。

    • Oracle WebLogic Server JMS (デフォルト・プロバイダ)

    • Oracle Advanced Queueing JMS

    JNDIコネクション・ファクトリ

    JMSアダプタの接続ファクトリの詳細を指定します。EDNでは、JMSアダプタを使用してJMSとやり取りします。

    Oracle WebLogic Server JMSの場合:

    • eis/wls/EDNxaDurableTopic (XA、ClientID=edn_wljms_xa_clientとの永続トピックをサポート)

    • eis/wls/EDNxaTopic (XAをサポート)

    • eis/wls/EDNLocalTxDurableTopic (ローカル・トランザクション、ClientID=edn_wljms_localtx_clientとの永続トピックをサポート)

    • eis/wls/EDNLocalTxTopic (ローカル・トランザクションをサポート)

    Oracle AQ JMSの場合:

    • eis/aqjms/EDNxaDurableTopic (XA、ClientID=edn_aqjms_xa_clientとの永続トピックをサポート)

    • eis/aqjms/EDNxaTopic (XAをサポート)

    • eis/aqjms/EDNLocalTxDurableTopic (ローカル・トランザクション、ClientID=edn_aqjms_localtx_clientとの永続トピックをサポート)

    • eis/aqjms/EDNLocalTxTopic (ローカル・トランザクションをサポート)

    JMSトピック名

    JMSトピックのJNDI名を指定します。

    デフォルトJMSトピックの使用

    選択すると、すべての構成フィールドがリセットされ、インストール時に指定されたデフォルトのJMSトピック宛先を使用します。デフォルトの構成は、基礎となるプロバイダとしてOracle WebLogic Server JMSを使用する1つのローカルなJMSトピック宛先で構成されます。

    ただし、デフォルトのJMSタイプがOracle WebLogic Server JMSではなくAQ JMSに変更されると、デフォルトの構成は、基礎となるプロバイダとしてOracle AQを使用する1つのローカルなJMSトピックで構成されます。

  5. 「適用」をクリックしてダイアログを閉じると、「JMSマッピング」列に選択内容が表示されます。
  6. 次のいずれかを停止して起動します。
    • SOAインフラストラクチャの「デプロイ済コンポジット」ページの影響を受けるSOAコンポジット・アプリケーション

    • Oracle SOA Suiteの管理対象サーバー

詳細は、次のドキュメントを参照してください。

ビジネス・イベントの公開のテストとEDLファイルの表示

ビジネス・イベントの公開をテストし、EDLファイルの内容を表示できます。ビジネス・イベントは、EDLを使用して定義されます。EDLは、ビジネス・イベント定義の作成に使用するスキーマです。

  1. 次のいずれかのオプションを使用して、このページにアクセスします。

    SOAインフラストラクチャのメニューから... ナビゲータのSOAフォルダから...

    「ビジネス・イベント」を選択します。

    「soa-infra」を右クリックして、「ビジネス・イベント」を選択します。

    「ビジネス・イベント」ページに、次の詳細が表示されます。

    • 特定のビジネス・イベントを検索するためのユーティリティ。名前の全部または一部を指定して「検索」アイコンをクリックします。詳細は、「weblogic」メニューの「ヘルプ」「このページのヘルプ」をクリックします。

    • ビジネス・イベント。ネームスペース、イベント名、JMSタイプ、ビジネス・イベントとJMSトピック宛先間のマッピング、各イベントのサブスクリプション数および失敗したイベント配信数が表示されます。ビジネス・イベントは、それぞれのネームスペース内に格納されています。

  2. 「ネームスペースおよびイベント」列で、テストする特定のイベントを選択します。

    1. 「テスト」をクリックし、選択したイベントをテストします。このテストによって、サブスクライバが操作できるテスト・イベントを公開できます。

      「テスト・イベント」ダイアログが表示されます。

    2. テストに使用するXMLペイロードを指定します。

    3. 「公開」をクリックします。

      パブリッシュが成功した場合は、次のメッセージが表示されます。

      The Event published successfully
      
  3. 「ネームスペースおよびイベント」列で、EDLファイルを表示する特定のイベントを選択します。

    1. 「イベント定義の表示」をクリックし、選択したイベントのEDLファイルを表示します。

    2. 「OK」をクリックして、メッセージを閉じます。

ビジネス・イベント・サブスクライバの表示

ビジネス・イベントが公開されると、サービス・コンポーネントはそれをサブスクライブできます。ビジネス・イベントをサブスクライブしているサービス・コンポーネントを表示できます。サービス・コンポーネント・サブスクリプションは、設計時にOracle JDeveloperで作成されるため、Oracle Enterprise Manager Fusion Middleware Controlでは変更できません。

すべてのビジネス・イベントは、パブリッシャおよびサブスクライバの個々のパーティションではなく、Oracle SOA Suiteドメイン全体に適用可能です。また、ビジネス・イベントは、ビジネス・フロー・インスタンスのフロー・トレースで個々のエントリとして表示されます。

ノート:

  • SOAコンポジット・アプリケーションにビジネス・イベント・サブスクリプションが組み込まれている状況で、別のリビジョンのコンポジットをデプロイすると、そのコンポジットの全リビジョンのイベント・サブスクリプションすべてがアクティブとなり、メッセージを受信します。最新リビジョンのコンポジットのみを使用してイベントを受信するには、以前のリビジョンのコンポジットすべてをリタイア状態にすることをお薦めします。

  • リタイア状態のSOAコンポジット・アプリケーション内のBPELコンポーネントでは、BPELプロセスの非開始受信アクティビティにイベントが関連付けられていても、ビジネス・イベントを受信できません。

ビジネス・イベント・サブスクライバを表示するには:

  1. 次のいずれかのオプションを使用して、このページにアクセスします。

    SOAインフラストラクチャのメニューから... ナビゲータのSOAフォルダから...
    1. 「ビジネス・イベント」を選択します。

    1. 「soa-infra」を右クリックします。

    2. 「ビジネス・イベント」を選択します。

  2. 「サブスクリプション」をクリックします。

    「サブスクリプション」ページに、次の詳細が表示されます。

    • 特定のサブスクリプションを検索するためのユーティリティ。基準を指定して「検索」をクリックします。ネームスペースまたはイベント名に基づいて検索できます。詳細は、「weblogic」メニューの「ヘルプ」「このページのヘルプ」をクリックします。

    • コンポーネント・サブスクリプション。イベント名、ネームスペース、イベントをサブスクライブするサービス・コンポーネント、SOAコンポジット・アプリケーション、必要に応じて定義したXPathフィルタ、一貫性レベル(保証付きまたはOneAndOnlyOne)および配信に失敗したビジネス・イベントの数が表示されます。

  3. 「サブスクリプション」のコンポーネント」列で、サービス・コンポーネントをクリックし、そのホーム・ページにアクセスします。

  4. 「コンポジット」列で、SOAコンポジット・アプリケーションをクリックし、そのホーム・ページにアクセスします。

Oracle JDeveloperでのビジネス・イベントの作成の詳細は、『Oracle SOA SuiteでのSOAアプリケーションの開発』「ビジネス・イベントおよびイベント配信ネットワークの使用方法」を参照してください。

ノート:

イベント・サブスクリプションに対するポリシーの実行は、このリリースではサポートされていません。ポリシーは、警告なしでビジネス・イベントをサブスクライブするサービス・コンポーネント(Oracle Mediatorなど)に対してアタッチまたはデタッチできます。ポリシーの実行は発生しないため、このアクションによるエラーはありません。

クラスタ環境におけるサブスクライバの重複メッセージの解決

SOAコンポジット・サブスクライバは、複数ノードのクラスタ内で重複イベントを受信する場合があります。これは、EDNがデフォルトのJMSタイプおよびトピック(つまり、Oracle WebLogic Server JMS)を使用している場合に発生します。これは、Oracle SOA Suiteインストールで使用されるテンプレートが、レプリケートされた(パーティション化ではなく)転送ポリシーを持つUniform Distributed WebLogic JMSトピックにデフォルトで設定され、転送ポリシーの構成をサポートしていないために起こります。

EDN JMSトピックが、クラスタ化環境においてパーティション分散トピックになるよう自動的に構成するには、EDN JMSトピックをレプリケートからパーティション化に変更します。

パーティション化されたポリシーに変更するには:

  1. Oracle WebLogic Server管理コンソールにログインします。
  2. 「ドメイン構造」で、「soainfra」「サービス」「メッセージング」「JMSモジュール」「SOAJMSModule」に移動します。
  3. 分散EDNトピック(dist_EDNTopic_auto)をクリックします。
  4. 「構成」「全般」タブに移動します。
  5. ドロップダウン・リストで、「転送ポリシー」を、「レプリケート」から「パーティション化」に変更します。

Partitionedに設定すると、メッセージを受信する物理メンバーは、メッセージを認識する共通分散トピックのメンバーのみになります。パーティション化された共通分散トピックの論理名にメッセージが公開される場合、メッセージは特定の1つの物理トピック・メンバーにのみ届きます。メッセージが物理トピック・メンバーに届くと、次のようになります。

  • メッセージは、共通分散宛先の残りのメンバーに転送されません。

  • 他の物理トピック・メンバーにあるサブスクライバは、メッセージのコピーを受信しません。

JMSタイプの変更

デフォルトのJMSプロバイダ・タイプを、Oracle WebLogic Server JMSからAQ JMSに、またはその逆に変更できます。

  1. 「SOAインフラストラクチャ」メニューから、「管理」「システムMBeanブラウザ」の順に選択します。
  2. 「検索」をクリックし、「EDNConfig」と入力して、「検索」をクリックします。
  3. 「JmsType」をクリックします。
  4. 値を指定します。
    • WLJMS (Oracle WebLogic Server JMS)

    • AQJMS (Oracle Advanced Queuing JMS)

  5. 「適用」をクリックします。
  6. SOAサーバーを再起動します。

    カスタムJMSトピックへのマッピングがないイベント・タイプからマッピングされたデフォルトJMSタイプのみを変更できることに注意してください。カスタム・マッピング(イベント・タイプがユーザー定義のJMSトピックにマップされている)は、この変更によって変更されません。

インバウンド・ポーラー・スレッド番号の構成

各サブスクライバに対して、EDNは基になるJMSコンシューマにポーラー・スレッド(デフォルトで1つのワーカー・スレッド)を生成します。次の2つの方法のいずれかを使用して、インバウンド・ポーラー・スレッドの数を変更できます。

システムMBeanブラウザ内のグローバル・インバウンド・ポーラー・スレッド番号の更新

SOAインフラストラクチャ・レベルでインバウンド・ポーラー・スレッド番号を更新するには、(グローバル)属性ThreadsPerSubscriberを使用します。

システムMBeanブラウザのインバウンド・ポーラー・スレッド番号を更新するには:

  1. 「SOAインフラストラクチャ」メニューから、「管理」「システムMBeanブラウザ」の順に選択します。
  2. 「検索」をクリックし、「EDNConfig」と入力して、「検索」をクリックします。
  3. 「ThreadsPerSubscriber」属性をクリックします。値をデフォルトの1から適切な整数に変更し、「適用」をクリックします。

    ThreadsPerSubscriber属性が正常に更新されたことを示す確認メッセージが表示されます。SOAサーバーの再起動またはSOAコンポジット・アプリケーションの再デプロイメントは不要です。

サービス・コンポーネント・レベルでのローカル・インバウンド・ポーラー・スレッド番号の値の更新

サービス・コンポーネント・レベルのローカル・インバウンド・ポーラー・スレッド番号を、イベントをサブスクライブするコンポーネント(Oracle MediatorまたはBPELプロセス)を含むコンポジットに対応するシステムMBeanプロパティで更新できます。

  1. 「SOAインフラストラクチャ」メニューから、「管理」「システムMBeanブラウザ」の順に選択します。
  2. 「アプリケーション定義のMBean」「oracle.soa.config」「サーバー: Server_name」「SCAComposite」「composite_name」「SCAComposite.SCAComponent」「component_name」の順に選択します。
  3. 「イベント」属性を展開します。
  4. 「numberOfPollerThreads」の値を更新します。デフォルト値は-1で、グローバルSOAインフラストラクチャ・レベルEDNConfig MBeanのThreadsPerSubscriber値が、サブスクライバのEDNインバウンド・ポーラー・スレッドを初期化するために有効になることを意味します。指定した値により更新されたnumberOfPollerThreads値は、グローバル値よりも優先されます。
  5. 「適用」をクリックします。
  6. 確認メッセージが表示されたら、「戻る」をクリックします。
  7. 「操作」タブに切り替えて、「保存」をクリックします。
  8. 「操作: 保存」ページで、「起動」をクリックします。

    確認メッセージが表示されます。

  9. 対象のSOAコンポジット・アプリケーションを再起動するか、SOAサーバーを再起動して、numberOfPollerThreadsが有効になるようにします。