指定された ODBC データ・ソース内のデータベースと対話するには、Database ノードを使用します。
対話の種類は、入力メッセージからデータを指定し、そのデータを何らかの形式に変換して (例えば、計算を実行するなど)、その結果をデータベース表に割り当てるなどの ESQL ステートメントをコーディングすることにより定義します。
プロパティーを設定することにより、データベースに対する更新をすぐにコミットするか、メッセージ・フローが完了するまで更新のコミットを待つか、またはメッセージ・フローの全体的な完了状況に応じてロールバックするかを制御することができます。
Database ノードは、パレットの 「データベース」ドロワーに含まれていて、WebSphere® Message Broker Toolkit 内では次のアイコンによって表されます。
サンプルに関する情報は、WebSphere Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。
モニター 20 個の注文を受ける状況を考えてみてください。 ウェアハウスに十分な数のモニターがある場合、在庫データベースから在庫レベルを減らしたいと考えます。 Database ノードを使ってモニターが十分にあることを確認し、データベース内の数量フィールドの値を減らすことができます。
Database ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。 値を入力する必要のある (デフォルト値が定義されていないプロパティー) すべての必須プロパティーには、アスタリスクが表示されます。
Database ノードのターミナルについては、次の表に説明されています。 構文を含む PROPAGATE ステートメントの詳細については、PROPAGATE ステートメントを参照してください。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる入力ターミナル。 |
Failure | 計算時に障害が検出された場合、入力メッセージが伝搬される出力ターミナル。 「警告をエラーとして扱う」を選択した場合、処理が正常に完了してもメッセージはノードからこのターミナルに伝搬されます。 |
Out | ノードでの処理が終了した時に、変換されたメッセージがルーティングされる出力ターミナル。 変換されたメッセージは、PROPAGATE ステートメントによってこのターミナルにルーティングされる場合もあります。 |
Out1 | 変換されたメッセージが PROPAGATE ステートメントによってルーティングされる第 1 の代替出力ターミナル。 |
Out2 | 変換されたメッセージが PROPAGATE ステートメントによってルーティングされる第 2 の代替出力ターミナル。 |
Out3 | 変換されたメッセージが PROPAGATE ステートメントによってルーティングされる第 3 の代替出力ターミナル。 |
Out4 | 変換されたメッセージが PROPAGATE ステートメントによってルーティングされる第 4 の代替出力ターミナル。 |
以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、アスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。
Database ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | ノード・タイプ、Database | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
Database ノードの「基本」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
データ・ソース | いいえ | はい | このノードに関連付けられた ESQL (「ステートメント」プロパティーで識別される) で参照する表が含まれるデータベースの ODBC データ・ソース名。 この名前は、このメッセージ・フローが実行されるシステム上で認識されるとおりに、該当するデータベースを識別します。 ブローカーは、mqsisetdbparms コマンドで指定したユーザー ID およびパスワード情報を使用して、このデータベースに接続します。 このノードに関連する ESQL に PASSTHRU ステートメントまたは SELECT 関数およびデータベース参照が含まれている場合には、「データ・ソース」プロパティーの値を指定する必要があります。 |
dataSource | |
ステートメント | いいえ | いいえ | Database | データベースに対して使用されるステートメントを含む、ESQL ファイル内のモジュールの名前。 モジュール名に 1 つ以上のスペースを含めるには、名前を二重引用符で囲みます。 デフォルトで <message_flow_name>.esql という名前を持つこの ESQL ファイルには、ESQL を必要とするメッセージ・フロー内のすべてのノード用の ESQL が含まれています。 特定のノードに関連したコードの部分はモジュールと呼ばれます。 表と対話する ESQL ステートメントをコーディングする場合は、それらの表がこのデータベース内に存在することが前提とされます。 存在しない場合には、実行時にブローカーによってデータベース・エラーが生成されます。 Database ノードの動作をカスタマイズするための ESQL ステートメントは、この Database ノードのインスタンスが含まれるメッセージ・フローに関連付けられた ESQL ファイル内にコーディングします。 このメッセージ・フロー用の ESQL ファイルが存在していない場合、Database ノードをダブルクリックするか、そのノードを右クリックしてから「ESQL のオープン」をクリックし、ESQL エディター・ビューに新しい ESQL ファイルを作成してオープンします。 ESQL ファイルが存在する場合、「ステートメント」プロパティーの隣にある「参照」をクリックすると、「モジュール選択」ダイアログ・ボックスが表示され、このメッセージ・フローからアクセスできる ESQL ファイルで定義されている選択可能な Database ノード・モジュールがリストされます (ESQL ファイルは従属する他のプロジェクトで定義することができます)。 適切なモジュールを選択して、「OK」をクリックします。 使用できる適切なモジュールがない場合は、リストは空になります。 指定されたモジュールが存在しない場合は作成され、エディターはそれを表示します。 ファイルとモジュールが存在する場合、エディターは正しいモジュールを強調表示します。 新規または既存の ESQL ファイル内でこのノード用にモジュール・スケルトンが作成された場合、以下の ESQL が含まれます。 この例では、デフォルトのモジュール名が表示されています。
自分で ESQL モジュールを作成する場合、このスケルトンを正確に作成します。 デフォルトの名前を更新することができますが、指定する名前は、対応するノード・プロパティー「ステートメント」と一致することを確認してください。 このノードをカスタマイズするには、ESQL を、BEGIN ステートメントと RETURN TRUE の間に追加します。 このモジュールでは、SET、WHILE、DECLARE、および IF を含む ESQL ステートメントすべてを 使用できますが、(Compute ノードとは異なり) Database ノードは、入力ターミナルで受信した メッセージを変更せずに出力ターミナルに伝搬します。 したがって、Filter ノードと同様に、Database ノードには参照されるメッセージが 1 つしかありません。 |
|
トランザクション | はい | いいえ | 自動 | ノードのトランザクション・モードです。 値は以下のとおりです。
|
|
警告をエラーとして扱う | はい | いいえ | 選択されていない | データベース警告メッセージをエラーとして扱い、ノードから出力メッセージを Failure ターミナルに伝搬する場合は、「警告をエラーとして扱う」を選択します。 最初、このチェック・ボックスはチェックされていません。 このチェック・ボックスを選択した場合、ノードはデータベースからのすべての正の戻りコードをエラーとして扱い、負の戻りコードに対する処理と同じ方法で例外を生成するか、問題がより重大である場合はエラーを生成します。 このチェック・ボックスを選択しなかった場合、ノードは警告を通常の戻りコードとして扱い、例外を生成しません。 生成される最も重大な警告は「見つかりません」であり、これはほとんどの環境で標準的な戻りコードとして扱って差し支えありません。 |
|
データベース・エラーで例外をスローする | はい | いいえ | 選択されている | データベース・エラーが検出されたときにブローカーが例外を生成するように設定する場合は、「データベース・エラーで例外をスローする」を選択します。 最初、このチェック・ボックスは選択されています。
このチェック・ボックスのチェックを外す場合、データベース呼び出しを行うたびに返される可能性のあるデータベース・エラーの有無を調べるために ESQL を含めます (この情報を取得するには SQLCODE および SQLSTATE を使うことができます)。 エラーが発生した場合、メッセージ・フロー内のエラーを処理してブローカーとデータベースの整合性を確認する必要があります。ブローカーによるデフォルト・エラー処理を使用しないように選択してあるため、自分でエラーを処理しない限り、エラーは無視されます。 例えば、このノードで例外をスローするために ESQL THROW ステートメントを含めることができます。 あるいは、Throw ノードを使用して後で独自の例外を生成することができます。 |
|
フロー開始前に接続 |
いいえ |
はい |
選択されていない |
デフォルトでは、メッセージ・フロー内で必要とされるときに、ブローカーがデータ・ソースに接続します。 このチェック・ボックスを選択すると、メッセージ・フローの処理中ではなく、フローがメッセージを受け取るよりも前にデータ・ソース接続が行われます。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
イベント | いいえ | いいえ | なし | ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードに対してもモニター・イベントは定義されません。 ノードのモニター・イベントを作成、変更、または削除するには、「追加」、「編集」、および「削除」を使用します。詳しくは、モニター・プロパティーを使用したモニター・イベント・ソースの構成を参照してください。 「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。 |