DataDelete ノード

このトピックには、以下のセクションが含まれています。

目的

指定された ODBC データ・ソース内のデータベースと対話するには、DataDelete ノードを使用します。DataDelete ノードは Database ノードの特殊な形で、対話は、データベース内の表の 1 つ以上の行を削除することに制限されています。 入力メッセージからのデータを何らかの方法で使用して必要なアクションを識別するマッピング・ステートメントを定義することにより、削除する情報を定義します。

プロパティーを設定することにより、データベースに対する更新をすぐにコミットするか、メッセージ・フローが完了するまで更新のコミットを待つか、またはメッセージ・フローの全体的な完了状況に応じてロールバックするかを制御することができます。

ワークベンチでは、DataDelete ノードは次のアイコンで表されます。

DataDelete ノード・アイコン

メッセージ・フロー内でのこのノードの使用

限定されたプロモーションを実行する状況を考えてみてください。品物はプロモーション期間中だけ販売され、お客様は一人 につき 1 つだけしかその品物を買うことができません。販売物の在庫が無くなった場合、在庫データベースから品物の詳細情報を削除する必要があります。 在庫の最後の 1 個に対する注文を含んだメッセージを受信した時、DataDelete ノードがトリガーされ、その品物の詳細情報すべてをデータベースから削除します。

DataDelete ノードの構成

DataDelete ノードのインスタンスをメッセージ・フローに入れると、DataDelete ノードを構成することができます。 エディター・ビューでノードを右クリックし、「プロパティー」をクリックします。ノードの基本プロパティーが表示されます。

値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、プロパティー・ダイアログにアスタリスクが表示されます。

以下のように、DataDelete ノードを構成します。

  1. データ・ソース」に、メッセージ・フローが実行されるシステム上で該当するデータベースが認識される名前を指定します。 ブローカーは、mqsicreatebrokermqsichangebroker、または mqsisetdbparms コマンドを使用してセットアップしたユーザー ID およびパスワード情報を使用して、このデータベースに接続します。

    z/OS システムの場合、ブローカーは、ブローカーが開始するタスクの ID を使用するか、または mqsisetdbparms コマンド JCL の、カスタマイズ・データ・セット <hlq>.SBIPPROC の BIPSDBP で指定されたユーザー ID とパスワードを使用します。

  2. ステートメント」に、このノードで実行される関連マッピング・ルーチンを指定します。 デフォルトでは、マッピング・ルーチンに割り当てられる名前は、ルーチンが定義されているマッピング・ファイルの名前と同一です。 ファイルのデフォルト名は、メッセージ・フローの名前にメッセージ・フローに組み込む際のノードの名前を連結したものです (例えば、メッセージ・フロー MFlow1 の最初の DataDelete ノードの場合は、MFlow1_DataDelete.mfmap)。 スペースを含む値は指定できません。

    この入力フィールドの隣の「ブラウズ」をクリックすると、このノードからアクセス可能なすべての使用可能なマッピング・ルーチンをリストしたダイアログが表示されます。 必要なルーチンを選択し、「OK」をクリックします。 ルーチン名が「ステートメント」に設定されます。

    このノードに関連するマッピング・ルーチンを処理するには、ノードを右クリックして「マッピングを開く」をクリックします。 マッピング・ルーチンが存在しない場合は、デフォルト名で、デフォルト・ファイルの中に作成されます。 すでに存在する場合には、「ナビゲーター」ビューで <flow_name>_<node_name>.mfmap ファイルを開くこともできます。

    マッピング・ルーチンは、関連するノードのタイプに特有のものです。 DataDelete ノード用に開発したマッピング・ルーチンを、マッピングを使用する他のノード (DataInsert ノードなど) と一緒に使用することはできません。 マッピング・ルーチンを作成した場合、それを他のマッピング・ルーチンから呼び出すことはできません。 ただし、ESQL ルーチンから呼び出すことは可能です。

  3. ドロップダウン・メニューから「トランザクション」を選択します。 値は以下のとおりです。
    • 「自動」(デフォルト)。 DataDelete ノードが属するメッセージ・フローが正常に行われると、そのメッセージ・フローがコミットされます。 つまり、マッピングで定義したアクションが実行され、メッセージはメッセージ・フローを通して継続します。 メッセージ・フローは、失敗するとロールバックされます。 そのため、「自動」を選択した場合、データベース上で DataDelete ノードのアクションをコミットするかロールバックするかは、メッセージ・フロー全体の成功または失敗に依存します。
    • 「コミット」。 メッセージ・フロー全体の成功または失敗に関係なく、このノードに接続しているデータベースのメッセージ・フローで実行されたコミットされていないアクションをコミットしたい場合は、「コミット」を選択します。メッセージ・フロー自体が失敗しても、データベースへの変更はコミットされます。
  4. プロパティー・ダイアログ・ナビゲーターで「基本」を選択し、次の 2 つのチェック・ボックスを選択するかまたはチェックを外します。
    • データベース警告メッセージをエラーとして扱い、ノードから出力メッセージを failure ターミナルに伝搬したい場合は、「警告をエラーとして扱う」チェック・ボックスを選択します。 最初、このチェック・ボックスはチェックされていません。

      このボックスを選択した場合、ノードはデータベースからのすべての正の戻りコードをエラーとして扱い、負の戻りコードについてと同じ方法で例外を生成するか、問題がより重大である場合はエラーを生成します。

      このボックスを選択しなかった場合、ノードは警告を通常の戻りコードとして扱い、例外を生成しません。 生成される最も重大な警告は「見つかりません」であり、これはほとんどの環境で正常な戻りコードとして支障なく扱うことができます。

    • データベース・エラーが検出されたときにブローカーが例外を生成するようにしたい場合は、「データベース・エラーで例外をスローする」チェック・ボックスを選択します。 最初、このチェック・ボックスは選択されています。

      このチェック・ボックスのチェックを外す場合には、メッセージ・フロー内のエラーを処理してブローカーとデータベースの整合性を確認する必要があります。ブローカーによるデフォルト・エラー処理を呼び出さないように選択してあるため、自分でエラーを処理しない限り、エラーは無視されます。 例えば、エラー処理サブルーチンに failure ターミナルを接続できます。

  5. 簡略説明または詳細説明 (あるいはその両方) を入力するには、プロパティー・ダイアログ・ナビゲーターの「説明」を選択します。
  6. 「適用」をクリックすると、プロパティー・ダイアログを閉じずに DataDelete ノードが変更されます。 「OK」をクリックすると、変更を適用してプロパティー・ダイアログを閉じます。

    「キャンセル」をクリックすると、ダイアログを閉じてプロパティーに対して行った変更をすべて破棄します。

ターミナルおよびプロパティー

DataDelete ノードのターミナルについては、次の表に説明されています。

ターミナル 説明
In ノードが処理するメッセージを受け入れる入力ターミナル。
Failure 計算時に障害が検出された場合、入力メッセージが伝搬される出力ターミナル。 「警告をエラーとして扱う」を選択した場合、処理が正常に完了してもメッセージはノードからこのターミナルに伝搬されます。
Out データベース・ステートメントの実行後にメッセージを出力する出力ターミナル。

以下の表でノードのプロパティーを説明します。M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、プロパティー・ダイアログにアスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローを bar ファイルに追加してデプロイするとき、値を変更できます)。

DataDelete ノードの「基本」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
データ・ソース いいえ はい   このノードに関連付けられたマッピング (「ステートメント」プロパティーで識別される) で参照する表が存在するデータベースの ODBC データ・ソース名。
ステートメント はい いいえ DataDelete データベースまたはメッセージ・ツリーに対して実行されるステートメントが含まれるマッピング・ルーチンの名前。 このルーチンは、このタイプのノードに固有のものです。
トランザクション はい いいえ 自動 ノードのトランザクション・モードです。「自動」または「コミット」を選択できます。
警告をエラーとして扱う はい いいえ 選択されていない データベース SQL 警告をエラーとして扱います。 チェック・ボックスを選択すると、このアクションが実行されます。
データベース・エラーで例外をスローする はい いいえ 選択されている データベース・エラーによりブローカーは例外をスローします。 チェック・ボックスを選択すると、このアクションが実行されます。

DataDelete ノードの説明プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
簡略説明 いいえ いいえ   ノードの簡単な説明
詳細説明 いいえ いいえ   メッセージ・フロー内のノードの目的を説明するテキスト
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ac04680_