cciUserTrace

cciUserTrace を使用して、メッセージ・カタログからのメッセージ (挿入あり) をユーザー・トレースに書き込みます。 サービス・トレースがアクティブである場合、メッセージはサービス・トレースにも書き込まれます。

ユーザー・トレースに書き込まれるメッセージは、以下の形式になります。

<date-time stamp> <threadNumber> UserTrace <Message text with inserts> <Message Explanation>

構文

void cciUserTrace(
  int*              returnCode,
  CciObject*        object,
  const CciChar*    messageSource,
  int               messageNumber,
  const char*       traceText,
                    ...
);

パラメーター

returnCode
関数からの戻りコードを受け取ります (出力)。NULL ポインターを入力すると、ユーザー定義ノードがエラーを処理しないことを示します。この呼び出しの実行時にスローされた例外は、フロー内の次のアップストリーム・ノードに対して再度スローされます。 入力が NULL でない場合、出力は呼び出しの成功状況を示します。 実行時に例外が発生する場合、出力時に *returnCode が CCI_EXCEPTION に設定されます。 CciGetLastExceptionData を呼び出すと、例外の詳細が提供されます。
object
トレース・エントリーに関連付けられるオブジェクトのアドレス (入力)。 このオブジェクトは CciNode* または CciParser* となります。CciNode* である場合には、そのノードの名前がトレースに書き込まれます。 CciParser* である場合には、パーサーを作成したノードの名前がトレースに書き込まれます。 このオブジェクトは、エントリーをトレースに書き込むかどうかを決定するためにも使用されます。 エントリーは、ノードにおいてトレースがアクティブである場合にのみ書き込まれます。現行では、ノードはメッセージ・フローからトレース設定を継承します。
このパラメーターが NULL の場合は、実行グループのトレース・レベルが戻されます。
messageSource
Windows® メッセージ・ソース、 または Linux®UNIX®z/OS® のメッセージ・カタログ (入力) の、完全修飾の場所および名前。

変更の始まり現行のブローカー・メッセージ・カタログを使用するには、 すべてのオペレーティング・システムで BIPv600 を指定します。 あるいは、独自のメッセージ・カタログを作成することもできます。変更の終わり

トレースをフォーマット設定する場合は、このカタログの NLS バージョンからのメッセージが書き込まれます。 使用されるロケールは、トレースをフォーマット設定する環境のロケールです。

1 つのオペレーティング・システムでブローカーを実行し、そのオペレーティング・システムでログを読み、それから別のオペレーティング・システムでそのログをフォーマット設定することができます。 例えば、ブローカーを Linux で実行しているものの、 そこには使用可能な .cat ファイルがない場合、 ユーザーはログを読んでからそれを Windows に転送し、 .properties ファイルを使ってログをフォーマット設定できるかもしれません。

このパラメーターが NULL の場合は、空ストリングを指定したときと同じ結果になります。すなわち、他のすべての情報がログに書き込まれ、カタログ・フィールドには空ストリング値が入ります。 そのためログ・フォーマッターは、メッセージ・ソースを検出することができません。 その結果、ログ・フォーマッターはこのエントリーのフォーマット設定に失敗します。
messageNumber
指定された messageSource 内のメッセージを識別する数値 (入力)。 この messageNumber に対応するメッセージが messageSource に入っていない場合、ログ・フォーマッターはこのエントリーのフォーマット設定に失敗します。
traceText
NULL で終了する、文字のストリング (入力)。このストリングはサービス・トレースに書き込まれます。 これによって、トレース・エントリーと、ソース・コードの中でたどってきたパスとを容易に相関させることができます。 例えば、コードの中をたどってきたパスが何通りかあり、 それらが同じメッセージ (messageSource および messageNumber) をトレースに書き出す場合、 traceText を指定してそれら異なるパスを互いに区別できます。 つまり、traceText ストリングは、ソース内の静的なリテラル・ストリングであるため、同じストリングが、ソース・コード・ファイルとフォーマット設定されたトレース・ファイルの両方に出現します。
...
メッセージに付随する任意のメッセージ挿入を含む C 変数引数リスト (入力)。 これらの挿入は文字ストリングとして扱われ、 変数引数はタイプが pointer to char (文字へのポインター) であると見なされます。
このリストの最後の引数は、 (char*)0 でなければなりません。
  • 分散プラットフォームで稼働するユーザー定義拡張機能では、char* 引数は ISO-8859-1 (ibm-918) コード・ページでなければなりません。
  • z/OS プラットフォームで稼働するユーザー定義拡張機能では、char* 引数は EBCIDIC (1047) でなければなりません。
これらの要件には、 traceText 内のすべての char* 引数と挿入の変数引数リスト (...) が含まれます。

戻り値

なし。エラーが発生した場合、returnCode パラメーターがエラーの理由を示します。

const CciChar* 		myMessageSource=CciString("SwitchMSG",BIP_DEF_COMP_CCSID);
CciNode*         	thisNode = ((NODE_CONTEXT_ST*)context)->nodeObject;

cciUserTrace(&rc,
             (CciObject*)thisNode,
              myMessageSource,
              1,
              "propagating to add terminal",
              "add",
              (char*)0);
 checkRC(rc);
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:44:40

as24500_