「表のポーリング」アクティビティー

表のポーリング」アクティビティーは、指定された時間間隔で特殊なフラグ列の状況を検査することによって、データベース表のいずれかの行で、データベース操作 (挿入または更新) が発生したかどうかを検査します。

挿入および更新操作の実行時に、「表のポーリング」アクティビティーはデータベース表で変更されたデータを返し、そのデータをオーケストレーション内の変数に直接マップするのに対して、「挿入対象行の取得」および「更新対象行の取得」アクティビティーは変更されたデータをバッファー・テーブルに返し、そのバッファー・テーブルがオーケストレーション内の変数にマップされます。
注:挿入対象行の取得」、「削除対象行の取得」、および「更新対象行の取得」アクティビティーの代わりに「表のポーリング」アクティビティーを使用するのは、データベースへのトリガーの追加を回避する必要がある場合のみにしてください。
Studio で「表のポーリング」アクティビティーを構成する前に、最初にソース・データベース表で 2 つの追加のデータベース列を作成するか、データベース表にある 2 つの適切な既存のデータベース列を使用する必要があります。ソース・データベース表には以下のデータベース列が必要です。
  • INTEGER 型のシーケンス列 - この列には、1 次キー (一連の固有の番号: 1、2、3...) が含まれています。
  • CHAR(1) 型のフラグ列 - この列には、統合アプライアンスが行を処理する必要があるかどうかを判別するために実行時に使用するフラグが含まれています。

表のポーリング」アクティビティーを含むオーケストレーションを統合アプライアンスで実行する前に、データベース表のこれらの列にデータを追加する必要もあります。 実行時に統合アプライアンスによって行を処理しない場合は、このフラグ列を P に設定します。 実行時に統合アプライアンスで行を処理する場合は、このフラグ列を null に設定します。

以下のデータベース表の例では、次の図に示すように、「フラグ」列の値は最初はすべて P に設定されています。
カスタム・ポーリング
重要: フラグ列の状態を管理する必要があります。 以下のシナリオの例で説明するように、統合アプライアンスは行の処理後にフラグ列を、処理済みを表す P に変更します。
  1. 行がデータベースに挿入されます。 その行のフラグ列は null に設定されます。
  2. 表のポーリング」アクティビティーが初めて実行され、この行のフラグ値が P に設定されます。
  3. 同じ行が更新され、「表のポーリング」アクティビティーが再度実行されます。 アクティビティーの戻りデータでは行は返されません。これは、統合アプライアンスがフラグ列を検査したときに、この行が既に処理されていたことをフラグが示していたためです。

統合アプライアンスが行を再度処理するためには、フラグ列を null に再設定してから、同じソース・データベース表にアクセスする「表のポーリング」アクティビティーを含むオーケストレーション・ジョブを実行する必要があります。

オーケストレーションで「表のポーリング」アクティビティーを追加する

  1. オーケストレーションを作成するか、または開きます。 オーケストレーションのグラフィカル表現が開きます。
  2. アクティビティー」タブを選択し、「データベース」フォルダーを展開します。
  3. 表のポーリング」アクティビティーをオーケストレーション上にドラッグします。
  4. 表のポーリング」アクティビティーを選択します。

データベース・エンドポイントを作成、選択、または編集する

  1. 「チェックリスト」から「エンドポイントの選出」タスクをクリックし、次のいずれかのアクションを選択します。
    • 既存のエンドポイントを選択します。
      1. 参照」を選択します。 「プロジェクト・エクスプローラー」が開きます。
      2. 既存のエンドポイントを選択し、「OK」をクリックします。 『データベース操作についてのポーリングを行うソース表の列を指定する』手順までスキップします。
    • 既存のエンドポイントを選択し、そのエンドポイントを編集します。
      1. 参照」を選択します。 「プロジェクト・エクスプローラー」が開きます。
      2. 既存のエンドポイントを選択し、「OK」をクリックします。
      3. 編集」をクリックします。 「エンドポイントの編集」ペインが表示されます。
    • 新しいエンドポイントを作成します。
      1. 新規作成」を選択します。 「エンドポイントの作成」ペインが開きます。
  2. データベース・エンドポイントを作成または編集します

データベース操作についてのポーリングを行うソース表の列を指定する

  1. チェックリスト」から、「エンドポイントの選出」をクリックします。 「エンドポイントの選出」ペインが開きます。
  2. 参照」をクリックします。 「単一ソース表の選択」ダイアログ・ボックスが開きます。
  3. 実行時に「表のポーリング」アクティビティーがデータベース操作についてのポーリングを行う表を選択します。
  4. ユーザー・スキーマによるフィルタリング」リストからユーザー・スキーマを選択します。
  5. 統合アプライアンスによって使用されるバッファー・テーブルまたはコントロール表をフィルターで除外するには、「バッファー・テーブルおよびコントロール表の非表示」を選択します。
    注: このフィルターは、Studio からスクリプトで 生成される標準名を使用するバッファー表および制御表のみを非表示にします。
  6. リストから単一の表を選択します。
    • 表を追加するには、「>>」をクリックします。
    • 表を削除するには、「<<」をクリックします。
  7. ソース表の 1 次キー列に対してのみデータベース操作のポーリングを行うには、「表から 1 次キーのみを選択」チェック・ボックスを選択します。
  8. 「OK」をクリックします。表の列が「表の選出 (Pick Table)」ペインに表示されます。 (「表から 1 次キーのみを選択」チェック・ボックスを選択した場合は、1 次キー列のみが表示されます。)
  9. この表の文字エンコードが、データベースのエンコードと異なる場合は、以下のいずれかのオプションを使用して、別のエンコードを入力します。
    • エンコード」リストから、デフォルトのエンコード・タイプの 1 つを選択します。
    • エンコード」フィールドをクリックしてエンコード・タイプを入力することにより、エンコード・タイプを直接入力します。
  10. 実行時に「表のポーリング」アクティビティーによってデータベース操作 (挿入、削除、または更新) のポーリングを行う必要がある、表の列を選択します。 デフォルトでは、すべての列が選択されています。 不要な列の「使用」チェック・ボックスをクリアします。 「すべて使用」をクリックすると、すべての列がもう一度選択されます。
  11. 行を列値でソートするには、列の見出しをクリックします。 例えば、列名で行をソートするには、列の「列名」見出しをクリックします。 列見出しの右側に矢印が表示されます。 上矢印は、列が a で始まり z へと続くアルファベット順でソートされていることを示します。 下矢印は、列が z で始まり a へと続く逆のアルファベット順でソートされていることを示します。 アルファベット順を逆にするには矢印をクリックします。
  12. 必要に応じて、各照会用入力パラメーターの「データ型」、「エンコード」、または「ヌル可能」値の設定を変更します。 新しく選択を行うフィールドをクリックします。
    • データ型 - デフォルトでは、ソース・データベース表内の列のデータ型。 バッファー・テーブル内の列の必要なデータ型がソース表のデータ型と異なる場合は、「データ型」セルをクリックして、リストから別のデータ型を選択します。 「UNSUPPORTED」のマークが付けられているデータ型については、適切なデータ型を選択する必要があります。
      注: (MONEY および XMLTYPE データ型の場合) Oracle データベースの XMLTYPE データ型と SQL Server データベースの MONEY データ型については、Studio によって自動的には正しいデータ型が関連付けられないため、ユーザーが適切なデータ型を手動で選択する必要があります。
    • サイズ - 表で定義された列のサイズ。 このサイズはデータベース表から取得され、構成することはできません。
    • エンコード - デフォルトでは、データベース・レベルまたは表レベルのいずれかで設定された現在のデフォルト・エンコード。 列に必要なエンコードが、現在のデフォルト・エンコードと異なる場合は、「エンコード」セルをクリックして、リストから別のエンコードを選択することによって、別のエンコードを選択します。
    • ヌル可能 - デフォルトでは、ソース・データベース表内の列に対してヌル可能の設定。 nullable = false の場合は、メッセージに列を含める必要があります。 nullable=false である場合は、列の「使用」チェック・ボックスが選択されている必要があります。 nullable=false とマークが付けられている列に、実行時にヌルを含めることはできません。

シーケンス列およびフラグ列を選択する

  1. チェックリスト」から、「列の選択」を選択します。
  2. リストから「シーケンス列」を選択します。 これは INTEGER 型のシーケンス列です。この列には、ソース・データベース表に追加したか、ソース・データベース表の既存の列を使用できると判断した 1 次キー (一連の固有の番号: 1、2、3...) が含まれています。
  3. リストから「フラグ列」を選択します。 これは CHAR 型のフラグ列です。この列には、統合アプライアンスが行を処理したときに統合アプライアンスによって P に設定されるフラグが含まれています。 統合アプライアンスは、シーケンス列とフラグ列を使用して、重複するメッセージの有無を検査します。 さらに、統合アプライアンスは、削除要求のアクションを判別するために、両方の列および「配信ルール」ペインの「処理後に行を削除」チェック・ボックスの設定を使用します。
    •  「処理後に行を削除」チェック・ボックスを選択すると、統合アプライアンスは、フラグを M に設定してから、行を削除します。
    • 処理後に行を削除」チェック・ボックスをクリアすると、統合アプライアンスは、フラグを M に設定してから P に設定しますが、行は削除されません。 統合アプライアンスが行を再度処理するためには、フラグ列を null に再設定してから、同じソース・データベース表にアクセスする「表のポーリング」アクティビティーを含むオーケストレーション・ジョブを実行する必要があります。
  4. 配信ルールを構成します。
    注:配信ルール」タスクで「1 回のみ」オプションを選択する場合は、実行時に統合アプライアンスで使用されるコントロール表を作成する必要があります。 Studio から統合アプライアンスにオーケストレーションを公開した後で、コントロール表を作成します。 プロジェクトをデプロイする前に、Web 管理コンソール (WMC) を使用して、コントロール表を作成します。
    注:1 回のみ」オプションを選択する場合は、 パーシスタンスを使用可能にする必要があります。 詳しくは、『パーシスタンスを使用可能にする』を参照してください。
  5. 再試行オプションを構成します。

アクティビティーの出力をマップする

  1. 「チェックリスト」「出力のマップ」タスクを選択します。 このアクティビティーの出力パラメーターが、 「アクティビティーから」ペインの row エレメントの下に表示されます。 「アクティビティーから」ペインに表示される出力パラメーターは、「表の選出 (Pick Table)」タスクで選択した列に対応します。 「配信ルール」で「バッチ」オプションを選択した場合、複数オカレンスのシンボルが row エレメントの横に表示されます。
    注: 実行時に、「表のポーリング」アクティビティーの rows 出力パラメーターには、シーケンス列およびフラグ列の値は追加されません。「表の選出 (Pick Table)」タスクで選択した列のみが返されます。
  2. 必要な出力パラメーターを変数にマップします。 マッピングについての一般的な説明は、『マップの作成』を参照してください。 これらのアクティビティーに関しては、出力パラメーターをマップする必要はありません。