19 エンタープライズ・デプロイメントでのサービス移行の使用
Oracle WebLogic Serverの移行フレームワークでは、サーバー全体の移行とサービスの移行がサポートされています。サーバー全体の移行には、より多くのリソースと管理対象サーバーの完全な起動が必要であるため、サービス移行よりフェイルオーバー時のレイテンシは大きくなります。このEDGに含まれる製品は、サービス移行をサポートしています。したがって、サービス移行をお薦めします。このガイドでは、Oracle Fusion Middlewareエンタープライズ・トポロジでサービス移行を使用する方法について説明します。サーバー全体の移行は、このガイドの範囲外です。
エンタープライズ・デプロイメントでの自動サービス移行について
Oracle WebLogic Serverは、可用性の高い環境にとって不可欠な要素である移行フレームワークを備えています。次の項では、エンタープライズ・デプロイメントでこのフレームワークを効果的に使用する方法を詳しく説明します。
サーバー全体の移行とサービスの移行の違いの理解
Oracle WebLogic Serverの移行フレームワークでは、次の2つの種類の自動移行をサポートしています。
-
サーバー全体の移行。障害発生時に、管理対象サーバー・インスタンスが別の物理システムに移行されます。
サーバー全体の移行では、別の物理マシン上で、サーバー・インスタンスとそのすべてのサービスが自動的に再起動されます。サーバー移行が構成されているクラスタに属するサーバーで問題が発生すると、そのサーバーは、クラスタのメンバーをホストする他のマシンで再起動されます。
このためには、サーバーはリスニング・アドレスとして浮動IPを使用する必要があり、必要なリソース(トランザクション・ログとJMS永続ストア)が候補マシンで利用できなければなりません。
Oracle WebLogic Serverクラスタの管理のサーバー全体の移行を参照してください。
-
サービスの移行。特定のサービスが、クラスタ内の別の管理対象サーバーに移行されます。
サービスの移行を理解するには、固定サービスを理解することが重要です。
WebLogic Serverクラスタでは、ほとんどのサブシステム・サービスがクラスタ内のすべてのサーバー・インスタンスで均一にホストされます。これにより、サーバー間の透過的なフェイルオーバーが可能になります。対照的に、JMS関連サービスやJTAトランザクション・リカバリ・サービス、ユーザー定義のシングルトン・サービスなどの固定サービスは、クラスタ内の個々のサーバー・インスタンスにホストされます。WebLogic Serverの移行フレームワークは、これらのサービスに対して、フェイルオーバーではなく、サービスの移行による障害回復をサポートしています。
『Oracle WebLogic Serverクラスタの管理』のサービスの移行フレームワークの理解を参照してください。
エンタープライズ・デプロイメントでサーバー全体の移行またはサービスの移行を使用する意味
サーバーまたはサービスが別のシステムで再起動されるときは、必要なリソース(サービス・データ、ログなど)が元のシステムとフェイルオーバー・システムの両方で利用できなければなりません。利用できなければ、サービスは、同じ操作をフェイルオーバー・システムで正常に再開できません。
このような理由から、サーバー全体の移行とサービスの移行の両方で、クラスタのすべてのメンバーが、同一のトランザクションとJMS永続ストア(ファイルベースかデータベースベースかを問わない)にアクセスできる必要があります。
これが、エンタープライズ・デプロイメントで共有記憶域が重要となる、もう1つの理由です。共有記憶域を適切に構成すると、手動フェイルオーバー(管理サーバーのフェイルオーバー)または自動フェイルオーバー(サーバー全体の移行またはサービスの移行)が発生したときに、元のマシンとフェイルオーバー・マシンの両方が、サービスを変更しなくても、確実に同一のファイル・ストアにアクセスできるようになります。
自動サービス移行の場合、固定サービスの再開が必要になったときは、フェイルオーバー前に固定サービスによって使用されていたJMSとJTAのログにアクセスできる必要があります。
サーバー全体の移行の場合、共有記憶域のほかに、仮想IPアドレス(VIP)の入手と割当ても必要になります。管理対象サーバーが別のマシンにフェイルオーバーされると、VIPは新しいマシンに自動的に再割り当てされます。
サービスの移行には、VIPは必要ありません。
リース用のGridLinkデータ・ソースの作成
自動サービス移行では、リース表のデータ・ソースが必要です。リース表は、リポジトリ作成ユーティリティ(RCU)によって、Oracle WebLogic Serverスキーマの一部として自動的に作成される表領域およびスキーマに存在する表です。
ノート:
データ・ソースの統合および接続使用量の削減を実現するには、データベース・リース用としてWLSSchemaDatasourceをそのまま再使用できます。このデータ・ソースはすでにFMW1412_WLS_RUNTIMEスキーマで構成されており、そのスキーマにリース表が格納されます。
エンタープライズ・デプロイメントでは、GridLinkデータ・ソースを作成する必要があります。
エンタープライズ・デプロイメントでの自動サービス移行の構成
このエンタープライズ・デプロイメント・ガイドの様々なSOAコンポーネントで使用されるサービスは、このガイドに記載されている構成ウィザードのステップに従うことで、自動サービス移行ですでに構成されています。その他のカスタム・サービスについては、次のステップを使用してサービス移行を構成できます。
エンタープライズ・デプロイメント・クラスタでのリース・メカニズムとデータ・ソースの設定
ノート:
データ・ソースの集計と接続使用状況の緩和を達成するために、データベース・リースにWLSRuntimeSchemaDataSourceデータ・ソースをそのまま再利用できます。このデータ・ソースはすでにFMW1412_WLS_RUNTIMEスキーマで構成されており、そのスキーマにリース表が格納されます。
次の手順は、WLSRuntimeSchemaDataSourceまたは「リース用のGridLinkデータ・ソースの作成」の説明に従って作成したカスタム・データソースを再利用することによってリース・データ・ソースが構成されていることを前提としています。
- WebLogicリモート・コンソールにログインします。
- 「ツリーの編集」に移動します。
- 構造ツリーで、「環境」→「クラスタ」を開きます。
- 「クラスタのサマリー」ページが表示されます。移行を構成するクラスタをクリックします。
- 「移行」タブをクリックします。
- 「移行基盤」ドロップダウン・メニューでデータベースが選択されていることを確認します。
- 「自動移行に使用するデータ・ソース」ドロップダウン・メニューで、「リース用のGridLinkデータ・ソースの作成」で作成したリース・データ・ソースを選択します。データ・ソース集計の場合は、
WLSRuntimeSchemaDataSourceを選択します。 - 「保存」をクリックします。
- ショッピング・カートの変更をコミットします
- 管理対象サーバーを再起動して、変更内容を有効にします。同じ構成変更セッションでASMの他の部分も構成している場合は、再起動を最後の1回のみにすることで、ダウンタイムを短くできます。
クラスタ内の管理対象サーバーのJTA移行設定の変更
クラスタにリース・メカニズムとデータ・ソースを設定した後、サービス移行を構成する管理対象サーバーに対して自動JTA移行を有効にできます。このトピックが適用されるのは、JTAサービスをエンタープライズ・デプロイメントの一部としてデプロイしている場合のみです。
サービス移行ポリシーの選択について
自動サービス移行を構成するとき、クラスタごとにサービス移行ポリシーを選択します。ここでは、サービス移行ポリシーを選択する際のガイドラインと考慮事項を説明します。
たとえば、シングルトンを実行するかパス・サービスを使用する製品またはコンポーネントは、「必ず1回」ポリシーからメリットを得ることができます。このポリシーでは、候補サーバーのリストにある管理対象サーバーが1つ以上動作している場合、この移行可能ターゲットでホストされるサービスは、サーバーが失敗するか管理者によって(正常または強制的に)シャットダウンされた場合に、クラスタ内のいずれかの場所でアクティブ化されます。このために、起動時に1つのサーバーで複数の同じサービスが起動してしまうことがあります。
このポリシーを使用する場合は、クラスタの起動を監視して、各サーバーで実行されているサーバーを識別する必要があります。その後、必要に応じて手動フェイルバックを実行して、システムの構成のバランスを調整できます。
その他のFusion Middlewareコンポーネントでは、「障害リカバリ」ポリシーの方が適しています。
『Oracle WebLogic Serverクラスタの管理』の手動および自動サービス移行のポリシーに関する項を参照してください。
クラスタ内の各管理対象サーバーでのサービス移行ポリシーの設定
自動サービス移行後のサービスのフェイルバック
自動サービス移行が発生した場合、Oracle WebLogic Serverでは、サーバーがオンラインに戻りクラスタに再度参加するときに、サービスが元のサーバーにフェイルバックすることはサポートされません。
そのため、フェイルオーバー中に、自動サービス移行によって特定のJMSサービスがバックアップ・サーバーに移行されたあとは、元のサーバーがオンラインに戻っても、サービスが元のサーバーに移行されることはありません。かわりに、サービスを元のサーバーに手動で移行する必要があります。
サービスを元のサーバーにフェイルバックするには、WLST migrateコマンドを使用します。詳細は、『Oracle WebLogic Server WLSTコマンド・リファレンス』を参照してください。