この付録では、高可用性環境で最小の下位レイヤー・プロトコル(MLLP)を使用する場合にOracle SOA Suite for healthcare integrationアプリケーションを実装する方法について説明します。
この付録の内容は次のとおりです。
これらのプロパティを使用すると、ヘルスケア統合プロジェクトの高可用性を有効にし、クラスタ内のサーバーのタイムアウトおよびハートビート間隔を指定できます。
Oracle SOA Suite for healthcare integrationでMLLPに対して現在サポートされている機能(メッセージ順序付けを含む)はすべて、高可用性環境でもサポートされています。
注意:
このSOA Suite機能は、Oracle Integration継続的可用性の一部です。Oracle SOA Suite for Middleware Optionsの詳細は、『Oracle Fusion Middlewareライセンス情報ユーザー・マニュアル』を参照してください。
クラスタ環境においては、最初に起動して初期化したヘルスケア統合インスタンスが、MLLPトラフィックを処理するインスタンスとなります。MLLPトラフィックを処理するインスタンスに障害が発生した場合、クラスタ内の非アクティブなインスタンスがアクティブになり、構成済のタイムアウト期間内にMLLPトラフィックを処理する役割を引き継ぎます。ヘルスケア統合のメッセージ処理はトランザクションであるため、障害の発生したインスタンスからの送信中メッセージはすべてリカバリされます。このため、フェイルオーバー中にメッセージが失われることはありません。
障害の発生したインスタンスが完全に使用不可能になった場合、現在アクティブになっている2番目のインスタンスが、引き続き、高可用性処理専用に作成されたアウトバウンド配信キューとの間でのメッセージ送受信を行います。最初のインスタンスが再び使用可能になった場合、2番目のインスタンスが引き続きMLLPトラフィックを処理します。
クラスタ内のアクティブなノードに障害が発生した場合、ロード・バランサがフェイルオーバー・デバイスとして使用されます。これは、Oracle SOA Suite for healthcare integrationがクラスタ環境に実装されている場合、インバウンドMLLPトラフィックに対して必要になります。エンドポイントおよび外部システムは、ロード・バランサのIPアドレスを宛先接続として使用します。つまり、すべての接続は1つのアクティブ・ノードで確立され、メッセージ処理はクラスタ内のすべてのノードで実行されます。healthcare integrationインスタンス間で均等にメッセージが配信されるようにロード・バランサを構成できますが、接続を確立するのは、指定されたアクティブ・インスタンスのみです。ロード・バランサでCookieベースまたはアクティブな永続接続を使用すると、MLLPサーバーで予期しない動作が発生する可能性があります。デフォルトを非永続接続に設定し、接続の損失を回避するための永続性設定についてロード・バランサのドキュメントで確認することをお薦めします。SOAクラスタ全体でOracle SOA Suite for healthcare integrationユーザー・インタフェースで構成されたTCPポート(エンドポイントの一部)に均一に受信接続をファームアウトする方法については、ロード・バランサのドキュメントを参照してください。
アクティブなサーバーとは、MLLPを使用してエンドポイントとの間でメッセージを送受信できる、クラスタ内の唯一のサーバーです。ただし、メッセージ処理はクラスタ内のすべてのサーバーによって行われます。たとえば、アウトバウンドの場合、メッセージはクラスタ内のすべてのサーバーにより送信されるように準備されますが、実際の送信はアクティブ・サーバーによってのみ行われます。これは、インバウンドの場合も同じです。
これは、Oracle Weblogic ServerのJMSキューに対する機能です。デフォルトの構成では、同じUOOに属するすべてのメッセージは特定のサーバーに関連付けられています。UOOは、Oracle Weblogic ServerでJMS内のメッセージを順序付けするために使用されます。このため、UOOを使用する場合、そのUOOと関連付けられているJMSキューがアクティブになってメッセージを受信する必要があります。サーバーで障害が発生した場合、"サーバー全体の"移行を使用してJMSメッセージをリカバリできます。
注意:
HA環境で外部JMSキューを使用する場合は、"サーバー全体の"移行を構成する必要があります。
Oracle SOA Suite for healthcare integrationは、次のコンポーネントに依存しています。
Oracle SOAデータベース(メッセージおよびメッセージ状態の永続性に関連)
メタデータ・サービス(MDS)リポジトリ(インスタンス・メタデータに関連)
高可用性サポートのためのロード・バランサ
Oracle SOA Suiteの可用性の構成の詳細は、次の資料を参照してください。
『Oracle Fusion Middleware Oracle SOA Suiteエンタープライズ・デプロイメント・ガイド』の「エンタープライズ・デプロイメントの概要」
『Oracle WebLogic Serverクラスタの管理』のサーバー全体の移行に関する項