指定された ODBC データ・ソース内のデータベースと対話するには、DataInsert ノードを使用します。
このトピックには、以下のセクションが含まれています。
DataInsert ノードは特殊な形式の Database ノードであって、対話は、データベースの表に 1 つ以上の行を挿入することに制限されています。 入力メッセージからのデータを使用して必要なアクションを定義するマッピング・ステートメントを定義することにより、挿入する情報を指定します。
プロパティーを設定することにより、データベースに対する更新をすぐにコミットするか、メッセージ・フローが完了するまで更新のコミットを待つか、またはメッセージ・フローの全体的な完了状況に応じてロールバックするかを制御することができます。
DataInsert ノードは、パレットの 「データベース」ドロワーに含まれていて、ワークベンチ内では次のアイコンによって表されます。
会社で新製品を開発した状況を考えてみてください。 製品についての詳細情報が開発部門から送られ、そのメッセージから情報を抽出して、在庫データベースの新しい行として追加します。
DataInsert ノードのインスタンスをメッセージ・フローに入れたら、そのノードを構成することができます。詳しくは、メッセージ・フロー・ノードの構成を参照してください。ノードのプロパティーが、「プロパティー」ビューに表示されます。ノードのプロパティーを「プロパティー」ダイアログに表示するには、ノードを右クリックしてから「プロパティー」をクリックします。 (DataInsert ノードをダブルクリックすると、「新規メッセージ・マップ」ダイアログ・ボックスが開きます。) 値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、アスタリスクが表示されます。
DataInsert ノードのターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる入力ターミナル。 |
Failure | 計算時に障害が検出された場合、入力メッセージが伝搬される出力ターミナル。 「警告をエラーとして扱う」を選択した場合、処理が正常に完了してもメッセージはノードからこのターミナルに伝搬されます。 |
Out | データベース・ステートメントの実行後にメッセージを出力する出力ターミナル。 |
以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、アスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できます)。
DataInsert ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | DataInsert | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
DataInsert ノードの「基本」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
データ・ソース | いいえ | はい | このノードに関連付けられたマッピング (「ステートメント」プロパティーで識別される) で参照する表を格納しているデータベースの ODBC データ・ソース名。この名前は、このメッセージ・フローが実行されるシステム上で該当するデータベースを識別します。
ブローカーは、mqsicreatebroker、mqsichangebroker、または mqsisetdbparms コマンドを使用してセットアップしたユーザー ID およびパスワード情報を使用して、このデータベースに接続します。
|
|
ステートメント | はい | いいえ | DataInsert | データベースまたはメッセージ・ツリーに対して実行されるステートメントが含まれるマッピング・ルーチンの名前。
このルーチンは、このタイプのノードに固有のものです。デフォルトでは、マッピング・ルーチンに割り当てられる名前は、ルーチンが定義されているマッピング・ファイルの名前と同一です。
ファイルのデフォルト名は、メッセージ・フローの名前にメッセージ・フローに組み込む際のノードの名前を連結したものです (例えば、メッセージ・フロー MFlow1 の最初の DataInsert ノードの場合は、MFlow1_DataInsert.msgmap)。
スペースを含む値は指定できません。
この入力フィールドの隣の「参照」をクリックすると、このノードからアクセスできるすべての選択可能なマッピング・ルーチンをリストしたダイアログ・ボックスが表示されます。 必要なルーチンを選択し、「OK」をクリックします。ルーチン名が「ステートメント」に設定されます。 このノードに関連するマッピング・ルーチンを処理するには、ノードをダブルクリックするか、またはノードを右クリックして「マッピングを開く」を選択します。 マッピング・ルーチンが存在しない場合は、デフォルト名で、デフォルト・ファイルの中に作成されます。 このファイルがすでに存在する場合には、「ブローカー開発」ビューで flow_name_node_name.msgmap ファイルを開くこともできます。 マッピング・ルーチンは、関連するノードのタイプに特有のものです。 DataInsert ノード用に開発したマッピング・ルーチンを、 マッピングを使用する他のノード (DataDelete ノードなど) と一緒に使用することはできません。 マッピング・ルーチンを作成した場合、それを他のマッピング・ルーチンから呼び出すことはできません。 ただし、ESQL ルーチンから呼び出すことは可能です。 マッピング・ファイルでの作業とその内容の定義について詳しくは、メッセージ・マッピングの開発を参照してください。 |
トランザクション | はい | いいえ | 自動 | ノードのトランザクション・モードです。値は以下のとおりです。
|
警告をエラーとして扱う | はい | いいえ | 選択されていない | データベース警告メッセージをエラーとして扱い、ノードから出力メッセージを failure ターミナルに伝搬する場合は、「警告をエラーとして扱う」を選択します。
デフォルトでは、このチェック・ボックスはチェックされていません。
このチェック・ボックスを選択した場合、ノードはデータベースからのすべての正の戻りコードをエラーとして扱い、負の戻りコードに対する処理と同じ方法で例外を生成するか、問題がより重大である場合はエラーを生成します。 このチェック・ボックスを選択しなかった場合、ノードは警告を標準の戻りコードとして扱い、例外を生成しません。 生成される最も重大な警告は「見つかりません」であり、これはほとんどの環境で標準的な戻りコードとして扱って差し支えありません。 |
データベース・エラーで例外をスローする | はい | いいえ | 選択されている | データベース・エラーが検出されたときにブローカーが例外を生成するように設定する場合は、「データベース・エラーで例外をスローする」を選択します。
デフォルトでは、チェック・ボックスは選択済みになっています。 このチェック・ボックスのチェックを外した場合には、ブローカーとデータベースの整合性を保つため、メッセージ・フロー内でエラーを処理する必要があります。ブローカーによるデフォルト・エラー処理を呼び出さないように選択してあるため、自分でエラーを処理しない限り、エラーは無視されます。 例えば、エラー処理サブルーチンに failure ターミナルを接続することができます。 |