Oracle Process Manager and Notification (OPMN)サーバーを使用して、Essbaseエージェント・プロセスを監視および制御できます。Essbaseエージェント情報をopmn.xmlファイルに追加して、OPMNコマンドライン・インタフェースを使用することにより、Oracle Process Manager and Notification ServerでEssbaseエージェントを起動、停止および再起動できるようにします。OPMNは、Essbaseエージェントが応答しなくなった場合、予期せずに終了した場合、または使用不可になったことがpingおよび通知操作によって確認された場合、Essbaseエージェントを自動的に再起動できます。OPMNはEPM_HOMEにインストールされます。
図148には、EssbaseをOPMNと統合する方法が記載されています。
また、OPMNに用意されているフェイルオーバー機能を使用して、Essbaseクラスタの高可用性を実現できます(Essbaseフェイルオーバー・クラスタの理解を参照)。
Oracle Process Manager Modules (PM Modules)は、プロセス管理および状態監視を目的としてEssbaseエージェントと通信します。EssbaseエージェントとOPMNは、管理対象コンポーネントとして、コンポーネント間の通知用転送メカニズムであるOracle Notification Server (ONS)を使用して通信します。
Essbaseを起動(OPMNコマンドライン・インタフェースを使用)すると(Essbaseの起動および停止(OPMNを使用)を参照)、OPMNは、エージェント・プロセスを起動し、ステータスを初期化済に設定します(opmn.logファイルにメッセージが記録されます)。この状態が活動状態に切り替わるかどうかは、OPMNがエージェントから応答(reverse ping)を受信する(つまり、エージェントがアクティブである)かどうかによって決まります。
Essbaseが起動して稼働すると、OPMNはTCPベースのforward pingをエージェントに送信します。ping試行が失敗すると、OPMNはエージェントとのネゴシエーションを最大で3回試行します。すべてのping試行が失敗すると、OPMNはエージェントを停止します。OPMNは、次のシナリオに対してエージェントの再起動を試行します:
restart-on-death (opmn.xml)がTRUEに設定されている場合。
本番環境では、restart-on-deathは常にTRUEに設定しておく必要があります。フェイルオーバーの試行前に、まずローカル・ノードでプロセスを再起動することをお薦めします。restart-on-deathがTRUEに設定されていると、OPMNはまず、opmn.xmlに構成されている再起動の回数(最初の起動と再起動の回数)だけ、ローカル・ノードのEssbaseの再起動を試行します。すべての再起動に失敗すると、スタンバイ・ノードへのフェイルオーバーが行われます。
開発およびテスト環境では、restart-on-deathをFALSEに設定してフェイルオーバーをテストできます。
デフォルト・モードである非フェイルオーバー・モードでは、restart-on-deathのデフォルト設定はFALSEです。
フェイルオーバー・モードがオンの場合。これはrestart-on-death値より優先されます。restart-on-deathがFALSEで、フェイルオーバー・モードがオンである場合、OPMNはEssbaseをアクティブ・ノードまたはパッシブ・ノードで起動する可能性があります。
Essbaseを停止(OPMNコマンドライン・インタフェースを使用)すると、OPMNはエージェントをシャットダウンすることにより、エージェントが保持しているすべてのリソースを解放します。Essbaseサーバーは、親エージェント・プロセスがシャットダウンされていることを検出すると、自動的にシャットダウンされます。
OPMNによって管理されるコンポーネントは、手動で起動または停止しないようにする必要があります。システム・コンポーネントを起動および停止するには、opmnctlコマンドライン・ユーティリティを使用してください。
注: | Essbaseインスタンス(OPMNを使用して起動された)をMaxLを使用してシャットダウンしようとすると、OPMNを使用してEssbaseをシャットダウンするよう警告されます。 Windows環境では、Essbaseを起動する前に、指定ユーザーで起動されるようにOPMNサービス(Oracle Process Manager (instanceName))を変更し、共有ネットワーク・ファイルにアクセスできるようにします。 |
EssbaseをOPMNから起動、停止および監視するには、次のコマンドを使用してください:
opmnctl status
システム・コンポーネント・プロセスのステータスを確認できます。
opmnctl startproc ias-component= EssbaseInstanceName
EssbaseInstanceNameという名前のシステム・コンポーネントを起動します。
opmnctl restartproc ias-component= EssbaseInstanceName
EssbaseInstanceNameという名前のシステム・コンポーネントを再起動します。
opmnctl stopproc ias-component= EssbaseInstanceName
EssbaseInstanceNameという名前のシステム・コンポーネントを停止します。
ここで、EssbaseInstanceNameは、次のいずれかです:
フェイルオーバー・クラスタを実装しなかった場合は、EssbaseInstanceNameは、Essbaseサーバーの構成時に入力したEssbaseインスタンスの名前です。
フェイルオーバー・クラスタを実装した場合は、EssbaseInstanceNameは、Essbaseクラスタの設定時に入力したEssbaseクラスタの名前です。
Essbaseサーバーの開始および停止スクリプトはOPMNにリダイレクトされます。Oracle Enterprise Performance Management System Installation and Configuration Guideを参照してください。
OPMNコマンドの詳細は、『Oracle Process Manager and Notification Server管理者ガイド』を参照してください。
トラブルシューティングおよびロギング情報は、Oracle Enterprise Performance Management System Installation and Configuration Troubleshooting Guideを参照してください。
Essbaseクライアントは、URLを使用して、次の形式でEssbaseクラスタに接続できます:
http (s) ://host:port/aps/Essbase?ClusterName= clusterName &SecureMode=yesORno
ログインを簡略化するために、Essbaseクライアントは、URLではなく論理クラスタ名を<name>:<secure>という形式で直接使用する必要があります。クラスタ名を使用したクライアント・ログインを可能にする場合は、まず最初にProvider Servicesを構成するためのプロパティを指定してください。クラスタ名は、構成ファイルに指定されているProvider Servicesサーバーによって解決されます。
essbase.cfgのAPSRESOLVER — パーティション、XRef、およびXWriteに対してEssbaseサーバーを定義する場合などのサーバー/サーバー間通信
Oracle Essbase Technical Referenceを参照してください。
essbase.propertiesのaps.resolver.urls — クライアント/サーバー間通信。Smart ViewからEssbaseに接続する場合など
Oracle Hyperion Provider Services Administration Guideを参照してください。
サーバー名を解決する際に、Login APIは次の優先順位に従います:
内部キャッシュ内のサーバー名(APIレイヤーに保持)を検索します。
キャッシュ内にサーバー名が見つからない場合は、essbase.cfgにリストされている個々のProvider Servicesサーバーにコンタクトして、サーバー名の解決を試行します。
サーバー名が見つからない場合は、サーバー名を物理サーバー名として処理します。
Essbaseアクティブ-パッシブ・クラスタは、2つのEssbaseインスタンスで構成されます。2つのインスタンスはアクティブ・ノードとパッシブ・ノードに1つずつ置かれ、これらのノードは構成用とデータ用の共通ストレージを共有します。ストレージは2台のコンピュータ間で共有されるため(たとえば、SANを使用)、管理者がストレージを同期する必要がなく、(Provider ServicesでのEssbaseアクティブ-アクティブ・クラスタの場合のような)読取り専用サポートの制約もありません。Essbaseは、書込み時のデータ破損を回避するため、データベース・テーブルを使用して1つのエージェントおよびその関連サーバーのみをアクティブにします。インストールおよび構成時に、クラスタ内に存在する構成データおよびアプリケーション・データに関する情報を保持するテーブルが作成されます。Essbaseアクティブ-パッシブ・クラスタでは、ファイル・システムのロック(essbase.lckファイル)は使用されません。
OPMNで使用可能なサービス・フェイルオーバー機能を使用してEssbaseサーバーをクラスタリングすることにより、ライトバック機能およびAPIサポートとともにアクティブ-パッシブ・サービス・フェイルオーバーを提供します。Essbaseサーバーをクラスタリングすることにより、アクティブ・サーバーに障害が発生したときにパッシブ・サーバーに自動的に切り替える機能を提供し、Essbaseエージェントの高可用性を実現します。
この項のトピックでは、リースの概念について説明します。
Essbaseフェイルオーバーでは、リース・メカニズムを使用してスプリット・ブレイン問題を解決します。スプリット・ブレイン状態になるのは、アクティブ-パッシブ・クラスタ環境内の両方のインスタンスが自身の方がアクティブであると考え、お互いに気付かない場合です。これは、アクティブ-パッシブ・クラスタの基本的な前提に反しています。スプリット・ブレインが発生する状況には、ネットワークの停止やネットワーク・パーティションがあります。
Essbaseプロセスは、起動時に特定の共有リソースまたはリソース・セットについてのリースを取得します; プロセスは、リースを定期的に更新し、終了時にリースを破棄します。
このリースにより、プロセスがプライマリ・サービス・プロバイダとして確立され、特定の共有リソース・セットの更新、クライアント要求の処理、およびプロセスの生成を行う権限を付与されます。
Essbaseサーバーがリースを取得できるのは、権限を付与するエージェントに現在のリースがある場合のみです。
Essbaseフェイルオーバーには、一元化されたリレーショナル・データベースを使用して次に関する情報を格納、更新および取得するリース・メカニズムが実装されています:
共有リソース
リース所有権
リースの妥当性
この目的のために使用されるテーブル・セットは、Essbaseのインストールおよび構成時に作成されます。これらのテーブルは、Shared Servicesレジストリと同じデータベースおよびスキーマに格納されます。
Essbaseエージェントおよびサーバーは起動時に、他のプロセスが共有リソースに対するリースを現在所有しているかどうかを確認するためにデータベース・テーブルを検査します。他のプロセスが所有している場合、Essbaseエージェントおよびサーバーはリースの有効期限が切れるまで待機してから再試行します。他のプロセスが所有していない場合、Essbaseエージェントおよびサーバーは共有リソースの所有権を取得します; つまり、リースを取得します。
Essbaseエージェントおよびサーバーは、起動時にリースを取得し、終了時にリースを破棄します。Essbaseエージェントおよびサーバーは、リースを定期的に更新し、その状態を示します。リースを更新できない場合、Essbaseエージェントおよびサーバーは自動的に終了します。
リース所有権は、共有ディスク内に存在する共有リソース・セットを排他的に更新する権限です。リース所有者(EssbaseエージェントまたはEssbaseサーバー)は、事前構成された時間内にリースを更新しようとします。Oracle Essbase Technical ReferenceのAGENTLEASERENEWALTIMEおよびSERVERLEASERENEWALTIMEの構成設定に関する項を参照してください。
フェイルオーバー検出を制御する調整可能なパラメータを、表127、表128および表129に記載します。デフォルトでは、これらのパラメータは、フェイルオーバーが1分未満以内に実行されるよう設定されています。これらのパラメータは、ビジネス要件に応じて調整する必要があります。
表 127. 調整可能なエージェント・パラメータ(essbase.cfg内)
エージェント・パラメータ |
値 |
---|---|
エージェント・リースの有効期間 |
20秒 |
エージェント・リースの更新間隔 |
10秒 |
エージェント・リースの取得最大試行 |
5 |
表 128. 調整可能なサーバー・パラメータ(essbase.cfg内)
サーバー・パラメータ |
値 |
---|---|
サーバー・リースの有効期間 |
20秒 |
サーバー・リースの更新間隔 |
10秒 |
サーバー・リースの取得最大試行 |
5 |
リース取得の各試行失敗から最大試行までの遅延時間は、リースの有効期間が終了するまでに残された時間に基づいて計算されます。リースが使用可能なときに取得が失敗した場合、遅延は1秒になる場合があります。Oracle Essbase Technical Referenceを参照してください。
表 129. 調整可能なOPMNパラメータ(opmn.xml内)
OPMNパラメータ |
デフォルト値 |
---|---|
restart-on-death |
FALSE。FAILOVERMODE(essbase.cfg内)がTRUEに設定されている場合、この値をTRUEに変更し、Essbaseエージェントが異常終了した際にOPMNに再起動されるようにする必要があります。 |
shutdown-force-enabled |
FALSE。Essbaseフェイルオーバー・クラスタを使用可能にした場合は、これをTRUEに設定する必要があります。 これをTRUEに設定すると、Essbaseが強制終了されるのは、OPMNによる段階的なシャットダウンが失敗したときです。 |
OPMN Forward Ping間隔 |
20秒 |
OPMN PROC_READY (reverse ping)間隔 |
20秒 |
エージェント起動または再起動試行 |
2 OPMNが、このサービスに対してこのインスタンスが機能していないと判断するまでに、エージェントの起動または再起動の失敗を2回許容することを意味します。デフォルトの回数以内の失敗では、エージェント・サービスのフェイルオーバーがフェイルオーバー・モードで開始されます; デフォルトの回数を超えて失敗した場合は、エラーがスローされます。 |
OPMNエージェント起動タイムアウト |
10分 |
OPMNエージェント再起動タイムアウト |
10分 |
OPMNエージェント停止タイムアウト |
10分 |
『Oracle Process Manager and Notification Server管理者ガイド』を参照してください。
表130は、EssbaseエージェントおよびEssbaseサーバーが終了する原因となるエラー条件、影響を受けるコンポーネント、OPMNの応答、およびEssbaseクライアントの応答をリストしています。
表 130. Essbaseエージェントおよびサーバーの終了シナリオ
エラー条件 |
稼働していることが前提のもの |
フェイルオーバー機能 |
必要とされる品質保証契約内容 |
---|---|---|---|
Essbaseサーバーの停止:
|
Essbaseエージェント ネットワーク 共有ディスク |
OPMNは影響を受けません。 Essbaseエージェントは、新規要求を取得するとEssbaseサーバーを再起動します; リースが使用可能になるまで待機している間にサーバーの起動が若干遅れる可能性があります。 |
クライアントは、「要求の失敗」エラーを受信します(要求がサーバーに向けられている間)。 クライアントは、要求を再送信する必要があります。 |
Essbaseエージェントの停止:
|
ネットワーク 共有ディスク |
Essbaseエージェントに対するOPMNのpingが失敗します。 OPMNは、同じノードでのEssbaseエージェントの再起動を試行します。 Essbaseエージェントが同じノードで再起動しない場合、OPMNはパッシブ・ノードでフェイルオーバーを開始します。 Essbaseエージェントは、アプリケーション要求を取得するとサーバーを再起動します。 |
クライアントがSessionIDを使用してEssbaseエージェントへのネゴシエーションの試行中にネットワーク接続解除エラーを受信します。 サーバーは孤立し、次のイベントが発生します:
(1)または(2)のどちらかが順不同で発生し、サーバーが終了します。 クライアントはEssbaseに再ログインする必要があります(エージェントの再起動後)。 クライアントは要求を再送信します。 |
ネットワークの停止 (つまり、ネットワークパーティション。プライマリIP [eth0]がアクティブ・ノードで停止) |
Essbaseエージェント(現在のアクティブ・ノード上で) Essbaseサーバー(現在のアクティブ・ノード上で) 共有ディスク リース・データベース(別のネットワーク・インタフェース(eth0以外)からアクセス可能な場合には稼働している必要あり) |
Essbaseエージェントに対するOPMNのforward pingが失敗します。 OPMNはローカル・ノードでEssbaseエージェントの再起動を試行しますが、ノードが失敗します(eth0が停止); Essbaseエージェントは終了します。 サーバーは、Essbaseエージェントの停止を検出し、終了します。 アクティブ・ノードのONSピアとパッシブ・ノードのONSピアの間のネットワーク・ハートビートが失敗します(つまり、ネットワーク・パーティション)。 パッシブ・ノードのOPMNが新しいアクティブ・ノードになります。 OPMNは、新しいアクティブ・ノードでEssbaseエージェントを起動します; Essbaseエージェントのリースが使用可能になるのが若干遅れる可能性があります。 Essbaseエージェントは、要求を受信するとEssbaseサーバーを起動します。 |
クライアントは、セッションの再使用の試行中にエラーを受信するか、ネットワークの停止が検出されるまでハングします。 Essbaseエージェントおよびサーバーはアクセス不可になります。 クライアントは、パッシブ・ノードで起動した後でEssbaseエージェントに再ログインする必要があります; その後で、要求を再送信する必要があります。 |
エージェントの停止後に、Essbase.lckファイルが存在 |
適用なし |
適用なし フェイルオーバー・モードになると、Essbase.lckファイルは削除されます。 |
適用なし |
Essbaseエージェントの停止後、Essbase.secファイルが破損 (一意でないシナリオ; Essbaseエージェントのクラッシュまたはネットワーク・パーティションに続いて発生する場合あり) |
ネットワーク 共有ディスク |
Essbaseフェイルオーバーには適用なし。 Essbaseエージェントは、管理者が適切なessbase.secをバックアップから復元するまでは起動しません。 |
管理者なしではサービス使用不可。 Essbaseエージェントが再起動した後で、クライアントは再ログインする必要があります。 |
ディスク停止 (共有ディスクの停止) |
ネットワーク |
Essbaseフェイルオーバーには適用なし。 カスタマは、共有ディスク内のシングル・ポイント障害を解消する必要があります。 これには、ディスクの冗長性を備えたSAN (RAID 1-0構成)に含まれているような、ミラーリング設定を持った共有ディスクを稼働します。 |
アクティブ・ノードとパッシブ・ノードの両方に障害が発生します。 サービスは使用不可です。 |
リース・データベースの停止 |
ネットワーク 共有ディスク |
Essbaseエージェントは、リースを更新できず、終了します。 サーバーは、リースを更新できず、終了します。 リース・データベースのシングル・ポイント障害を解消する必要があります。リース・データベース(リレーショナル)をコールド・フェイルオーバー・クラスタ(CFC) (アクティブ-パッシブ)モードまたはRACモード(アクティブ-アクティブ)で実行することをお薦めします。 |
サービス使用不可。 アクティブ・ノードとパッシブ・ノードが両方ともEssbaseを実行できません |
ノード障害(致命的なハードウェア障害) |
ネットワーク 共有ディスク |
アクティブ・ノードのONSピアとパッシブ・ノードのONSピアの間のネットワーク・ハートビートが失敗します(現在のアクティブ・ノードがクラッシュしています)。 パッシブ・ノードのOPMNが新しいアクティブ・ノードになります。 OPMNは、新しいアクティブ・ノードでEssbaseエージェントを起動します; Essbaseエージェントのリースが使用可能になるのが若干遅れる可能性があります。 Essbaseエージェントは、要求を受信するとEssbaseサーバーを起動します。 |
クライアントは、セッションの再使用の試行中にエラーを受信します; エージェントおよびサーバーが停止しています。 クライアントは、スタンバイ・ノードで起動した後でEssbaseエージェントに再ログインする必要があります; その後で、要求を再送信する必要があります。 |
Shared Services Java Webアプリケーションの停止 |
ネットワーク 共有ディスク Essbaseエージェント Essbaseサーバー |
Essbaseフェイルオーバーには適用なし。 LDAPプロバイダ(OpenLDAP、Oracle LDAP/外部ディレクトリ)が実行中の間は、Essbaseエージェントはユーザーを認証できます(Shared Servicesに対するランタイム依存はありません) |
特定のユーザー操作が失敗します; たとえば、アプリケーションの作成および削除(Shared Services WebサーバーによるShared Servicesレジストリの更新)が失敗します。 既存のクライアントは稼働し続けます。 |
Essbaseエージェントおよびサーバーがハングします(アプリケーションの不具合) |
ネットワーク 共有ディスク Essbaseエージェント |
Essbaseエージェントおよびサーバーのハングは明示的には処理されませんが、フェイルオーバー・クラスタの使用時におけるエージェントおよびサーバーの全体的な堅牢性は向上します。 |
Essbaseエージェントおよびサーバーがそのリースを更新できる間は、既存の動作に変更はありません。 |
Essbaseクラスタを使用してサーバーの高可用性を得る場合、Essbaseアプリケーション・ファイルをシステム間で共有するためにネットワーク・ファイル・システムを使用するのが一般的です。
Windowsでは、Universal/Uniform Naming Convention (UNC)を使用して、ネットワーク・リソースの場所(共有ディレクトリなど)を指定できます。構文:
\\ComputerName\SharedFolder\Resource
EssbaseがWindows上で稼働している場合、次のEssbaseサーバー・アプリケーション・アーティファクトのネットワーク共有パスを指定する際にはUNCパスがサポートされます:
ARBORPATH
集約ストレージ・アプリケーションのテーブルスペースのパス
ブロック・ストレージ・アプリケーションのディスク・ボリュームのパス
その他すべてのファイル・パス(データ・ロードおよび次元構築用のクライアント側のパスなど)については、UNCパスはサポートされていません。
UNC構文の詳細は、MSDNを参照してください。
EssbaseをProvider Servicesとの暗号化(SSL)通信用に構成するには、Essbase libcurlライブラリを有効にしてProvider Servicesへのセキュア・チャネルを設定するための構成タスクを実行する必要があります。これは、論理Essbaseクラスタ名を使用してEssbaseとProvider Servicesの間にセキュア接続を作成するために必要な作業です。
次の構成オプションを使用して、ピア検証を無効にするか、認証局(CA)証明書の場所を指定します。
この構成を実行するには、オペレーティング・システムのコマンドラインを使用して次の環境変数を設定します:
API_DISABLE_PEER_VERIFICATION=1
この変数を設定するのは、接続がSSLを経由するが証明書を必要としない場合です。Essbaseは、データの暗号化は行いますが、認証は行いません。
API_DISABLE_PEER_VERFICATIONが設定されていないか、0に設定されている場合、証明書を設定する必要があります。Provider Servicesとのセキュア接続を確立する際、EssbaseはProvider Servicesサーバーの認証を行うために、CAによるProvider Services証明書への署名を必要とします。証明書を含むファイルまたはディレクトリを指定できます。次のオプションのいずれかを選択します:
API_CAINFO=CA
certificate file path
または
API_CAPATH=
directory path containing CA certificates
ここで説明した変数は、httpsで始まるProvider Services URLを使用してログインする場合にのみ適用されます。http URLを使用したログインはTCP/IP経由でリダイレクトされます。