ポーリング・トリガーとは
外部アプリケーションにイベント・システムがない場合は、ポーリング・トリガーを使用できます。 このような場合、外部アプリケーションは、データを取得できるAPIコールを提供します。
ポーリング・トリガーを使用すると、Oracle IntegrationはAPIコールを使用して外部アプリケーションに定期的に新しいデータを問い合せます。 新しいデータがある場合は、統合フローによって取得および処理されます。
異なるスキームを使用して、新しいデータをポーリングできます。 次に、いくつかの例を示します:
- 作成日: 特定の日に作成されたレコードを問い合せます。
- 作成時間: 特定の時間間隔内に作成されたレコードを問い合せます。
- 連番: システム内で一意のIDを使用してレコードを問い合せます。
ノート:
このトリガー・タイプでは、Oracle Integrationはデータの問合せをアクティブにし、新しいデータを比較して重複を回避してから処理します。 比較のために、Oracle Integrationは前の問合せのデータを格納します。 格納されるデータは、通常、「プロパティのバッグ」と呼ばれます。 これらのプロパティの使用方法の詳細は、「サポートされているカスタムCNCFサーバーレス・ワークフロー」の関数connectivity::getPersistentStateおよびconnectivity::setPersistentStateを参照してください。
サポート対象
Oracle Integrationは、ポーリング・トリガーで次のポーリング機能をサポートします:
- クラウドでのシングルトン・ポーリング(アクティブ化ごとに1つのポーラー・スレッド)
- 確認または成功ポーリング処理
- エージェント・ポーリング
- ポーリング・イベント間の状態永続性
- エージェント上のポーリング・イベント間での非高可用性状態永続性
ポーリング・トリガーの定義
ポーリング・トリガーのアダプタ定義ドキュメントのtriggersセクションには、次のプロパティがあります:
typeプロパティ: トリガー・タイプを指定します。pollingに設定します。executeプロパティ: ポーリング・メソッドとターゲットを指定します。 各ポーリングで実行されます。- 次のプロパティを持つ
pollingオブジェクト。これは、ポーリング・トリガーに固有です:onInit: 初期化フローを指定します。 アクティブ化時に1回実行されます。onSuccess: mcubeでのポーリング・データの正常な公開時に実行されるフローを指定します。 投票ごとに1回実行されます。pollFrequencyInSeconds: ポーリングの頻度を指定します。 デフォルト値は10秒です。
ノート:
connectionセクションの変更は必要ありません。 ターゲット・アプリケーションに接続するために指定した詳細が、ポーリング・トリガーにも使用されます。- セキュリティ構成の場合、トリガー・ロールで定義したポリシーがポーリング・コールに適用されます。 非httpプロトコル・コールでは、非変更ポリシー・スキーマが使用されます。 プロトコル・ハンドラに非管理ポリシーを実装する必要があります。
サンプル・コード
"pollingTypeTrigger": {
"displayName": "Polling Type Trigger",
"description": "This trigger Polls.",
"type": "polling",
"execute":"flow:execute",
"request": {
"schemaType": "application/schema+json",
"schema": {
"$ref": "#/schemas/staticInput"
}
},
"polling": {
"onInit":"flow:init",
"onSuccess":"flow:ack",
"pollFrequencyInSeconds": 3
}
},
"pollingTypeTriggerParallel": {
"displayName": "Polling Type Trigger parallel",
"description": "This trigger Polls.",
"type": "polling",
"execute":"flow:execute",
"request": {
"schemaType": "application/schema+json",
"schema": {
"$ref": "#/schemas/staticInput"
}
},
"polling": {
"onInit":"flow:init",
"onSuccess":"flow:ack",
"pollFrequencyInSeconds": 3
}
},
"pollingTypeTriggerCloudParallel": {
"displayName": "Polling Type Trigger parallel",
"description": "This trigger Polls.",
"type": "polling",
"execute":"flow:execute",
"request": {
"schemaType": "application/schema+json",
"schema": {
"$ref": "#/schemas/staticInput"
}
},
"polling": {
"onInit":"flow:init",
"onSuccess":"flow:ack",
"pollFrequencyInSeconds": 3
}
}