BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedoホーム   |   ファイル形式、データ記述方法、MIB、およびシステム・プロセスのリファレンス   |   先頭へ   |   前へ   |   次へ   |   目次

 


tmtrace(5)

名前

tmtrace-実行時トレーシング機能

機能説明

実行時トレーシング機能を使用すると、アプリケーション管理者および開発者は、BEA Tuxedo アプリケーションの実行をトレースできます。

実行時トレーシングは、アプリケーション実行時の注意すべき条件または遷移をマークする、trace point の概念に基づいています。トレース・ポイントの例としては、tpcall などの ATMI 関数へのエントリ、BEA Tuxedo メッセージの到達、またはトランザクションの開始があります。

トレース・ポイントに到達すると、次のことが発生します。まず、filter が適用され、トレース・ポイントを処理すべきかどうかを決定します。トレース・ポイントを処理すべき場合は、trace recordreceiver に発行されます。receiver はファイルか (将来は) バッファです。最後に、プロセスの中止などの action が起動されます。レシーバへの発行およびトリガーはどちらもオプションであり、トレース・ポイントがフィルタを通らない場合には発生しません。

フィルタ、レシーバ、およびトリガーは、trace specification で指定します。構文について以下に記述します。トレース指定は、TMTRACE 環境変数から初期化されます。実行中のプロセスのトレース指定は、トリガー・アクションによってか、tmadmin(1)changetrace コマンドを使用することで変更されます。

トレース・ポイントは、以下に列挙するような trace categories に分類されます。各トレース・ポイントは 1 つのカテゴリに属します。フィルタは、処理するトレース・カテゴリを記述し、フィルタを通らないトレース・ポイントには最小限の処理が行われます。

また、実行時トレーシングは、クライアントがサーバに送信したメッセージ ( またはそのサーバから他のサーバへ) を dye 設定する機能を提供します。プロセスがメッセージをダイ設定するように選択した場合、発信元プロセスによってダイ設定が自動的に、発信元プロセスから直接または間接的にメッセージを受信するすべてのプロセスに渡されます。プロセスがダイ設定されたメッセージを受け取ると、atmi トレース・カテゴリが自動的にオンになり、ユーザ・ログへのトレース・レコードの発行が開始されます (発行が行われていなかった場合)。

ダイ設定は、トレース指定の dye トリガーおよび undye トリガーによって明示的にオンまたはオフにできます。また、ダイ設定は、ダイ設定されたメッセージが受信されたときに暗黙的にオンになり、tpreturn() および tpforward() によって暗黙的にオフにできます。ダイ設定が暗黙的にオフされた場合、ダイ設定がオンであったときに有効であったトレース指定が復元されます。

トレース・カテゴリ

トレース・カテゴリは、次のとおりです。

atmi

ATMI インターフェイスおよび TX インターフェイスへの明示的なアプリケーション呼び出し (つまり tp 関数や tx_ 関数に対する呼び出し) およびアプリケーション・サービス起動のためのトレース・ポイント。いくつか例外があります。最初の呼び出し tpinit() で ATMI コールが処理される際の tpinit に対する暗黙的な呼び出し、およびエラーが発生して tpreturn が呼び出される場合には、暗黙的な呼び出しは TX インターフェイスが ATMI ンターフェイスを直接呼び出す、このカテゴリーに出力されます。

iatmi

ATMI および TX インターフェイスに対する黙示的コールのトレース・ポイント。これらのトレース・ポイントは、アプリケーションの要求の処理中に呼び出される内部コール、および管理を目的として呼び出される内部コールのすべてを示します。この値をセットすることは、atmi レベル、すなわち ATMI または TX インターフェイスに対するすべてのコール (明示的なコールと黙示的なコールの両方) がトレースされることを意味します。

xa

XAインターフェイス (トランザクション・マネージャとリソース・マネージャとの間のインターフェイス) に対するすべてのコールのトレース・ポイント。

trace

メッセージのダイ設定を含む、トレーシング機能自体に関連するトレース・ポイント。

トレース指定

トレース指定は、filter-spec:receiver-spec [ : trigger-spec] の構文で指定する文字列です。ここで、filter-spec は、検査または無視するトレース・カテゴリを記述します。receiver-spec は、トレース・レコードのレシーバです。オプションの trigger-spec は、実行するアクションを記述します。

ヌル文字列も正規のトレース指定です。ヌル文字列は、他の指定がない場合の、すべての BEA Tuxedo プロセスのデフォルトです。

文字列 on および off も指定できます。onatmi:ulog:dye のエイリアスで、off::undye と等価です。

フィルタ指定

トレース指定の最初の要素である、フィルタ指定は次の構文を使用します。

[ { + | - } ] [ category ] ...

ここで、category は、上記にリストしたカテゴリの 1 つです。category の位置に記号 * を使用して、すべてのカテゴリを表すことができます。接頭辞 + または - は、後続のカテゴリを、現在有効なカテゴリのセットに追加または取り出すことを指定します。+ または - の次にカテゴリがない場合、現在有効なカテゴリは変更されません。

空のフィルタの場合は、選択するカテゴリがないという意味で、トレーシングを使用不可にしています。

トレース・ポイントが発生すると、そのカテゴリがフィルタ指定と比較されます。カテゴリがフィルタ指定に含まれている場合、トレース・ポイントは、レシーバおよびトリガー指定に従ってさらに処理されます。カテゴリが含まれていない場合、トレース・ポイントの処理はこれ以上発生しません。

レシーバ指定

レシーバは、トレース・レコードが送信されるエンティティです。各トレース・レコードには最大 1 つのレシーバがあります。

トレース指定の 2 番目の要素である、レシーバ指定は次の構文を使用します。

[/ regular-expression /] receiver

ここで、オプションの正規式を使用して、フィルタを通るトレース・ポイントのサブセットを選択することもできます。正規式は、トレース・レコードと一致します。空のレシーバ指定も正当であり、この場合、トレース・レコードは発行できません。

現在、receiver の唯一有効な値は次のとおりです。

ulog

トレース・レコードをユーザ・ログへ発行します。

トリガー指定

トリガーは、トレース・レコードが発行された後に実行されるオプションのアクションです。多くて 1 つのアクションが、フィルタを渡す各トレース・レコードのために実行されます。

トレース指定の3つめの部分であり、オプションのトリガー指定は次の構文を使用します。

[/ regular-expression /] action

ここで、オプションの正規式を使用して、フィルタを通るトレース・ポイントのサブセットのためだけに実行するように、トリガーを制限できます。正規式は、トレース・レコードと一致します。

使用可能なアクションは、次のとおりです。

abort

abort()を呼び出し、プロセスを終了させます

ulog(message)

ユーザ・ログに message を書き込みます。

system(command)

system(3) を利用して command を実行します (これはWindowsクライアントに対してはサポートされません)。%A は、トレース・レコードの値に展開されます。

trace(trace-spec)

トレース指定を指定の値 trace-spec に設定し直します。

dye

メッセージのダイ設定をオンにします。

undye

メッセージのダイ設定をオフにします。

sleep(seconds)

指定の秒数だけスリープします (これは、Windows クライアントではサポートされません)。

トレース・レコード

トレース・レコードは、次の形式の文字列です。

cc:data

ここで、cc はトレース・カテゴリの最初の 2 文字で、data はトレース・ポイントに関する追加情報を含みます。

トレース・レコードがユーザ・ログに表示されるとき、その行は次のようになります。

hhmmss.system-name!process-name.pid:TRACE:cc:data

注意事項

MAC プラットフォームで動作するワークステーション・クライアントのレシーバやトリガに対しては、マッチ・パターンを指定することはできません。

tmadmin changetrace コマンドは、/WSクライアントに対するトレース・レベルを変更するために使用することはできません。

使用例

クライアントをトレースするには、そのクライアントのために、アプリケーション・サーバによって作成されたすべての ATMI 呼び出しをトレースするほかに、クライアントの環境に次のように設定しエクスポートします。TMTRACE=on この指定は、クライアント内のすべてのトレース・ポイントを記録し、メッセージのダイ設定をオンにします。クライアントのためにサービスを実行するアプリケーション・サーバ・プロセスは、自動的にすべての ATMI トレース・ポイントを記録します。

前述の例で、クライアントからのサービス要求をトレースして、クライアントからの出力のトレースを、それらの要求についての最低限の情報に制限するには、クライアントの環境に次のように設定しエクスポートします。

TMTRACE="*:ulog:dye:" 

前述の例で、クライアントからのサービス要求はトレースし、クライアントからの出力のトレースを tpcall 要求についての最低限の情報に制限するには、次のように設定しエクスポートします。

TMTRACE=atmi:/tpacall/ulog:dye 

この指定は、クライアントで行われるすべての tpacall 呼び出しを記録し、メッセージのダイ設定をオンにします。クライアントのためにサービスを実行するアプリケーション・サーバ・プロセスは、自動的にすべての ATMI トレース・ポイントを記録します。tpacall() トレース・レコードに含まれるクライアントの識別子は、クライアントのために呼び出されたサービス・ルーチンに渡される TPSVCINFO パラメータの値と相互に関連させることができます。

アプリケーション・サーバによって実行されたすべてのサービス要求の呼び出しをトレースするには、参加しているすべてのマシン上にあるサーバ ENVFILE 内に次のように設定します。

TMTRACE=atmi:/tpservice/ulog 

メッセージのダイ設定をオンにして、アプリケーションを通してすべてのトレース・カテゴリの実行時トレーシングを使用可能にするには、すべてのクライアントの環境および参加しているすべてのマシン上の、マシン ENVFILE 内に次のように設定しエクスポートします。

TMTRACE=*:ulog:dye 

この設定では、BBL および DBBL を含むすべてのプロセスがトレース・レコードを発行するので、管理できない量の出力が生成される可能性があります。

グループ GROUP1 内の実行中のすべてのサーバで、ブート後に ATMI のトレーシングをオンにするには、次のように tmadminchangetrace コマンドを呼び出します。

changetrace -g GROUP1 on 

changetrace は現在存在しているプロセスに対してのみ影響します。つまり、グループ GROUP1 内で起動していないサーバのトレース・コンフィギュレーションは変更されません(サーバのデフォルトのトレース・コンフィギュレーションを設定するには、サーバの ENVFILE 内に TMTRACE を設定します)。

現在実行中のすべてのアプリケーション・プロセスでトレーシングをオフにするには、次のように changetrace を使用します。

changetrace -m all off 

グループ GROUP1 内で識別子が 1 である、実行中のサーバ・プロセスを、tpreturn を実行したときに中止するには、tmadmin に対して次のように指定します。

changetrace -i 1 -g GROUP1 "atmi::/tpreturn/abort" 

関連項目

tmadmin(1)userlog(3c)

 

先頭へ戻る 前のトピックへ 次のトピックへ