ユーザー定義ノードが使用可能になる前に、ユーザー定義ノード・プロジェクトを構成するファイルをワークベンチにデプロイする必要があります。ワークベンチで「プラグイン開発」パースペクティブを使用することによって、テスト環境でこれを行うことができます。
PDE ランタイム機能の使用可能化を参照してください
。
「実行」>「実行」>「Runtime Workbench」オプションを使用して、組み込まれた追加ノードが含まれるワークベンチの新しいコピーを開始します。
このパースペクティブの詳細については、PDE ガイド (PDE Guide)を参照してください。
メッセージ・フロー・エディターを開くと、パレットに新規ノードが表示されます。
新規ノードをテストするには、そのノードをメッセージ・フローに追加し (メッセージ・フロー・ノードの追加を参照)、通常通りデプロイします。ノード定義が適切と思われる場合は、新規ノードをメッセージ・フロー・エディターの通常のノード・パレットに追加します (ユーザー定義拡張機能の配布を参照)。これを行うまで、新規ノードはテスト・ワークベンチ・セッションでのみ使用可能です。
新規ノードを含むワークベンチ・セッションがあるときは、その新規ノードを含むテスト・メッセージ・フローをブローカーにデプロイできます。
デプロイする前に、まずプラグイン・ノードの作成、コンパイル、およびインストールを行う必要があります。
詳しくは、ブローカー・ドメインへのユーザー定義拡張機能のインストールを参照してください。
自分のユーザー定義ノードを含むメッセージ・フローをセットアップおよびデプロイし、メッセージ・フローにテスト・メッセージを送信したら、ノードが作動しているかどうかを判別し、作動していない場合はどこが悪いのかを判別するのに、いくつかの診断ツールを使用できます。
イベント・ロギングを使用します。
詳しくは、ユーザー定義拡張機能からのイベント・ログの使用を参照してください。
- イベント・ログをチェックします (これについては、イベント・ログ・エディターを参照してください)。
- メッセージ・フローにトレース・ノードを追加し、そこからの出力をチェックします
(トレース・ノードについては、Trace ノードを参照してください)。
- フロー・デバッガーを使用して、ノードを含むフローをデバッグします
(これについては、メッセージ・フロー・アプリケーションのテストとデバッグを参照してください)。
以下のデバッグ・メッセージは、ユーザー定義ノードおよびパーサーの実行を理解するのに役立ちます。
- BIP2233 および BIP2234: ユーザー定義拡張インプリメンテーション関数が呼び出される前後にトレースされたメッセージのペア。
これらのメッセージは、入力パラメーターと戻り値を報告します。
これらのメッセージでは、「インプリメンテーション関数」は C インプリメンテーション関数または Java インプリメンテーション・メソッドのいずれかとして解釈できます。
- BIP3904: ユーザー定義ノードの Java evaluate() メソッドを起動する前にトレースされるメッセージ。
- BIP3905: ユーザー定義ノードの C cniEvaluate() インプリメンテーション関数 (CNI_VFT の iFpEvaluate メンバー) を呼び出す前にトレースされるメッセージ。
- BIP4142: ユーザー定義のノード・ユーティリティー関数を起動する際にトレースされるデバッグ・メッセージ。ユーティリティー関数は、構文エレメントの状態を変更します。
これには cniSetElement* (* はその語幹を持つすべてのノードを表す) で始まるすべてのユーティリティー関数が含まれます。
- BIP4144 および BIP4145: 特定のインプリメンテーション関数でトレースされるメッセージのペア。ユーザー定義拡張機能でこれらを呼び出すと、メッセージ・ブローカーのオブジェクトの内部状態に変更を加えることができます。
可能なメッセージ・ブローカー・オブジェクトとして、構文エレメント、ノード、およびパーサーがあります。
これらのメッセージでは、「インプリメンテーション関数」は C インプリメンテーション関数または Java インプリメンテーション・メソッドのいずれかとして解釈できます。
- BIP4146: ユーザー定義のパーサー・ユーティリティー関数を起動する際にトレースされるデバッグ・メッセージ。ユーティリティー関数は、構文エレメントの状態を変更します。
これには cpiSetElement* (* はその語幹を持つすべてのノードを表す) で始まるすべてのユーティリティー関数が含まれます。
C 言語ユーザー定義ノード API については、C 言語ユーザー定義パーサー APIおよび C 言語ユーザー定義ノード APIを参照してください。
- BIP4147: ユーザー定義拡張機能が、ユーザー定義拡張機能ユーティリティー API 関数に、無効な入力オブジェクトを渡すときにトレースされるエラー・メッセージ。
- BIP4148: ユーザー定義拡張機能がブローカーのオブジェクトに損傷を与えたときにトレースされるエラー・メッセージ。
- BIP4149: ユーザー定義拡張機能が、ユーザー定義拡張機能ユーティリティー API 関数に、無効な入力データ・ポインターを渡すときにトレースされるエラー・メッセージ。
- BIP4150: ユーザー定義拡張機能が、ユーザー定義拡張機能ユーティリティー API 関数に、無効な入力データを渡すときにトレースされるエラー・メッセージ。
- BIP4151: cniGetAttribute2 または
cniGetAttributeName2 で戻りコードが予期しない値に設定されている場合にトレースされる
デバッグ・メッセージ。予想される値は、CCI_SUCCESS、CCI_ATTRIBUTE_UNKNOWN、
および CCI_BUFFER_TOO_SMALL です。それ以外の値はすべて、予期しない値です。
- BIP4152: 以下の状況でトレースされる
デバッグ・メッセージ。
- cniGetAttribute2 または cniGetAttributeName2 で
戻りコードが CCI_BUFFER_TOO_SMALL に設定されている場合。
- cniGetAttribute2 または cniGetAttributeName2 を、
サイズ・バッファーを訂正して再度呼び出す際に、戻りコードが
CCI_BUFFER_TOO_SMALL に設定されている場合。
インプリメンテーション関数の完全なリストは、
ユーザー定義拡張機能の問題の解決を参照してください。
これらのトレース・エントリーを参照するためには、ユーザー・トレースのスイッチをデバッグ・レベルでオンにしてください。
詳しくは、トレースの使用を参照してください。