この章では、Oracle Mediatorをチューニングして最適なパフォーマンスを得る方法について説明します。この章の内容は次のとおりです。
Mediatorは、Oracle SOAのコンポーネントです。選択的ルーティング、トランスフォーメーション、検証などの仲介機能を備え、同期、非同期、イベントのパブリッシュ、イベントのサブスクリプションといった様々なメッセージ交換パターンに対応しています。Oracle Mediatorは、サービスおよびイベントの各種プロバイダとコンシューマを仲介するフレームワークを提供します。メディエータ・サービス・エンジンは、SOAサービス・インフラストラクチャのJava EEアプリケーションと連携して動作します。
関連項目: SOA Suiteの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。Oracle Mediatorの詳細は、『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』のOracle Mediatorのサービス・コンポーネントとエンジンの管理に関する項を参照してください。 |
ほとんどのビジネス環境では、顧客データは、取引先、レガシー・アプリケーション、エンタープライズ・アプリケーション、データベース、カスタム・アプリケーションなど、様々なソースに点在しています。こうしたデータを効率的に統合するという課題は、Oracle Mediatorを使用することで解決できます。Oracle Mediatorは、同じデータの更新やその他の処理を共通して行うすべてのアプリケーションに対して、リアルタイムのデータ・アクセスを実現します。
注意: Oracle Mediatorプロパティのチューニングを始める前に、『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』のOracle Mediatorに関する章を必ず読み、内容を理解しておいてください。 |
この項では、よく使用される次のOracle Mediatorプロパティの設定について詳しく説明します。
このプロパティは、DMSメトリックの追跡レベルを制御します。デフォルトでは、DMSメトリックの収集は有効になっています。DMAメトリック・データを収集する必要がない場合は、metricsLevel
をDisabledに設定してパフォーマンスを改善することを検討してください。
パフォーマンスが問題になっている場合は、XSLトランスフォーメーション内でデータベース参照のかわりにドメイン値マップを使用し、ファイルI/Oを最小限に抑えることを検討してください。
ドメイン値マップの使用の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のドメイン値マップの使用に関する項を参照してください。
次のパフォーマンス構成パラメータは、パラレル・ルーティング・ルールを指定したコンポーネントのチューニングに使用できます。
DeferredWorkerThreadCount
: メッセージをパラレルに処理する遅延ディスパッチャの数を指定します。負荷が高い場合は、このパラメータの値を大きくして、DeferredWorkerThreads
の1つによって各パラレル・ルールが処理されるときに遅延処理を行うアウトバウンド・スレッドの数を増やすことを検討してください。デフォルト値は4スレッドです。
DeferredMaxRowsRetrieved
: メディエータ・ルーティング・ルールのタイプが「パラレル」に設定されている場合、DeferredMaxRowsRetrieved
には、メディエータ・ストア表(処理の対象となるパラレル・ルーティング・ルールのメッセージが格納される)から取得する最大行数(パラレル・ルーティング・ルールを処理するための最大メッセージ数)を設定します。このバッチで取得される各メッセージは、一度に1つのワーカー・スレッドによって処理されることに注意してください。デフォルト値は200行です。
DeferredLockerThreadSleep
: パラレル・ルーティング・ルールを処理するため、Oracle Mediatorには、メディエータ・ストア・データベースからメッセージを取得してロックするデーモン・ロッカー・スレッドが用意されています。このスレッドは、データベースに対してポーリングを行い、パラレル処理のメッセージを取得します。メッセージがない場合、ロッカー・スレッドはDeferredLockerThreadSleep
に指定された時間だけスリープし、データベースへのラウンドトリップを防止します。デフォルト値は2秒です。
指定した時間の間は、次のいずれの場合もパラレル・ルーティングのメッセージを取得できません。
パラレル・ルーティング・ルールを指定したMediatorコンポーネントがデプロイされていない場合。
パラレル・ルーティング・ルールを指定したMediatorコンポーネントがデプロイされているが、それらのコンポーネントに対して連続的な受信メッセージが存在しない場合。
注意: Oracle Mediatorコンポーネントの優先度をJDeveloper Mediatorデザイナで指定できます。このプロパティを使用して、パラレル・ルーティング・ルールを指定した複数のOracle Mediatorコンポーネント間の優先度を設定します。詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のメディエータ・ルーティング・ルールの作成に関する項を参照してください。 |
データベースへのラウンドトリップの回数を減らさないためには、次のエラー・パラメータおよび再試行パラメータの値を大きくすることを検討してください。
ErrorLockerThreadSleep
: パラレル処理でエラーになったメッセージがない場合に、エラーになったメッセージを次に取得するまでのアイドル時間を指定します。時間の単位は秒です。デフォルト値は5秒です。
RetryLockerThreadSleep
: メッセージがない場合の再試行ロッカーのスリープ時間(秒)です。デフォルト値は5秒です。
ルーティングの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のメディエータ・ルーティング・ルールの作成に関する項を参照してください。
イベント配信ネットワーク(EDN)は、Oracle Mediator、Oracle BPEL Process Managerコンポーネント、およびOracle Application Development Frameworkエンティティ・オブジェクトなどの外部パブリッシャによってパブリッシュされたイベントを配信します。
イベント配信ネットワークのパフォーマンスを改善するには、スレッド数(デフォルトは3)を増やすことを検討してください。このプロパティは、WLSTを使用して変更できます。詳細は、10.3項「SOA構成パラメータの変更」を参照してください。