実行時に、単一表インバウンド・データベース・アクティビティーは、データベース表の指定された列のいずれかの行でデータベース操作が行われたかどうかを、指定された時間間隔でポーリングします。
このセクションでは、以下の単一表インバウンド・データベース・アクティビティーを構成するための手順について説明します。
- 挿入対象行の取得 - 実行時に、「挿入対象行の取得」アクティビティーは INSERT トリガー・イベントからバッファー・テーブルに追加される行をポーリングします。
次に「挿入対象行の取得」アクティビティーは、バッファー・データを変数 (複数可) にマップします。
- 更新対象行の取得 - 実行時に、「更新対象行の取得」アクティビティーは UPDATE トリガー・イベントからバッファー・テーブルに追加される行をポーリングします。
次に「更新対象行の取得」アクティビティーは、バッファー・データを変数 (複数可) にマップします。
- 削除対象行の取得 - 実行時に、「削除対象行の取得」アクティビティーは DELETE トリガー・イベントからバッファー・テーブルに追加される行をポーリングします。
次に「削除対象行の取得」アクティビティーは、バッファー・データを変数 (複数可) にマップします。
図 1 は、UPDATE トリガー・イベントと「
更新対象行の取得」アクティビティーにおけるサンプル・データの転送を示しています。
インバウンド・データベース・アクティビティーでオーケストレーションを統合アプライアンスに公開した後、そのオーケストレーションをデプロイするには、Web 管理コンソール (WMC) を使用してバッファー・テーブルとトリガーを作成する必要があります。
Oracle データベースの場合、WMC を使用してシーケンスも作成する必要があります。
対象の操作に対するアクティビティーがない場合の実行時エラー
オーケストレーションが、そのオーケストレーションに現在存在しないアクティビティーの行を含むバッファー・テーブルにアクセスすると、オーケストレーションは失敗し、実行時に次のエラーが報告されます。
バッファー・テーブルに OperType 操作が含まれますが、その操作に対するアクティビティーはオーケストレーションにありません。(The buffer table contains the OperType operation but there is no activity in the orchestration for that operation.)
ここで、
OperType は操作のタイプです (例えば、INSERT)。オーケストレーションのバッファー・テーブルにある IH_OPERATION_NAME 列の値は、オーケストレーションのデータベース・アクティビティーと整合している必要があります。
例えば、バッファー・テーブルの行で、INSERT という値が IH_OPERATION_NAME 列に含まれているときに、オーケストレーションに「
挿入対象行の取得」アクティビティーが含まれていない場合、このエラーが報告されます。
各オーケストレーションには、別個のバッファー・テーブルが必要です。
さらに、ソース表内のトリガーは、バッファー・テーブルに指定されているデータベース操作と整合している必要があります。
例えば、オーケストレーションに単一のインバウンド「
更新対象行の取得」アクティビティーのみが含まれる場合、ソース・データベース表には UPDATE トリガーのみが含まれるようにする必要があります。
単一表インバウンド・データベース・アクティビティーをオーケストレーションに追加する
- オーケストレーションを作成するか、または開きます。オーケストレーションのグラフィカル表現が表示されます。
- 「アクティビティー」タブを選択し、「データベース」フォルダーを展開します。
- 必要な単一表インバウンド・データベース・アクティビティー (「挿入対象行の取得」、「削除対象行の取得」、または「更新対象行の取得) をオーケストレーションにドラッグします。
- アクティビティーを選択します。
データベース・エンドポイントを作成、選択、または編集する
- 「チェックリスト」で「エンドポイントの選出 (Pick Endpoint)」タスクをクリックして、以下のいずれかのアクションを選択します。
- 既存のエンドポイントを選択します。
- 「参照」を選択します。「プロジェクト・エクスプローラー」が表示されます。
- 既存のエンドポイントを選択し、「OK」をクリックします。
『アクティビティーの構成』手順までスキップします。
- 既存のエンドポイントを選択し、そのエンドポイントを編集します。
- 「参照」を選択します。「プロジェクト・エクスプローラー」が表示されます。
- 既存のエンドポイントを選択し、「OK」をクリックします。
- 「編集」をクリックします。「エンドポイントの編集」ペインが表示されます。
- 新しいエンドポイントを作成します。「新規作成」を選択します。「エンドポイントの作成」ペインが表示されます。
- HTTP エンドポイントを作成または編集します。『HTTP エンドポイントの作成または編集』を参照してください。
実行時に統合アプライアンスが変更をポーリングするソース・データベース表で列を選択する
- 「チェックリスト」で「表の選出 (Pick Table)」をクリックします。
「表の選出 (Pick Table)」ペインが表示されます。
- 「参照...」をクリックして、インバウンド・メッセージのソースとなるデータベース表を選択します。
「データベース表の表示」ダイアログ・ボックスが表示されます。
- リストから表を選択し、「OK」をクリックします。
選択した表の列情報が「表の選出 (Pick Table)」ペインに表示されます。
- この表の文字エンコードがデータベースのエンコードと異なる場合、以下のオプションのいずれかを使用して、別のエンコードを入力します。
- 「エンコード」リストから、デフォルトのエンコード・タイプの 1 つを選択します。
- 「エンコード」フィールドをクリックしてエンコード・タイプを入力することにより、エンコード・タイプを直接入力します。
これにより、結果として生成されるバッファー・テーブルのすべての列にそのエンコードが設定されます。
- デフォルトで、ソース表内のすべての列が選択されます。結果として生成されるバッファー・テーブルから列を削除するには、「使用」チェック・ボックスをクリアします。
「すべて使用」をクリックすると、すべての列がもう一度選択されます。
- 列見出しをクリックすると、その列の値で行がソートされます。
例えば、列名で行をソートするには、列の「列名」見出しをクリックします。列見出し名の右側に矢印が表示されます。
上矢印は、列が a で始まり z へと続くアルファベット順でソートされていることを示します。
下矢印は、列が z で始まり a へと続く逆のアルファベット順でソートされていることを示します。矢印をクリックすると、アルファベットの順序が逆になります。
- 「更新対象行の取得」アクティビティーの場合のみ - 結果として生成されるバッファー・テーブルに、更新された列の新しい値と元の値の両方が含まれるようにするには、以下の手順に従います。
- 「旧値」をクリックします。「更新用の旧値列」ダイアログ・ボックスが表示されます。
- 元の値を保存するデータベース列の「ストア」チェック・ボックスを選択します。
- 元の値を保管する列に割り当てられているデフォルトの名前を変更することができます。
該当する「古い値を保管する列の名前」セルをダブルクリックします。
- 「OK」をクリックします。選択した列の先頭に old_ というストリングが付けられたものが、「出力のマップ」ペインの「アクティビティーから」に表示されます。
「出力のマップ」ペインから、新しい値と元の値の両方をマップすることができます。
- 必要に応じて、「データ型」、「エンコード」、または「ヌル可能」値の設定を変更します。新しく選択を行うフィールドをクリックします。
- データ型 - デフォルトでは、ソース・データベース表内の列のデータ型。
バッファー・テーブル内の列に必要なデータ型がソース表のデータ型と異なる場合は、「データ型」セルをクリックして、リストから別のデータ型を選択します。
「UNSUPPORTED」のマークが付けられているデータ型については、適切なデータ型を選択する必要があります。
注: Oracle データベースの XMLTYPE データ型と、SQL Server データベースの MONEY データ型については、Studio によって自動的には正しいデータ型が関連付けられないため、ユーザーが適切なデータ型を手動で選択する必要があります。
重要: 実行時に無効なデータが生じないようにするため、ソース・データ型と互換性のあるデータ型を選択する必要があります。
例えば、ソース・データ型が INTEGER である場合、バッファー・テーブルに SMALLINT データ型を選択しないでください。これは、実行時に INTEGER 列に保管された大きい数値が SMALLINT データ型に正しく変換されないためです。
- サイズ - 表で定義された列のサイズ。このサイズはデータベース表から取得され、構成することはできません。
- エンコード - デフォルトでは、データベース・レベルまたは表レベルのいずれかで設定された現在のデフォルト・エンコード。列に必要なエンコードが現在のデフォルト・エンコードと異なる場合は、「エンコード」セルをクリックして、リストから別のエンコードを選択することによって、別のエンコードを選択します。
- ヌル可能 - デフォルトでは、ソース・データベース表内の列に対してヌル可能の設定。
nullable=false である場合は、列の「使用」チェック・ボックスが選択されている必要があります。
nullable=false とマークが付けられている列に、実行時にヌルを含めることはできません。
- 「リセット」をクリックすると、すべての列プロパティーがデフォルトに再設定されます。
これにより、すべての列の「使用」チェック・ボックスも再設定されます。
- 「最新表示」をクリックして、列のリストをソース・データベースの最新の状態に応じて更新します。
ソースに対する最近の変更が、このペインで更新されます。
- データベース・アクティビティーのための「配信ルール」の指定を構成します。
注: 「配信ルール」タスクで「1 回のみ」オプションを選択する場合は、実行時に統合アプライアンスで使用されるコントロール表を作成する必要があります。
Studio から統合アプライアンスにオーケストレーションを公開した後で、コントロール表を作成します。プロジェクトをデプロイする前に、Web 管理コンソール (WMC) を使用して、コントロール表を作成します。
注: 「1 回のみ」オプションを選択する場合は、
パーシスタンスを使用可能にする必要があります。
詳しくは、『
パーシスタンスを使用可能にする』を参照してください。
- 再試行オプションを構成します。詳しくは、『インバウンド・データベース・アクティビティーの再試行オプション』を参照してください。
アクティビティーの出力をマップする
- 「チェックリスト」から、「出力のマップ」タスクを選択します。
アクティビティーの出力パラメーターが、「アクティビティーから」ペインの rows エレメントの下に表示されます。
「アクティビティーから」ペインに表示される出力パラメーターは、「表の選出 (Pick Table)」タスクで選択した列に対応します。「配信ルール」で「バッチ」オプションを選択した場合、複数オカレンスのシンボルが row エレメントの横に表示されます。
注: 「更新対象行の取得」アクティビティーの場合のみ、(「表の選出 (Pick Table)」タスクの)「更新用の旧値列」ダイアログ・ボックスで列が選択されると、これらの追加出力パラメーター (デフォルトで old_ というストリングが接頭部として付けられます) も rows エレメントの下に表示されます。
「出力のマップ」ペインに表示される古い値の列をすべてマップする必要があります。
- 必要な出力パラメーターを変数 (複数可) にマップします。マッピングについての一般的な説明は、『マップの作成』を参照してください。これらのアクティビティーに関しては、出力パラメーターをマップする必要はありません。
注: インバウンド・データベース・アクティビティーでオーケストレーションを統合アプライアンスに公開した後、そのオーケストレーションをデプロイするには、Web 管理コンソール (WMC) を使用してバッファー・テーブルを作成する必要があります。