cciUserDebugTrace

この関数は cciUserTrace によく似ています。唯一の相違点は、ユーザー・トレースがデバッグ・レベルでアクティブである場合にしかユーザー・トレースにエントリーが書き込まれないという点です。
注: サービス・トレースが何らかのレベルでアクティブの場合、およびユーザー・トレースが何らかのレベルでアクティブの場合、エントリーはサービス・トレースにも書き出されます。

構文

void cciUserDebugTrace(
  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 メッセージ・カタログを識別するストリング (入力)。 トレースをフォーマット設定する場合は、このカタログの NLS バージョンからのメッセージが書き込まれます。 使用されるロケールは、トレースをフォーマット設定する環境のロケールです。 あるタイプのプラットフォームでブローカーを実行し、そのプラットフォームでログを読み、それから別のプラットフォームでそのログをフォーマット設定することが可能です。 例えば、ブローカーを Linux または UNIX で実行しているものの、そこには使用可能な .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;

const char* mbElementName  = mbString((CciChar*)&elementName,BIP_DEF_COMP_CCSID);
const char* mbElementValue = mbString((CciChar*)&elementValue,BIP_DEF_COMP_CCSID);
const char* traceTextFormat = "Switch Element: name=%s, value=%s";
char* traceText = (char*)malloc(strlen(traceTextFormat) + 
                                strlen(mbElementName) + 
                                strlen(mbElementValue));
sprintf(traceText,traceTextFormat,mbElementName,mbElementValue);
    
cciUserDebugTrace(&rc,
                 (CciObject*)thisNode,
                 myMessageSource,
                 2,
                 traceText,
                 mbElementName,
                 mbElementValue,
                 (char*)0);
free((void*)mbElementName);
free((void*)mbElementValue);
free((void*)traceText);
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
as24510_