このレシピについて
このレシピでは、システムに入力されたメッセージが特定の順序で再順序付けされ、処理されます。
順序付けの問題
多くの場合、取引先の作成、取引先住所の更新、取引先担当者の更新など、順番に実行する必要があるリクエストのストリームがあります。 後の2つのアクティビティは、最初のアクティビティが完了するまで実行できません。
メッセージを順序付けする前に、メッセージの処理順序を把握しておく必要があります。 したがって、なんらかの順序IDを使用する必要があります。 このIDには、タイムスタンプまたは実際の順序識別子を指定できます。 タイムスタンプを使用している場合は、タイムスタンプがより適切に適用されることをメッセージの起点に近づけることができます。 たとえば、メッセージがOracle Integrationに到着したときのタイムスタンプを取得した場合、ネットワーク遅延によって、メッセージがすでに順序がずれている可能性があります。 通常、すべてのメッセージを同じ順序で並べる必要はありません。 このアカウントの例では、特定のアカウントのメッセージのみをオーダーする必要があります。 様々なアカウントのメッセージをパラレルで実行できます。 したがって、メッセージ・ストリーム内の様々なシーケンス・ストリームを識別するために、なんらかのグループIDも必要になりました。
メッセージを取得し、その順序を把握したら、それらを処理できます。 リシーケンス・ソリューションに固有のものは、メッセージが順不同に到着して順序どおりにソートできるようにするための、ある程度の遅延です。 遅延のサイズは、遅延するメッセージを受け入れてから、遅延しないで先に進むことができる時間を指定します。
リシーケンス・ソリューション
- メッセージの到着順序ではなく、目的の順序IDに基づいて入力メッセージを処理します。
- 一定期間(パーキング時間)ストレージ内の各メッセージをパークして、順序が正しくないメッセージが目的の順序で処理されるようにします。
- 送信コールを抑制するために、パラレルで処理されるメッセージ・グループの最大数を構成できます。
- システム・エラー、ネットワーク・エラー、不正なリクエストなど、すべてのエラーを処理します。
レシピを使用するには、レシピをインストールし、その中の接続およびその他のリソースを構成する必要があります。 このレシピには、標準のOracle Integration機能を使用する統合、接続およびスクリプトのセットが含まれています。
- リシーケンサのプロデューサ統合は、メッセージを受信するソース統合です。
- リシーケンサのプロデューサ統合によって、データがデータベースにプッシュされます。
- リシーケンサのコンシューマ統合では、データベースからスケジュールされた頻度に基づいてデータがプルされます。
- リシーケンサのコンシューマ統合は、ディスパッチャ統合をコールし、ターゲット・システムにメッセージを送信します。
-
リシーケンサマネージャ統合によってリシーケンサが管理されます。 3つの操作をサポートしています。
操作 パスとメソッド 説明 構成の取得 パス: /configs
メソッド: GET
すべてのタイプの構成を返します。 起動の例:
$ curl https://my.integration.cloud/ic/api/integration/v1/flows/rest/RSQMANAGER/1.0/configs -v -u username:password構成の更新 パス: /configs/{type}
メソッド: PUT
指定したタイプの構成を更新します。 起動の例:
$ curl -X PUT https://my.integration.cloud/ic/api/integration/v1/flows/rest/RSQMANAGER/1.0/configs/employee -v -u username:password -H "Content-Type: application/json" -d@config.jsonconfig.jsonの例:
{ "maxConcurrent": 5, "timeWindow": 11 }グループのリカバリ パス: /types/{type}/groups/{group}/recover
メソッド: PUT
メッセージ表のスタック・メッセージを削除し、ステータスをNに設定してグループを再アクティブ化します。 起動の例:
$ curl -X PUT https://my.integration.cloud/ic/api/integration/v1/flows/rest/RSQMANAGER/1.0/types/employee/groups/eng/recover -v -u username:password -H "Content-length: 0"