Java™ 言語を使ってメッセージを処理するには、JavaCompute ノードを使用します。
このノードを使用して、以下のタスクを完了することができます。
ノードによって使用される Java コードは、Eclipse Java プロジェクト内に保管されます。
JavaCompute ノードはパレットの「変換」ドロワーに含まれていて、WebSphere® Message Broker Toolkit 内では次のアイコンによって表されます。
JavaCompute ノードは、Java ユーザー定義ノードと同じ実行モデルを使用するので、Java ユーザー定義ノードに関連した制約事項と前提事項が、JavaCompute ノード用の Java コードの開発時にも適用されます。Java でのメッセージ処理ノードまたは出力ノードの作成を参照してください。 フローに対して実行されるスレッドの数 (追加インスタンスまたは複数の入力ノードの結果として) に関係なく、JavaCompute ノードのインスタンスは 1 つだけ作成されます。 したがって、ユーザー Java コードはすべて、スレッド・セーフでしかも再入可能でなければなりません。 詳しくは、ユーザー定義拡張機能の実行モデルおよびユーザー定義拡張機能のスレッド化に関する考慮事項を参照してください。
JavaCompute ノードをダブルクリックすると、「新規 Java 計算ノード・クラス」 ウィザードが開きます。 このウィザードは、新規の Java プロジェクトと、スケルトン・コードの入った Java クラスの作成の手続きを行います。 このスケルトン・コードは、Java エディターで表示されます。 JavaCompute ノードおよび提供されるスケルトン・コードまたはテンプレートの例の Java コードの作成については、JavaCompute ノードに対する Java コードの作成を参照してください。 初めてノードをダブルクリックするのではない場合、Java コードが表示されます。
public void onDelete()
{
// perform node cleanup if necessary
}
onInitialize() メソッドは、デプロイメント中、またはブローカーの始動時に呼び出されます。 このメソッドは、デプロイメント中に、デプロイメントがコミットされる前に呼び出されます。 他のノードの場合、初期化の際に例外がスローされる可能性があります。そのため、対象のノードで onInitialize() メソッドが作動する場合であっても、フローでデプロイが失敗します。 onInitialize() メソッドで例外がスローされる場合、フローでデプロイが失敗したか、フローを開始できなかったかのどちらかです。 このため、正常に作動するようにタスクすべてを完了させてください。
そうしないと、onInitialize() メソッドは常に失敗することになります。 ブローカーは、再始動するまでフローの開始を再試行しません。 再試行が必要と思われる外部接続を初期化することが必要な場合、フローの最初のメッセージでそれを行い、フローが必要に応じてトランザクションを再試行できるようにします。サンプルに関する情報は、WebSphere Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。
JavaCompute ノードの動作をカスタマイズするには、Java ステートメントをコーディングします。 例えば、入力メッセージ、データベースの内容 (変更なし、または変更あり)、または新しいデータを使って 1 つ以上の新規出力メッセージを作成するようにこのノードをカスタマイズできます。 例えば、データベースからの値を追加することにより入力メッセージ内の値を変更し、その結果を出力メッセージ内のフィールドに保管することもできます。
必要な Java ステートメントは、この JavaCompute ノードに関連付けられた Java ファイル内にコーディングします。
このノード用の Java ファイルが存在していない場合、JavaCompute ノードを右クリックして、 「Java をオープン」をクリックすると、新規 Java ファイルが作成され、「エディター」ビューにオープンします。 ファイルが既に存在する場合には、「Java クラス」プロパティーの近くにある「参照」をクリックすると、「JavaCompute ノード・タイプの選択」ウィンドウが表示されます。 少なくとも 1 文字を「選択」フィールドに入力すると、一致する Java クラスがリストされます。 検索ストリングの一部として、任意の文字を表すアスタリスク (*) を使用できます (例えば a*b)。 適切な Java クラスを選択して、「OK」をクリックします。
JavaCompute ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 JavaCompute ノードのインスタンスを Java クラスに関連付けるには、ノードのプロパティーを構成します。 ノードのプロパティーが、「プロパティー」ビューに表示されます。 値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、アスタリスクが表示されます。
JavaCompute ノードのターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる入力ターミナル。 |
Failure | 計算時に障害が検出された場合、入力メッセージがルーティングされる出力ターミナル。 (「妥当性検査」プロパティーが設定されていても、ノードの Failure ターミナルへ伝搬されたメッセージは検査されません。) |
Out | 変換されたメッセージがルーティングされる出力ターミナル。 |
Alternate | Out ターミナルの代りに変換済みメッセージのルート先に指定できる、代替の出力ターミナル。 |
以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、アスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。
JavaCompute ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | ノード・タイプ: JavaCompute | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
JavaCompute ノードの基本プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
Java クラス | はい | いいえ | なし | このノードで使用される Java クラスの名前。 入力する名前は、メッセージ・ブローカー・プロジェクトのプロジェクト参照で使用可能な Java クラスのリストに表示されていなければなりません。 すでに存在するファイルを選択するには、「参照」をクリックします。 少なくとも 1 文字を「選択」フィールドに入力すると、一致する Java クラスがリストされます。 検索ストリングの一部として、任意の文字を表すアスタリスク (*) を使用できます (例えば a*b)。 適切な Java クラスを選択して、「OK」をクリックします。 |
Java クラス・ローダー・サービス | いいえ | はい | なし | このノードで使用される JavaClassLoader 構成可能サービスの名前。 名前が指定されない場合、実行グループと同じ名前の JavaClassLoader 構成可能サービスが存在するなら、それがこのノードで使用されます。 そうでない場合、JavaClassLoader 構成可能サービスは使用されません。 同じ JavaClassLoader 構成可能サービスを指定する実行グループ内のすべてのノードは、同じインスタンスのクラス・ローダーを使用します。 そのため、すべてのノードは同じメモリー内バージョンのクラスを使用します (同じ静的変数へのアクセスを含む)。 詳しくは、JavaCompute ノードのクラス・ロードを参照してください。 |
JavaCompute ノードの「パーサー・オプション」のプロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
XMLNSC コンパクト・パーサーを XMLNS ドメインに使用 | いいえ | いいえ | 選択されていない | このプロパティーを設定すると、出力 MQRFH2 が XMLNSC パーサーではなく XMLNS パーサーを指定して、外部アプリケーションが変更されないようにします。 出力メッセージに MQRFH2 ヘッダーが含まれていない場合は、このプロパティーは影響しません。 |
JavaCompute ノードの「妥当性検査」プロパティーについては、次の表に説明されています。
妥当性検査プロパティーを設定して、JavaCompute ノードによって生成されたメッセージの妥当性検査を行う方法を定義します。これらのプロパティーによって、入力メッセージの妥当性検査は行われません。 そのような妥当性検査が必要な場合には、入力ノードまたは先行する validation ノードによって妥当性検査がすでに行われていることが期待されます。 詳細については、メッセージの妥当性検査および妥当性検査プロパティーを参照してください。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
妥当性検査 | いいえ | はい | なし | このプロパティーは、妥当性検査が行われるかどうか、および妥当性検査の対象となるメッセージの部分を制御します。 有効な値は、「なし」、「内容と値」、「内容」、および「継承」です。 | validateMaster |
失敗時の処置 | いいえ | いいえ | 例外 | このプロパティーは、妥当性検査で障害が発生した場合の動作を制御します。 「妥当性検査」が「内容」または「内容と値」に設定されている場合にのみ、このプロパティーを設定できます。 有効な値は、「ユーザー・トレース」、「ローカル・エラー・ログ」、「例外」、および「例外リスト」です。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
イベント | いいえ | いいえ | なし | ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードに対してもモニター・イベントは定義されません。 ノードのモニター・イベントを作成、変更、または削除するには、「追加」、「編集」、および「削除」を使用します。詳しくは、モニター・プロパティーを使用したモニター・イベント・ソースの構成を参照してください。 「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。 |