WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

cciUserDebugTrace

cciUserDebugTrace を使用して、 ユーザー・トレースがデバッグ・レベルでアクティブのときに、メッセージ・カタログからのメッセージ (挿入あり) をユーザー・トレースに書き込みます。

ユーザー・トレースがデバッグ・レベルでアクティブではない場合、 サービス・トレースがアクティブなら、エントリーはサービス・トレースに書き込まれます。

構文

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 メッセージ・ソース、または LinuxUNIXz/OS® のメッセージ・カタログの、完全修飾の場所および名前。

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

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

使用されるロケールは、トレースをフォーマット設定する環境のロケールです。 1 つのオペレーティング・システムでブローカーを実行し、そのオペレーティング・システムでログを読み、それから別のオペレーティング・システムでそのログをフォーマット設定することができます。 例えば、ブローカーを LinuxUNIX、または z/OS で実行しているものの、 そこには使用可能な .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, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:48:10


参照トピック参照トピック | バージョン 8.0.0.5 | as24510_