Java™ 言語を使ってメッセージを処理するには、JavaCompute ノードを使用します。
このトピックには、以下のセクションが含まれています。
このノードを使用して、以下のタスクを完了することができます。
ノードによって使用される Java コードは、Eclipse Java プロジェクト内に保管されます。
JavaCompute ノードはパレットの「変換」ドロワーに含まれていて、ワークベンチ内では次のアイコンによって表されます。
JavaCompute ノードは、Java ユーザー定義ノードと同じ実行モデルを使用するので、Java ユーザー定義ノードに関連した制約事項と前提事項が、JavaCompute ノード用の Java コードの開発時にも適用されます。Java でのメッセージ処理ノードまたは出力ノードの作成を参照してください。フローに対して実行されるスレッドの数 (追加インスタンスまたは複数の入力ノードの結果として) に関係なく、JavaCompute ノードのインスタンスは 1 つだけ作成されます。 したがって、ユーザー Java コードはすべて、スレッド・セーフでしかも再入可能でなければなりません。 詳しくは、ユーザー定義拡張機能の実行モデルおよびユーザー定義拡張機能のスレッド化に関する考慮事項を参照してください。
JavaCompute ノードをダブルクリックすると、「新規 JavaCompute ノード・クラス」 ウィザードが開きます。このウィザードは、新規の Java プロジェクトと、スケルトン・コードの入った Java クラスの作成の手続きを行います。このスケルトン・コードは、Java エディターで表示されます。 JavaCompute ノードおよび提供されるスケルトン・コードまたはテンプレートの例の Java コードの作成については、JavaCompute ノードに対する Java コードの作成を参照してください。 初めてノードをダブルクリックするのではない場合、Java コードが表示されます。
JavaCompute ノードの動作をカスタマイズするには、Java ステートメントをコーディングします。例えば、入力メッセージ、データベースの内容 (変更なし、または変更あり)、または新しいデータを使って 1 つ以上の新規出力メッセージを作成するようにこのノードをカスタマイズできます。 例えば、データベースからの値を追加することにより入力メッセージ内の値を変更し、その結果を出力メッセージ内のフィールドに保管することもできます。
必要な Java ステートメントは、この JavaCompute ノードに関連付けられた Java ファイル内にコーディングします。
このノード用の Java ファイルが存在していない場合、JavaCompute ノードを右クリックして、 「Java をオープン」をクリックすると、新規 Java ファイルが作成され、「エディター」ビューにオープンします。ファイルが既に存在する場合には、「Java クラス」プロパティーの近くにある「参照」をクリックすると、「JavaCompute ノード・タイプの選択」ウィンドウが表示され、このメッセージ・フローがアクセスできる Java クラスがリストされます。 適切な Java クラスを選択して、「OK」をクリックします。 マッチングするタイプのリストは、「選択」フィールドに 1 つ以上の文字が入力されたときに適切な Java クラスを示します。 「選択」 フィールドに 「*」 を入力すると、すべての Java クラスが表示されます。
JavaCompute ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 JavaCompute ノードのインスタンスを Java クラスに関連付けるには、ノードのプロパティーを構成します。ノードのプロパティーが、「プロパティー」ビューに表示されます。ノードのプロパティーを「プロパティー」ダイアログに表示するには、ノードを右クリックしてから「プロパティー」をクリックします。 値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、アスタリスクが表示されます。
JavaCompute ノードのターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる入力ターミナル。 |
Failure | 計算時に障害が検出された場合、入力メッセージがルーティングされる出力ターミナル。 (「妥当性検査」プロパティーが設定されていても、ノードの Failure ターミナルへ伝搬されたメッセージは検査されません。) |
Out | 変換されたメッセージがルーティングされる出力ターミナル。 |
Alternate | Out ターミナルの代りに変換済みメッセージのルート先に指定できる、代替の出力ターミナル。 |
以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、アスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できます)。
JavaCompute ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | ノード・タイプ: JavaCompute | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
JavaCompute ノードには、次の表で説明されている基本プロパティーがあります。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
Java クラス | はい | いいえ | なし | このノードで使用される Java クラスの名前。入力する名前は、メッセージ・フロー・プロジェクトのプロジェクト参照で使用可能な Java クラスのリストに表示されていなければなりません。 |
JavaCompute ノードの「パーサー・オプション」のプロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
構文解析のタイミング | はい | いいえ | 「要求時」 | このプロパティーは、入力メッセージを構文解析する時を制御します。
有効な値は、「要求時」、「即時」、および「完全」です。
デフォルトで、このプロパティーは「要求時」に設定されます。これにより、部分構文解析によって構文解析されるまで、妥当性検査が遅延します。この値を「即時」に変更すると、部分構文解析はオーバーライドされて、メッセージ内のすべてのものが構文解析および妥当性検査されます。ただし、構成が「選択」または「メッセージ」に指定された複合タイプで、この時点で解決できずに、妥当性検査の失敗を引き起こすものは除きます。この値を「完全」に変更すると、部分構文解析はオーバーライドされて、メッセージ内のすべてのものが構文解析および妥当性検査されます。 このプロパティーに関する詳しい説明については、要求時の構文解析を参照してください。 |
MQRFH2C コンパクト・パーサーを MQRFH2 ドメインに使用 | いいえ | いいえ | 選択されていない | このプロパティーは、MQRFH2 パーサーの代わりに、MQRFH2C コンパクト・パーサーを MQRFH2 ヘッダーに使用するかどうかを制御します。 |
XMLNSC コンパクト・パーサーを XMLNS ドメインに使用 | いいえ | いいえ | 選択されていない | このプロパティーを設定すると、出力 MQRFH2 が XMLNSC パーサーではなく XMLNS パーサーを指定して、外部アプリケーションが変更されないようにします。出力メッセージに MQRFH2 ヘッダーが含まれていない場合は、このプロパティーは影響しません。 |
混合内容の保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーが入力メッセージ内に混合テキストを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、混合テキスト用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、混合テキストは無視されて、エレメントは作成されません。 |
コメントの保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーが入力メッセージ内にコメントを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、コメント用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、コメントは無視されて、エレメントは作成されません。 |
処理命令の保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーが入力メッセージ内に処理命令を検出したとき、これらのメッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、処理命令用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、処理命令は無視されて、エレメントは作成されません。 |
JavaCompute ノードの「妥当性検査」プロパティーについては、次の表に説明されています。
メッセージ・セットに照らしてメッセージの本体をパーサーで妥当性検査するには、妥当性検査プロパティーを設定します。 メッセージがノードの Failure ターミナルに伝搬される場合には、妥当性検査は行われません。 詳細については、メッセージの妥当性検査および妥当性検査プロパティーを参照してください。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
妥当性検査 | いいえ | はい | なし | このプロパティーは、妥当性検査が行われるかどうか、および妥当性検査の対象となるメッセージの部分を制御します。 有効な値は、「なし」、「内容と値」、 「内容」、および「継承」です。 |
失敗時の処置 | いいえ | いいえ | 例外 | このプロパティーは、妥当性検査で障害が発生した場合の動作を制御します。 「妥当性検査」が「内容」または「内容と値」に設定されている場合にのみ、このプロパティーを設定できます。有効な値は、「ユーザー・トレース」、「ローカル・エラー・ログ」、「例外」、および「例外リスト」です。 |
すべての値制約を含める | いいえ | いいえ | 選択されている | このプロパティーは編集できません。チェック・ボックスが選択されると (デフォルト)、すべての値制約が妥当性検査に含まれます。 |
修正 | いいえ | いいえ | なし | このプロパティーは編集できません。最小限の修正が行われます。 有効な値は、「なし」、および「フル」です。 |