Oracle Integrationでの順序付けされたメッセージ処理について
HL7メッセージが受信順にターゲット・エンドポイントに配信されるように、Oracle Integrationは順序付けされたメッセージ処理を実装します。 メッセージは、受信した順序で処理されるようにキューに格納されます。
機能
患者の安全を確保するために、医療メッセージを正しい順序で配信することが重要です。 順不同のメッセージは、薬物や治療の誤った投与などの深刻な結果をもたらす可能性があります。 たとえば、関連するアレルギー情報のある順不同の薬物注文メッセージを受信すると、深刻な副作用につながる可能性があります。 順不同のメッセージングが発生しないように、Oracle Integrationでは、順序付けられたメッセージ処理を使用して、正しい順序でメッセージを配信します。
順序付けされたメッセージ処理では、次の主要なコンポーネントが使用されます。
| コンポーネント | 説明 |
|---|---|
| キュー | メッセージ(特に、Oracle IntegrationのHL7メッセージ)が受信した順序で処理されるようにする処理メカニズム。 |
| ポリシー | MLLPアダプタにアタッチされた接続をトリガーして起動し、メッセージの保証された順序を強制します。 |
| MLLPアダプタのトリガー接続 | HL7メッセージを、受信した順序でキューに入れてステージングします。 メッセージを受信すると、MLLPアダプタもクライアント・アプリケーションに確認応答を送信します。 |
| MLLPアダプタの呼出し接続 | HL7メッセージを受信し、キューにステージングされた順序で1つ以上のターゲット・エンドポイントにルーティングするためにキューにアタッチされます。 |
Oracle Integrationでの順序付けされたメッセージ処理には、次の機能があります。
- メッセージ順序の保存
- クライアント・アプリケーションによって送信された順序と同じ順序で、各メッセージをターゲット・エンドポイントに配信します。
- 処理中の1つのメッセージがエラーになった場合、後続のメッセージは処理されないようにブロックされ、順序が保持されます。
- 最初の失敗後にメッセージ・リカバリが発生した場合、メッセージ・シーケンスは保持されます。 最初のメッセージが正常に処理されるまで、後続のメッセージは処理されません。 失敗したメッセージが正常に処理されると、メッセージは同じ順序で再開されます。
- 配信保証
すべてのメッセージは、少なくとも1回はターゲット・システムに配信されます。
- 重複メッセージおよびエラー処理
重複するメッセージはキューの順序に従います。 重複メッセージは、次のシナリオで発生する可能性があります。
- メッセージが送信されてキューに格納され、確認応答がクライアント・アプリケーションに送信されますが、受信されることはありません。
- メッセージが送信され、キューに格納されます。ただし、クライアント・アプリケーションに確認を送信すると失敗します。
- メッセージが到着しますが、キューへの追加は失敗します。 クライアントは確認を受信しません。
- メッセージは変換または変換に失敗します。 この場合、必要な変更を行った後、失敗したメッセージを再送信する必要があります。
- メッセージは1つのキューに送信されますが、2番目のアウトバウンド・キューへの送信は失敗します。 このシナリオでは、障害が発生し、再送信する必要があります。
- 親と子の統合呼出し(ローカル呼出し)での順序付きメッセージ処理のサポート
- ランタイム監視
現在のメッセージ配信ステータスやキュー内のメッセージ数など、キューの監視がサポートされています。 キューの配信を一時停止できます。 また、キューからのメッセージの削除、キュー内の失敗したメッセージの再送信、キューからのすべてのメッセージのクリアなどの管理タスクを実行することもできます。
ユース・ケース
ユースケースをすばやく見てみましょう。 クライアント・アプリケーションは、3つのメッセージを正しい順序で3つの個別のターゲット・システム・エンドポイントに送信する必要があります。
- ターゲット・システム 1
- ターゲット・システム 2
- ターゲット・システム 3
順序付けされたメッセージ処理は次のように動作します。
- MLLPアダプタ・トリガー接続は、キュー内のその順序でHL7メッセージC、BおよびAを受信して取得し、クライアント・アプリケーションに確認応答を送信します。
- メッセージはOracle Integrationで処理されます。
- メッセージをキューに入れられた順序で複数の宛先にルーティングする必要がある場合、各宛先のMLLPアダプタ呼出し接続はポリシーに関連付けられます。
- エンドポイント固有のキューからメッセージを消費する場合、システムは、エンドツーエンドの順序を維持するために、到着時にキュー内のメッセージの順序と調整されます。
- MLLPアダプタ呼出し接続は、HL7メッセージC、BおよびAをキューに入れられた順序でターゲット1、2および3にそれぞれ配信します。 アウトバウンド・キューからのエンドポイント処理で順序付けが適用されます。

制限事項
- キューは、Oracle IntegrationのOracle Integration for Healthcareコンポーネントでのみ使用できます。
- キューは、MLLPアダプタのトリガーおよび呼出し接続でのみサポートされます。 次の点に注意してください。
- キューを使用するようにMLLPアダプタ・トリガー接続を構成し、そのキューを使用するようにMLLPアダプタ呼出し接続を構成しない場合、エンドツーエンドの順序付けされたメッセージはありません。
- MLLPアダプタの呼出し接続にポリシーをアタッチできますが、ポリシーとのMLLPアダプタ・トリガー接続がない統合で呼出し接続が発生した場合、メッセージは順序変更のためにキューに配置されません。
- プロジェクトではキューのみを作成して使用できます。
- キューはプロジェクト間で共有できません。
- 受信メッセージのパーティション化はサポートされていません。 各メッセージは不透明なエンティティとして扱われます。 メッセージの順序付けは、Oracle Integrationへの到着時間のみに基づきます。
- メッセージ処理は失敗し、ブロックされる可能性があります(ターゲット・エンドポイントが動作していない場合など)。 メッセージの再送信が試行され、再度ブロックされる可能性があります。 再試行不足のためにブロックされるメッセージは、手動で再送信する必要があります。
- データの欠落が原因で失敗するメッセージの編集はサポートされていません。 このような失敗のために処理できないメッセージは、正しい変更で編集し、手動で再送信する必要があります。