ヘッダーをスキップ
Oracle® Fusion Middleware Oracle SOA Suiteヘルスケア統合ユーザーズ・ガイド
11gリリース1 (11.1.1.9)
E59383-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

E 高可用性でのMLLPの実装

この付録では、高可用性環境で最小の下位レイヤー・プロトコル(MLLP)を使用する場合にOracle SOA Suite for healthcare integrationアプリケーションを実装する方法について説明します。

この付録の内容は次のトピックを含みます:

E.1 ヘルスケア統合の高可用性の概要

Oracle SOA Suite for healthcare integrationの高可用性は、WebLogic Server、Oracle DatabaseおよびOracle SOA Suiteの高可用性機能を介して処理されます。Oracle SOA Suite for healthcare integrationの高可用性を構成するには、Oracle Enterprise ManagerでOracle B2Bプロパティを追加します。これらのプロパティを使用すると、healthcare integrationプロジェクトの高可用性を有効にし、クラスタ内のサーバーのタイムアウトおよびハートビート間隔を指定できます。

Oracle SOA Suite for healthcare integrationでMLLPに対して現在サポートされている機能(メッセージ順序付けを含む)はすべて、高可用性環境でもサポートされています。

E.1.1 高可用性処理

クラスタ環境においては、最初に起動して初期化したヘルスケア統合インスタンスが、MLLPトラフィックを処理するインスタンスとなります。MLLPトラフィックを処理するインスタンスに障害が発生した場合、クラスタ内の非アクティブなインスタンスがアクティブになり、構成済のタイムアウト期間内にMLLPトラフィックを処理する役割を引き継ぎます。ヘルスケア統合のメッセージ処理はトランザクションであるため、障害の発生したインスタンスからの送信中メッセージはすべてリカバリされます。このため、フェイルオーバー中にメッセージが失われることはありません。

障害の発生したインスタンスが完全に使用不可能になった場合、現在アクティブになっている2番目のインスタンスが、引き続き、高可用性処理専用に作成されたアウトバウンド配信キューとの間でのメッセージ送受信を行います。最初のインスタンスが再び使用可能になった場合、2番目のインスタンスが引き続きMLLPトラフィックを処理します。

E.1.2 フロントエンドのフェイルオーバー

クラスタ内のアクティブなノードに障害が発生した場合、ロード・バランサがフェイルオーバー・デバイスとして使用されます。これは、Oracle SOA Suite for healthcare integrationがクラスタ環境に実装されている場合、インバウンドMLLPトラフィックに対して必要になります。エンドポイントおよび外部システムは、ロード・バランサのIPアドレスを宛先接続として使用します。つまり、すべての接続は1つのアクティブ・ノードで確立され、メッセージ処理はクラスタ内のすべてのノードで実行されます。healthcare integrationインスタンス間で均等にメッセージが配信されるようにロード・バランサを構成できますが、接続を確立するのは、指定されたアクティブ・インスタンスのみです。ロード・バランサでCookieベースまたはアクティブな永続接続を使用すると、MLLPサーバーで予期しない動作が発生する可能性があります。デフォルトを非永続接続に設定し、接続の損失を回避するための永続性設定についてロード・バランサのドキュメントで確認することをお薦めします。

E.1.3 アクティブの概念

アクティブなサーバーとは、MLLPを使用してエンドポイントとの間でメッセージを送受信できる、クラスタ内の唯一のサーバーです。ただし、メッセージ処理はクラスタ内のすべてのサーバーによって行われます。たとえば、アウトバウンドの場合、メッセージはクラスタ内のすべてのサーバーにより送信されるように準備されますが、実際の送信はアクティブ・サーバーによってのみ行われます。これは、インバウンドの場合も同じです。

E.1.4 順序単位(UOO)

これは、Oracle Weblogic ServerのJMSキューに対する機能です。デフォルトの構成では、同じUOOに属するすべてのメッセージは特定のサーバーに関連付けられています。UOOは、Oracle Weblogic ServerでJMS内のメッセージを順序付けするために使用されます。このため、UOOを使用する場合、そのUOOと関連付けられているJMSキューがアクティブになってメッセージを受信する必要があります。これを実現するには、サーバー全体の移行を使用します。


注意:

HA環境でUOOを使用する場合は、サーバー移行を有効にする必要があります。

E.1.5 外部依存性

Oracle SOA Suite for healthcare integrationは、次のコンポーネントに依存しています。

  • Oracle SOAデータベース(メッセージおよびメッセージ状態の永続性に関連)

  • メタデータ・サービス(MDS)リポジトリ(インスタンス・メタデータに関連)

E.1.6 その他のリソース

Oracle SOA Suiteの可用性の構成の詳細は、次の資料を参照してください。

E.2 Oracle SOA Suite for Healthcare IntegrationでのMLLP高可用性の有効化

Oracle SOA Suite for healthcare integrationを有効にするには、Oracle Enterprise Managerで特定のB2Bプロパティを定義する必要があります。これらのプロパティを使用すると、healthcare integrationの高可用性を有効にし、サーバーのタイムアウトおよびPing間隔を定義できます。

ヘルスケア統合のMLLP高可用性を有効にするには

  1. Oracle Enterprise Managerにログオンします。

    URLは、http://hostname:port/emです。

    ここで、hostnameはWebLogic Serverが実行されているコンピュータの名前で、portはWebLogic Serverがリスニングしているポート番号です。

  2. 左側のナビゲーション・パネルで、「SOA」ノードを開き、「soa-infra」を選択します。

  3. 「SOAインフラストラクチャ」メニューをクリックして、「SOA管理」「B2Bサーバー・プロパティ」を選択します。

    図E-1 Enterprise Managerの「SOAインフラストラクチャ」メニュー

    図E-1の説明が続きます
    「図E-1 Enterprise Managerの「SOAインフラストラクチャ」メニュー」の説明

  4. B2Bサーバー・プロパティ・ページで、「詳細B2B構成プロパティ」をクリックします。

    システムMBeanブラウザ・ページが表示されます。

  5. 「操作」タブをクリックし、「addProperty」をクリックします。

    図E-2 「システムMBeanブラウザ」の操作ページ

    図E-2の説明が続きます
    「図E-2 「システムMBeanブラウザ」の操作ページ」の説明

  6. 「パラメータ」表の「値」列で、key列にb2b.HAInstanceを入力し、value列にtrueを入力します。

    図E-3 b2b.HAInstanceプロパティの追加

    図E-3の説明が続きます
    「図E-3 b2b.HAInstanceプロパティの追加」の説明

  7. 「呼出し」をクリックします。

    新しいプロパティが保存されます。

  8. 前述の手順を使用して、b2b.MLLP_HA_Modeという名前の新しいプロパティを作成し、値をtrueに設定します。

  9. 次のオプション・プロパティを定義できます。これらが定義されていない場合は、デフォルト値が使用されます。

    プロパティ 説明
    b2b.HAMaxElapsedTimeout 元のインスタンスに障害が発生した後、次のアクティブ・インスタンスがMLLPトラフィックを処理する役割を引き継ぐまでの時間(分単位)。デフォルト値は2分であり、2は使用できる最小値でもあります。
    b2b.HAHeartBeatPing サーバーが動作しているかどうかを判別するためのPingを実行する時間間隔(分単位)。デフォルト値は1分であり、1は使用できる最小値でもあります。
    b2b.transportDispatcherThreadCount 高可用性モードで使用するMLLPディスパッチャ・スレッドの数。これは順序付けされていないメッセージに対してのみ使用され、JMSリソースと組み合せて使用されます。
    b2b.transportDispatcherThreadSleepTime MLLPディスパッチャ・スレッドがメッセージ処理後にスリープする時間(ミリ秒単位)。
    b2b.MaxTimeinAcquiredState フェイルオーバー中、メッセージが処理を再開するまでにACQUIRED状態を保持する時間(分単位)。
    b2b.AcquiredStatePollingInterval ACQUIRED状態にあるメッセージが再びポーリングされるまでの時間(分単位)。
    b2b.SingleTransactionAtInbound インバウンドMLLP HAの場合、ワイヤ・メッセージがデータベースにコミットされてからイベントがイベント・キューにエンキューされるまでにサーバーがクラッシュした場合、サーバーは順序マネージャ表内に永続的に停滞し、処理されません。これによって、順序付けにおけるインバウンド・メッセージ・フローがブロックされます。

    MLLP HAの場合のみ、b2b.SingleTransactionAtInboundをtrueに設定して、JMSとデータベースのコミットが単一のトランザクションで行われるようにします。これは、一度に1つのみのインバウンド・メッセージが受信されるMLLPの場合にのみ適しています。


  10. プロパティの追加が完了したら、「戻る」をクリックします。

  11. 高可用性プロパティを定義した後は、「属性」タブでそれらを表示できます。プロパティを表示するには、「属性」タブをクリックし、「プロパティ」をクリックします。「値」表の「要素」ノードを開くと、プロパティの名前と値が表示されます。

    図E-4 Enterprise Managerの高可用性プロパティ

    図E-4の説明が続きます
    「図E-4 Enterprise Managerの高可用性プロパティ」の説明