ユーザー定義ノードのテスト

ユーザー定義ノードが使用可能になる前に、ユーザー定義ノード・プロジェクトを構成するファイルをワークベンチにデプロイする必要があります。ワークベンチで「プラグイン開発」パースペクティブを使用することによって、テスト環境でこれを行うことができます。変更の始まりPDE ランタイム機能の使用可能化を参照してください変更の終わり「実行」>「実行」>「Runtime Workbench」オプションを使用して、組み込まれた追加ノードが含まれるワークベンチの新しいコピーを開始します。 このパースペクティブの詳細については、PDE ガイド (PDE Guide)を参照してください。

メッセージ・フロー・エディターを開くと、パレットに新規ノードが表示されます。 新規ノードをテストするには、そのノードをメッセージ・フローに追加し (メッセージ・フロー・ノードの追加を参照)、通常通りデプロイします。ノード定義が適切と思われる場合は、新規ノードをメッセージ・フロー・エディターの通常のノード・パレットに追加します (ユーザー定義拡張機能の配布を参照)。これを行うまで、新規ノードはテスト・ワークベンチ・セッションでのみ使用可能です。

変更の始まり新規ノードを含むワークベンチ・セッションがあるときは、その新規ノードを含むテスト・メッセージ・フローをブローカーにデプロイできます。 デプロイする前に、まずプラグイン・ノードの作成、コンパイル、およびインストールを行う必要があります。 詳しくは、ブローカー・ドメインへのユーザー定義拡張機能のインストールを参照してください。変更の終わり

自分のユーザー定義ノードを含むメッセージ・フローをセットアップおよびデプロイし、メッセージ・フローにテスト・メッセージを送信したら、ノードが作動しているかどうかを判別し、作動していない場合はどこが悪いのかを判別するのに、いくつかの診断ツールを使用できます。
  1. 変更の始まりイベント・ロギングを使用します。 詳しくは、ユーザー定義拡張機能からのイベント・ログの使用を参照してください。変更の終わり
  2. イベント・ログをチェックします (これについては、イベント・ログ・エディターを参照してください)。
  3. メッセージ・フローにトレース・ノードを追加し、そこからの出力をチェックします (トレース・ノードについては、Trace ノードを参照してください)。
  4. フロー・デバッガーを使用して、ノードを含むフローをデバッグします (これについては、メッセージ・フロー・アプリケーションのテストとデバッグを参照してください)。
以下のデバッグ・メッセージは、ユーザー定義ノードおよびパーサーの実行を理解するのに役立ちます。
  • 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: 以下の状況でトレースされる デバッグ・メッセージ。
    1. cniGetAttribute2 または cniGetAttributeName2 で 戻りコードが CCI_BUFFER_TOO_SMALL に設定されている場合。
    2. cniGetAttribute2 または cniGetAttributeName2 を、 サイズ・バッファーを訂正して再度呼び出す際に、戻りコードが CCI_BUFFER_TOO_SMALL に設定されている場合。
インプリメンテーション関数の完全なリストは、ユーザー定義拡張機能の問題の解決を参照してください。

これらのトレース・エントリーを参照するためには、ユーザー・トレースのスイッチをデバッグ・レベルでオンにしてください。 詳しくは、トレースの使用を参照してください。

関連概念
ユーザー定義の入力ノード
ユーザー定義のメッセージ処理ノード
ユーザー定義の出力ノード
関連タスク
ユーザー定義拡張機能の開発
メッセージ・フロー・ノードの追加
メッセージ・フロー・アプリケーションのテストとデバッグ
ユーザー定義拡張機能の問題の解決
ユーザー定義拡張機能の配布
関連資料
イベント・ログ・エディター
Trace ノード
ユーザー定義拡張機能
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
as04505_