Oracle® Fusion Middlewareリリース・ノート 11gリリース1(11.1.1) for Linux x86 B55924-02 |
|
![]() 戻る |
![]() 次へ |
この章では、Oracle Mediatorに関連する問題について説明します。内容は次のとおりです。
この項では、一般的な問題および回避方法について説明します。内容は次のとおりです。
Oracle Mediatorで一部の関数に多言語サポート機能を使用する場合、予想外の結果になることを防ぐには、これらの文字がデータベース・キャラクタ・セットでサポートされていることを確認します。たとえば、ユニット・テスト関数の場合、ユニット・テストの初期メッセージ・ペイロードにデータベース・キャラクタ・セットでサポートされていない文字が含まれる場合、Oracle Enterprise Manager Fusion Middleware Controlコンソールのユニット・テストの部分に文字が正しく表示されません。この問題は、Unicode文字をサポートするデータベースでは起こりません。
Oracle Mediatorで、添付付きSOAP Webサービスをコールした場合、割当てまたは変換関数を使用してペイロード操作を行うことができません。添付付きSOAPはOracle Mediatorでサポートされていないため、割当てまたは変換関数を使用すると、例外で失敗します。
回避方法
添付付きSOAP Webサービスをコールする場合、Oracle MediatorではなくOracle Service Busを使用します。
Oracle Mediatorでコールバック処理とタイムアウトを使用してBPELプロセスをコールする場合、ベスト・プラクティスは、Oracle Mediatorから返されるコールバック例外をBPELプロセスで明示的に処理することです。これは、コールバック処理に関連付けられているグローバル・トランザクションがコミットされ、ロールバックされないようにするためです。このようにすると、Oracle Mediatorでコールバック処理に失敗した場合でも、Oracle Mediatorで構成されたタイムアウト・ハンドラは開始されません。
メディエータ・アプリケーションは、状況によりメモリー不足に陥ることがあります。たとえば、メディエータに対する着信メッセージの速度がコールバック・メッセージの速度を超えると、メディエータ・キャッシュでメモリーの蓄積が発生します。
この問題を修正するには、Oracle Enterprise Manager Fusion Middleware Controlコンソールでメディエータ構成プロパティのParameters
属性に次のプロパティを追加して、キャッシュ・サイズを変更します。
mediator.runtime_cache.limit=<value>
たとえば、mediator.runtime_cache.limit
プロパティの値を100に設定すると、キャッシュのサイズは100に制限されます。キャッシュ・サイズは、キャッシュに格納できるオブジェクトの数を示します。このプロパティを0(ゼロ)に設定すると、キャッシュを完全に無効化できます。
mhdr:getCompositeName()
やmhdr:getHeader
などのメディエータ拡張関数は、実行するにはランタイム・コンテキストが必要です。つまり、これらの関数を設計時にマッパー・テスト機能を使用して実行すると、ターゲットXMLファイルは生成されず、次のエラーがスローされます。
XML-22044: (Error) Extension function error: Error invoking 'getComponentName':' java.lang.IndexOutOfBoundsException: Index: 0, Size: 0'
これらの関数は、ランタイム環境では正常に動作します。
アウトバウンド・プロパティの$out.property.endpointURI
が、ルーティング・ルールの指定時にメディエータ割当てタスクの「値の割当て」ダイアログに使用可能なプロパティとしてリストされません。
このプロパティに値を割り当てる場合、割当てダイアログの「宛先」セクションの「プロパティ」フィールドに、endpointURI
としてプロパティを直接入力できます。
Enterprise Managerで、メディエータ再シーケンサに表示されるリカバリ可能なインスタンスの数は、実際にリカバリ可能なインスタンスの数ではなく、当該インスタンスに実行された再試行の数に相当します。この情報は、追跡目的専用であり、送信された重複メッセージとは無関係です。
複数のユーザーがSOAコンポーザで同じドキュメントを開いて編集する場合、そのうちの1人のユーザーが自分の変更を保存しようとすると、次のような予期しないエラーが発生します。
Unable to create document in the metadata repository; a document with the same name or GUID already exists.
スキーマからメディエータのWSDLファイルを生成すると、「WSDLの作成」ウィンドウでリプライ・メッセージを更新できません。
リプライ・メッセージを編集する必要がある場合、「WSDLの作成」ウィンドウでファイルを作成した後に、直接WSDLファイルを更新できます。
この項では、構成の問題および回避方法について説明します。内容は次のとおりです。
有効なメディエータ構成であるためには、各メディエータ・コンポーネントにルーティング・ルールが含まれる必要があります。コンポーネントにルーティング・ルールが含まれない場合、メディエータは実行時に何の処理も行わず、mediator.dispatch.CaseExecutionPlan.getEffectiveExecutableCasesでnullポインタ例外が発生します。
Oracle Mediatorに関するドキュメントの訂正箇所はありません。