Warehouse ノード

指定された ODBC データ・ソース内のデータベースと対話するには、Warehouse ノードを使用します。

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

目的

Warehouse ノードは、データベース内の表にメッセージ全体またはメッセージの一部 (あるいはその両方) を格納する、特殊な形式の Database ノードです。 入力メッセージからのデータを使用して必要なアクションを識別するマッピングを作成することにより、保管する情報を定義します。

Warehouse ノードは以下の目的で使用できます。

  • ブローカーを通過するメッセージの監査証跡の保守
  • ブローカーを通過したメッセージのオフラインまたはバッチ処理 (データ・マイニング)
  • ブローカー内で選択したメッセージを再処理するソースとして

標準的なデータベース照会およびマイニング技法を使用して、ウェアハウス内に保管したメッセージを取り出すことができます。 (WebSphere® Message Broker による明示的なサポートはありません。)

以下の項目を作成または指定する必要があります。

  • メッセージ・セットおよびメッセージの形式の入力データ
  • データベースへの ODBC 接続
  • メッセージを保管するデータベースおよびデータベース表
  • 表の少なくとも 2 つの列。1 つはバイナリー・オブジェクト (メッセージ) のためのもので、もう 1 つはタイム・スタンプのためのものです

Warehouse ノードは、パレットの 「データベース」ドロワーに含まれていて、ワークベンチ内では次のアイコンによって表されます。

Warehouse ノード・アイコン

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

Warehouse ノードを使用すると、そのノードに関連するデータベースに以下のエレメントを保管することを選択できます。
  • メッセージ全体と、関連するタイム・スタンプ (オプション)。 メッセージはバイナリー・オブジェクトとしてタイム・スタンプとともにそれぞれの列に保管されます。 このオプションには以下の 2 つの利点があります。
    • ウェアハウスに入れるデータの使用方法を前もって決定しておく必要がありません。 これは、データすべてを保管したので、後日すべてのデータを取り出して、データ・マイニング・ツールを適用することができるためです。
    • ブローカーを通過するメッセージのタイプごとに特定のデータベース・スキーマを定義する必要がありません。 複雑なシステムではさまざまなメッセージ・タイプが処理されることがあり、メッセージ・タイプごとに固有のスキーマを定義することのオーバーヘッドが極端に大きくなる可能性があります。 共通のスキーマを使用してそれぞれのメッセージを正規のウェアハウス形式に変換する Compute ノードを各 Warehouse ノードの前に置くことができますが、メッセージ全体をバイナリー・オブジェクトとして保管することもできます。
  • 選択したメッセージのパーツと、オプションでそのメッセージ・タイプ用の定義済みデータベース・スキーマを必要とする関連するタイム・スタンプ。 メッセージは本来のタイプにマップされます。例えばメッセージ内の文字ストリングは文字ストリングとしてデータベースに保管されます。

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

Warehouse ノードのインスタンスをメッセージ・フローに入れたら、そのノードを構成することができます。詳しくは、メッセージ・フロー・ノードの構成を参照してください。ノードのプロパティーが、「プロパティー」ビューに表示されます。ノードのプロパティーを「プロパティー」ダイアログに表示するには、ノードを右クリックしてから「プロパティー」をクリックします。 (Warehouse ノードをダブルクリックすると、「新規メッセージ・マップ」ダイアログ・ボックスが開きます。) 値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、アスタリスクが表示されます。

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

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

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

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

プロパティー M C デフォルト 説明
ノード名 いいえ いいえ Warehouse ノードの名前。
簡略説明 いいえ いいえ   ノードの簡単な説明
詳細説明 いいえ いいえ   メッセージ・フロー内のノードの目的を説明するテキスト

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

プロパティー M C デフォルト 説明
データ・ソース いいえ はい   このノードに関連付けられたマッピング (「フィールド・マッピング」プロパティーで識別される) で参照する表を格納しているデータベースの ODBC データ・ソース名。この名前は、このメッセージ・フローが実行されるシステム上で該当するデータベースを識別します。 ブローカーは、mqsicreatebrokermqsichangebroker、または mqsisetdbparms コマンドを使用してセットアップしたユーザー ID およびパスワード情報を使用して、このデータベースに接続します。

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

フィールド・マッピング はい いいえ Warehouse データベースまたはメッセージ・ツリーに対して実行されるステートメントが含まれるマッピング・ルーチンの名前。

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

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

このノードに関連するマッピング・ルーチンを処理するには、ノードをダブルクリックするか、またはノードを右クリックして「マッピングを開く」を選択します。 マッピング・ルーチンが存在しない場合は、デフォルト名で、デフォルト・ファイルの中に作成されます。 このファイルがすでに存在する場合には、「ブローカー開発」ビューで flow_name_node_name.msgmap ファイルを開くこともできます。

マッピング・ルーチンの内容は、データベースに保管される情報、およびその形式を決定します。 例えば、各メッセージのすべてまたは一部分のみを保管することができます。 また、データをバイナリー・データとして保管したり、各フィールドをメッセージ内と同じ形式で保管することができます (例えば、メッセージ内の文字フィールドをデータベース内で文字として保管します)。

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

マッピング・ファイルでの作業とその内容の定義について詳しくは、メッセージ・マッピングの開発を参照してください。

トランザクション はい いいえ 自動 ノードのトランザクション・モードです。必要な値を選択します。
  • 「自動」(デフォルト) を選択した場合、Warehouse ノードが属するメッセージ・フローが正常に行われると、そのメッセージ・フローがコミットされます。つまり、マッピングで定義したアクションが実行されて、メッセージはメッセージ・フローを通して継続します。 メッセージ・フローは、失敗するとロールバックされます。 そのため、「自動」を選択した場合、データベース上で Warehouse ノードのアクションをコミットするかロールバックするかは、メッセージ・フロー全体の成功または失敗に依存します。
  • 「コミット」を選択すると、メッセージ・フロー全体の成功または失敗に関係なく、このメッセージ・フローで実行されるコミットされていないアクションは、このノードに接続しているデータベースにコミットされます。 メッセージ・フロー自体が失敗しても、データベースへの変更はコミットされます。
警告をエラーとして扱う はい いいえ 選択されていない データベース警告メッセージをエラーとして扱い、ノードから出力メッセージを Failure ターミナルに伝搬する場合は、「警告をエラーとして扱う」を選択します。 デフォルトでは、このチェック・ボックスはチェックされていません。

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

このチェック・ボックスを選択しなかった場合、ノードは警告を標準の戻りコードとして扱い、例外を生成しません。 生成される最も重大な警告は「見つかりません」であり、これはほとんどの環境で標準的な戻りコードとして扱って差し支えありません。

データベース・エラーで例外をスローする はい いいえ 選択されている データベース・エラーが検出されたときにブローカーが例外を生成するように設定する場合は、「データベース・エラーで例外をスローする」を選択します。 デフォルトでは、チェック・ボックスは選択済みになっています。

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

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:42:44

ac04730_