ユーザー定義拡張機能を処理する際に生じる可能性のある共通問題のいくつかについてのアドバイス。
static CNI_VFT virtualFunctionTable = {CNI_VFT_DEFAULT};
さらに、ユーザー定義ノードからロギングをインプリメントすると、プラグイン API がエラー・コードを出しているかどうかが確認できます。サービス・トレースを行わない限り、ブローカーはログに記録を残しません。
ナビゲート・パス・ユーティリティー関数 (cniSqlNavigatePath) は、sqlPathExpression 引数で定義されたとおりに、cniSqlCreateReadOnlyPathExpression または cniSqlCreateModifiablePathExpression ユーティリティー関数を使用して作成された SQLPathExpression を実行します。
パスがナビゲートできない場合は、戻りコードが CCI_PATH_NOT_NAVIGABLE に設定されます。 このコードは、あるパス式を別のパス式に組み込む際に戻されることがあります。 入力 cciMessage* 関数は NULL にできません。しかし、出力 cciMessage* 関数は NULL にできます。 NULL にできないパス式の中に NULL にできるパス式を組み込むと、CCI_PATH_NOT_NAVIGABLE が戻されます。
BIP2233 ユーザー定義の拡張関数を呼び出し中 [関数名] ([関数呼び出しパラメーター])
BIP2308 ファイル [LIL ファイルの名前] をロードできませんでした。オペレーティング・システムの戻りコード [オペレーティング・システムからのエラー・コードの戻り]
BIP3904 (Java 用): ノード (クラス=[ノード・クラス名], 名前=[フロー内のノードのラベル]) の evaluate() メソッドを呼び出し中です。ノード・クラス名 は Java ユーザー定義拡張クラスの名前。
BIP3905 (C 用): ノード (クラス=[ノード・クラス名], 名前=[フロー内のノードのラベル]) の cniEvaluate() インプリメンテーション関数を呼び出し中です。ノード・クラス名は、C cniDefineNodeClass の呼び出し中にユーザー定義拡張によって提供される、ユーザー定義拡張クラスの名前。
BIP4142 cniSetElement [エレメント ID の型] を評価中です。 値を [ユーザーの変更前の値] から [ユーザーの変更後の値] に変更しています。
BIP4144 入力された関数 [関数名] ([関数呼び出しパラメーター])
BIP4145 関数 [関数名] を結果 [戻された結果] で終了しています。
これらのメッセージでは、インプリメンテーション関数 は C インプリメンテーション関数または Java インプリメンテーション・メソッドのいずれかとして解釈できます。
メッセージ BIP4144 および BIP4145 を呼び出す C インプリメンテーション関数には、以下のものがあります。
(* はこの語幹のノードすべてを表します。例えば、cniAdd* には cniAddAfter、cniAddasFirstChild、cniAddasLastChild、および cniAddBefore が含まれます。)
メッセージ BIP4144 および BIP4145 を呼び出す Java メソッドには、以下のものがあります。
BIP4146 cpiSetElement [エレメント ID の型] を評価中です。 値を [ユーザーの変更前の値] から [ユーザーの変更後の値] に変更しています。
C ユーザー定義 API については、C 言語ユーザー定義パーサー API および C 言語ユーザー定義ノード API を参照してください。
BIP4147 ユーザー定義拡張機能の入力パラメーターがデバッグ検証チェックに失敗しました。 機能 [機能名] に渡された入力パラメーター [パラメーター名] は有効なオブジェクトではありません。
BIP4148 ユーザー定義拡張機能によってブローカー・オブジェクトが壊れました。 機能 [機能名] が、パラメーター [パラメーター名] として渡されたブローカーのオブジェクトを壊しました。
BIP4149 ユーザー定義拡張機能の入力パラメーターがデバッグ検証チェックに失敗しました。 機能 [機能名] に渡された入力パラメーター [パラメーター名] は NULL ポインターです。
BIP4150 ユーザー定義拡張機能の入力パラメーターがデバッグ検証チェックに失敗しました。 関数 [関数名] に渡された入力パラメーター [パラメーター名] に有効な値がありません。
BIP4151 予期しない値がユーザー定義拡張インプリメンテーション関数 [関数名] から 戻されました。
BIP4152 ユーザー定義拡張 インプリメンテーション関数 [関数名] が CCI_BUFFER_TOO_SMALL を 2 回目の試行で戻しました。
mqsireportproperties WBRK_BROKER -e default -o ComIbmJavaPluginNodeFactory -r
以下の例のようなレポートが表示されます。
ComIbmJavaPluginNodeFactory uuid='ComIbmJavaPluginNodeFactory' userTraceLevel='none' traceLevel='none' userTraceFilter='none' traceFilter='none' NodeClassName='ComIbmJMSClientInputNode' NodeClassName='ComIbmJMSClientOutputNode' NodeClassName='ComIbmJavaComputeNode' NodeClassName='ComIbmXslMqsiNode' NodeClassName='SearchFilterNode' BIP8071I: Successful command completion.
SearchFilter というユーザー定義拡張機能には、SearchFilterNode の NodeClassName があります。
mqsireportproperties WBRK_BROKER -e default -o ComIbmSamplePluginNodeFactory -r
ComIbmSamplePluginNodeFactory uuid='ComIbmSamplePluginNodeFactory' userTraceLevel='none' traceLevel='none' userTraceFilter='none' traceFilter='none' NodeClassName='NumComputeNode' BIP8071I: Successful command completion.
NumCompute というユーザー定義拡張機能には、NumComputeNode の NodeClassName があります。