7 CoherenceログでのECIDの有効化
Oracle Coherenceでは、実行コンテキストID (ECID)を使用できます。このグローバルに一意のIDをOracleコンポーネント間のリクエストにアタッチできます。ECIDを使用すると、複数のリクエストが並行して処理される場合に同じリクエストに関する複数のログ・メッセージを追跡できます。
Coherence操作が呼び出される前にクライアントがすでにアクティブ化されたECIDを持っている場合にのみ、CoherenceログにECIDが含まれます。ECIDは、別のコンポーネントから渡される場合や、クライアント・コードで取得される場合があります。コンテキストをアクティブ化するには、Coherenceクライアント・コードでoracle.dms.context.ExecutionContext
インタフェースのget
およびactivate
メソッドを使用します。ECIDが実行中のスレッドにアタッチされます。deactivate
メソッドを使用して、コンテキストを解放します。次に例を示します。
例7-1 Coherenceクライアント・コードでのDMSコンテキストの使用方法
... // Get the context associated with this thread ExecutionContext ctx = ExecutionContext.get(); ctx.activate(); ... set additional execution context values (optional) perform some cache operations ... // Release the context ctx.deactivate(); ...
ECIDロギングは、クライアントが実行されているノードでのみ行われます。クライアント・リクエストが他のノードで処理されており、Coherenceによって例外がスローされる場合、リモート・エラーが元のノードに返され、それがCoherenceクライアントで記録されます。ログ・メッセージにはリクエストのECIDが含まれます。リモート・ノードで記録されるメッセージにはECIDは含まれません。
Coherenceログ・メッセージにECIDを含める方法は、『Oracle Coherenceでのアプリケーションの開発』のログ・メッセージ形式の変更に関する項を参照してください。