目次 前 次 PDF


ECIDを伝播するためのTuxedoの構成

ECIDを伝播するためのTuxedoの構成
このトピックには次の項が含まれます:
概要
Tuxedoは、12c (12.1.1)リリースからECID伝播サポートが強化されています。図19-1が示すように、様々なTuxedo境界にまたがるECID伝播がサポートされています。
図19-1 ECID伝播
この機能を有効化すると、受信側としてTuxedoは、境界を横断する各リクエスト呼出しの中にECIDがあるかどうかをチェックするようになります。存在する場合は、受信されたECIDは呼出しパス全体に沿って伝播されますが、存在しない場合は、境界ノードとしてドメイン・ゲートウェイは当該呼出しのECIDを生成し、正確に構成されたら伝達しようと試みます。
Tuxedoコンポーネントによって発信される呼出しの場合、ネイティブ・クライアント、WSクライアントまたはJoltクライアントなどのクライアントは、正確に構成されるとECIDを生成できます。
注意:
この項では、次に示すECID伝播の4つのシナリオについて説明します。
TuxedoからデータベースへのECIDの伝播
Tuxedoでは、Oracle Call Interface (OCI)を経由したECIDのOracle DBへの伝播をサポートしています。これは一方向の伝播です。理論上、OCI/DBはリクエスト呼出しを発信することはないため、反対方向(DBからTuxedoへ)の伝播をサポートする必要はありません。
OCIでは、登録APIおよびコールバック関数インタフェースが実装されています。コールバック関数の実装によって、伝播の詳細が処理されます。プロセスは次に示すとおりです。
1.
2.
3.
TuxedoおよびWLS間のECIDの伝播
WTCは、WLSアプリケーションとTuxedoサービス間の相互運用性を確立します。インタフェースとして、WTCにはTuxedoとWLS間のECIDの伝播を実行する完全な機能があります。
a.
b.
c.
a.
b.
c.
WebサービスをSALTゲートウェイ(GWWS)を通してSOAPまたはRESTのいずれかのモードで使用している場合も、呼出しの方向(TuxedoからのWLSの呼出しか、WLSからのTuxedoの呼出しか)を問わず、ECIDをTuxedoとWLS*の間で伝播できます。WLS*で他のOracle製品と一緒にECIDコンテキストを伝播するときと同様に、このモードでは、ECIDがHTTPヘッダーに含められます。
注意:
* WLSは、WLS 12c (12.1.3)以上のリリースである必要があります。
Tuxedo内のECIDの伝播
Tuxedo内のECID伝播(ドメイン内およびドメイン間の両方)では、メッセージ内のMETA_TCMフィールドが活用されます。Tuxedoクライアント、サーバーおよびドメイン・ゲートウェイではすべて、メッセージのMETA_TCMセクション内でECIDを取得または設定するサポートが強化されています。
Tuxedo内では、次の3つのATMI APIを使用してECID生成/伝播が実行されます。
ネイティブ/WS/Joltクライアントおよびドメイン・ゲートウェイによるECIDの生成
境界コンポーネントとして、ネイティブ/WS/Joltクライアントおよびドメイン・ゲートウェイは、各リクエスト・メッセージが正しく構成されるとそれに対してECIDを生成できます。
相互運用性
コール・パスに12cよりも低いバージョンのOracle Tuxedoを持ったドメイン/マシンが存在する場合、エンドツーエンドのECID伝播は、個々のユーザー・シナリオに応じて行われます。
たとえば、次の相互運用性シナリオを検討してみます。
DOM1、DOM2およびDOM3という3つのドメインがあるとします。DOM1およびDOM3はOracle Tuxedo 12c内に、DOM2はTux11gR1内にあります。DOM1ではECID_USERLOGおよびECID_CREATEが両方とも有効化されていますが、DOM3ではECID_USERLOGのみが有効化されています。
一方で、DOM1のクライアントがDOM2のtpcallサービス1を呼び出した後、サービス1がDOM3のtpcallサービス2を呼び出すときにtpallocを介して新しいバッファを割り当てると、ECIDはDOM3のULOGには記録されません。つまり、DOM1のECID情報は保持できません。
他方で、DOM1のクライアントがDOM2のtpcallサービス1を呼び出した後、サービス1がDOM3のtpcallサービス2を呼び出すときに、サービス1の呼出し時のバッファを再利用すると、ECIDはDOM3のULOGに記録されます。つまり、DOM1のECID情報は、DOM3によって伝播および取得できます。
構成
この項では、ECID伝播を有効化するための次の構成について説明します。
ECID伝播の有効化および無効化
UBBCONFIG(5)のRESOURCESセクションでは、ECIDの処理動作を有効化および指定するための新しいフラグを使用してOPTIONSフィールドが拡張されます。
オプションECID_CREATE: ECID作成機能が有効化されます。境界ノード(ネイティブ/WS/Joltクライアントおよびドメイン・ゲートウェイ)は、ECIDを生成できます。
オプションECID_USERLOG: このオプションを指定すると、文字列がnullでないかぎり、ECIDがユーザー・ログに付加されます。
前述のいずれのオプションも設定しない場合、Tuxedo全体へのECID伝播はデフォルトで有効化されますが、このドメインのULOGでECIDを作成したり出力することはできません。この場合、tmadmin > psr -vを使用してECIDを取得できます。また、これら2つのオプションは、MIB操作によっても更新できます。
OCI経由でECIDを伝播するためのサーバーの構成
OCIコールバック関数によりOracle DBへのECID伝播を実行するには、-Lオプションで関連サーバーを指定する必要があります。例:
simpserv CLOPT="-A -L default --" SRVGRP=GROUP1 SRVID=2
-Lを指定してアクティブ化すると、サーバーはECID伝播のためOCIの登録APIを呼び出します。
-LDまたは-L default
OCIライブラリ(WIN32プラットフォームの場合「oci.dll」、それ以外のプラットフォームは「libclntsh.so」)をロードします。
-L oci_lib_name
oci_lib_nameで指定された名前を持つOCIライブラリをロードします。そのようなoci_lib_nameは絶対パスまたはリーフ名の場合があり、システム・ライブラリ・パス全体で検出できます。
TuxedoシステムによるECIDのトレース
ECID_USERLOGUBBCONFIGで構成されている場合に、現在アクティブな呼出しのECIDを出力するようユーザー・ログが拡張されています。例:
233331.lclnx16!simpserv.19461.2664420416.0: ECID <004fVWEOfCE6iKO5IjK6yf0004k8000000>: sleep 15
サーバーが実行中の場合にECIDを出力するよう、tmadmin printserver (psr -v)コマンドが拡張されています。例:
グループID: GROUP1、サーバーID: 1
マシンID: SITE1
プロセスID: 19461、リクエスト・キュー・アドレス: 1009713159、応答キュー・アドレス: 1009713159
サーバー・タイプ: USER
プログラム名: /nfs/ucfhomes/xuhchen/lclnx16/TUX12gR164/LC/bld/samples/atmi/simpapp/simpserv
キュー名: 00001.00001
オプション: (なし)
生成数: 1、最大メッセージ・タイプ: 1073741824
作成時間: Tue Sep 27 23:32:44 2011
現在の時間: 0:05:22
リクエスト終了数: 2
ロード終了数: 100
現在のサービス: TOUPPER,(ecid: c9ca469656eb23b5:79482783:132ae1bef3b:-8000-0000000000000010)
関連項目
『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved