プライマリ・コンテンツに移動
Oracle® Enterprise Managerライフサイクル管理ガイド
12cリリース5 (12.1.0.5)
B66837-13
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

31 コヒーレンス・ノードおよびクラスタのプロビジョニング

この章では、Oracle Enterprise Manager Cloud Control (Cloud Control)を使用してコヒーレンス・ノードまたはクラスタをファーム内の複数のターゲットにプロビジョニングする方法について説明します。この章の具体的な内容は次のとおりです。

31.1 開始

この項では、この章の手引きとして、コヒーレンス・ノードおよびクラスタのプロビジョニングに関連する手順の概要を示します。コヒーレンス・デプロイメント・プロシージャを使用すると、次の操作を実行できます。

  • 新規クラスタに1つ以上のノードを追加し、このクラスタをCloud Control監視ターゲットとして追加します。

  • 既存のクラスタに管理ノードを追加し、このクラスタをCloud Control監視ターゲットとして追加します。

  • Cloud Controlによってすでに監視されているクラスタに1つ以上のノードを追加します。

  • 変更されたソフトウェア・コンポーネントまたは構成ファイルをコピーして既存のノードを更新し、ノードを再起動します。

  • 新規のコヒーレンス・クラスタを作成します。

この項は、コヒーレンス・ノードのデプロイを成功させるために必要な一連の処理を理解するためのドキュメント・マップと考えてください。各手順の参照リンクをクリックすると、詳細情報が説明されている関連セクションが表示されます。

表31-1 コヒーレンス・ノードのデプロイの概要

ステップ 説明 参照リンク

手順1

デプロイメント・プロシージャの理解

Cloud Controlで提供されている、コヒーレンス・ノードをデプロイするためのデプロイメント・プロシージャについて理解します。デプロイメント・プロシージャの機能や、その対象となるユースケースなどを把握します。

デプロイメント・プロシージャの詳細は、第31.3項を参照してください。

手順2

サポートされているリリースの把握

サポートされているOracle Coherenceのリリースを把握します。

デプロイメント・プロシージャでサポートされているリリースについては、第31.2項を参照してください。

手順3

前提条件の確認

デプロイメント・プロシージャを実行する前に、ターゲットとしてのコヒーレンス・ノードの追加、Oracleソフトウェア・ライブラリの設定などの前提条件を満たしていることを確認する必要があります。

コヒーレンス・ノードをデプロイするための前提条件の詳細は、第31.3.1項を参照してください。

手順4

デプロイメント・プロシージャの実行

デプロイメント・プロシージャを実行して、コヒーレンス・ノードをプロビジョニングします。

コヒーレンス・ノードをデプロイするには、第31.3.3項で説明されている手順を実行します。


31.2 サポートされているリリース

この項では、このデプロイメント・プロシージャでサポートされているOracle Coherenceのリリースを示します。

  • Oracle Coherence 3.5、3.6および3.7。

  • Oracle Coherence 12.1.2スタンドアロン・バージョン。

31.3 コヒーレンス・ノードおよびクラスタのデプロイ

この項では、既存のクラスタへの1つ以上のノードの追加、または「コヒーレンス・ノード・プロビジョニング」プロシージャを使用する新規のクラスタ作成の方法について説明します。

この項の内容は次のとおりです。

31.3.1 前提条件

デプロイメント・プロシージャを実行する前に、次の前提条件を満たしている必要があります。

  • コヒーレンス・ノードを追加または更新するホストは、Cloud Controlの監視対象ターゲットである必要があります。

  • コヒーレンス・ソフトウェアが格納されたZIPファイル、デフォルト構成ファイル、および開始スクリプトを作成する必要があります。このZIPファイルは、ソフトウェア・コンポーネントとしてOracleソフトウェア・ライブラリに追加する必要があります。このZIPファイルのサイズが25MBを超える場合、管理エージェントにより監視されているホストからこのファイルをアップロードする必要があります。デフォルト構成ファイルをオーバーライドするコンポーネントとして、特定の構成ファイルをソフトウェア・ライブラリに追加できます。これらの構成ファイルは、ノードのタイプ(記憶域、管理など)によって異なる場合があります。ソフトウェア・コンポーネントを追加するときに、「製品名」として「Coherence」を指定することをお薦めします。

  • コヒーレンス・バイナリが存在しないホスト上で新しいノードをプロビジョニングする場合は、coherence.zipファイルおよびdefault-start-script.plをOracleソフトウェア・ライブラリにアップロードする必要があります。プロビジョニングに必要な各ファイルは、個々のソフトウェア・コンポーネントとしてアップロードする必要があります。

31.3.2 コヒーレンス・コンポーネントの作成

1つ以上のコヒーレンス・コンポーネントを作成して、ソフトウェア・ライブラリに保存できます。このコンポーネントは、コヒーレンス・ノードおよびクラスタをプロビジョニングするときに必要になります。コヒーレンス・コンポーネントを作成するには、次の手順を実行します。

  1. 「エンタープライズ」メニューから、「プロビジョニングとパッチ適用」「ソフトウェア・ライブラリ」を選択します。

  2. コンポーネントを格納するフォルダを作成します。フォルダが作成されたら、フォルダを右クリックして、「アクション」メニューから「エンティティの作成」および「コンポーネント」を選択します。

  3. 「コンポーネントの作成」ポップアップ・ウィンドウが表示されます。「サブタイプの選択」ドロップダウン・リストから「汎用コンポーネント」を選択し、「続行」をクリックします。

    図31-1 「汎用コンポーネントの作成: 説明」ページ

    図31-1については前後の文で説明しています。
  4. 「汎用コンポーネントの作成: 説明」ページで、「製品」に「Coherence」と入力します。これは、コヒーレンス・プロビジョニングでファイルを検索する際に便利です。「次へ」をクリックします。

  5. 「汎用コンポーネントの作成: ファイルの選択」ページで、「ファイルのアップロード」オプションを選択します。

    図31-2 「汎用コンポーネントの作成: ファイルの選択」ページ

    図31-2については前後の文で説明しています。
  6. 「ソースの指定」セクションで、「ファイル・ソース」ドロップダウン・ボックスから「エージェント・マシン」を選択し、次のファイルをアップロードします。

    • $AGENT_ROOT/plugins/oracle.sysman.emas.agent.plugin_12.1.0.1.0/archives/coherence/bulkoperationsmbean_11.1.1.jar

    • $AGENT_ROOT/plugins/oracle.sysman.emas.agent.plugin_12.1.0.1.0/archives/coherence/coherenceEMIntg.jar

    • $AGENT_ROOT/plugins/oracle.sysman.emas.agent.plugin_12.1.0.1.0/scripts/coherence/default-start-script.pl

    Coherence.zipなどの大きいZIPファイルをアップロードする場合は、そのファイルをエージェント・マシンに保存する必要があります。ファイルのアップロード先のエージェント上のパスを指定します。このZIPファイルは、http://www.oracle.com/technetwork/middleware/coherence/downloads/index.htmからダウンロードする必要があります。

  7. 「保存とアップロード」をクリックして、指定したアップロード場所にリモート・ファイルをアップロードするためのファイル転送ジョブを発行します。

31.3.3 デプロイメント・プロシージャ

コヒーレンス・ノードまたはクラスタをデプロイするには、次の手順を実行します。

  1. 「エンタープライズ」メニューから、「プロビジョニングとパッチ適用」「Middlewareプロビジョニング」を選択します。

  2. 「コヒーレンス・ノード・プロビジョニング」デプロイメント・プロシージャを選択し、「起動」をクリックします。


    注意:

    また、次の方法でデプロイメント・プロシージャを起動することもできます。
    • 「エンタープライズ」メニューから「プロビジョニングとパッチ適用」を選択し、「プロシージャ・ライブラリ」を選択します。リストから「Coherence」デプロイメント・プロシージャを選択し、「起動」をクリックします。

    • 「Coherence」ホームページのメニューから、「コヒーレンス・ノード・プロビジョニング」オプションを選択します。


  3. コヒーレンス・ノード・プロビジョニング・ウィザードの最初のページである「ソース選択」ページが表示されます。

    図31-3 「ソース選択」ページ

    「ソース選択」ページ
  4. コヒーレンス・クラスタの追加または更新に必要なすべてのソフトウェア・コンポーネントを追加できます。コヒーレンス・ホームがすでに作成されている場合は、「次へ」をクリックして次のページに進みます。

    コヒーレンス・ホームが存在しない場合は、「追加」をクリックして、ソフトウェア・ライブラリからコヒーレンス・バイナリおよび開始スクリプトを追加します。「ソースの選択」ポップアップが表示されます。デフォルトでは、「ソフトウェア・ライブラリ」にある、製品名がCoherenceのソフトウェア・コンポーネントがすべて表示されます。必要なコンポーネントを選択し、「選択」.をクリックします。

  5. 選択したコンポーネントごとに、ターゲット・マシン上の宛先ディレクトリを指定します。これは、絶対パスか、${INSTALL_DIR}または${COHERENCE_HOME}からの相対パスにします。coherence.zipファイルの内容がこのディレクトリに抽出されます。


    注意:

    • $INSTALL_DIRの値は、コヒーレンス・ノード・プロビジョニング: ターゲット選択ページで定義され、COHERENCE_HOMEディレクトリの上位のレベルで設定されます。

    • ターゲット・マシンでソフトウェア・コンポーネントが使用可能になっている場合は、この手順を省略できます。


  6. 「次へ」をクリックします。「ターゲット選択」ページが表示されます。このページでは、次の操作が可能です。

    • ノードの追加: 新しいノードを追加するか、既存のノードをコピーすることができます。「ターゲット名」フィールドで「検索」アイコンをクリックし、リストからコヒーレンス・クラスタを選択します。次の詳細が表示されます。

      • クラスタ名: クラスタの名前。

      • クラスタ通信: 「マルチキャスト」または「Well Knownアドレス(WKA)」のいずれかです。

      • ライセンス・モード: クラスタがデプロイされたモードです。

      「新規ノード」セクションで「追加」をクリックして、Cloud Controlにより監視されている既存のコヒーレンス・クラスタに新規ノードを追加します。コヒーレンス・ノードの追加ページが表示されます。ノードの詳細を指定して「続行」をクリックし、ノードを追加したらコヒーレンス・ノード・プロビジョニング: ターゲットの選択ページに戻ります。詳細は第31.3.3.1項を参照してください。

    • 既存ノードのコピーの作成: 既存ノードのコピーを作成できます。ノードの追加先のクラスタを選択すると、「既存のノード」セクションに、クラスタに存在するノードのリストが表示されます。リストからノードを選択し、「類似作成」をクリックします。コヒーレンス・ノードの追加ページが表示されます。ノードの詳細を指定して「続行」をクリックし、コヒーレンス・ノード・プロビジョニング: ターゲットの選択ページに戻ります。選択したノードのコピーが「新規ノード」セクションに表示され、デプロイ可能になります。

    • クラスタの作成: 「クラスタの作成」をクリックして、新規のコヒーレンス・クラスタを作成します。クラスタ名と次の詳細を入力します。

      • クラスタ名: クラスタに一意の名前を入力します。

      • クラスタ通信: 「マルチキャスト」または「Well Knownアドレス(WKA)」を選択します。「マルチキャスト」を選択する場合、クラスタ・ポートおよびクラスタ・アドレスの入力を求められます。WKAを選択する場合は、1つ以上の<hostname>:<portエントリ・セットをカンマで区切って入力し、「コヒーレンス・ノード・プロビジョニング: ノードの追加」ページでWKAの詳細が指定されていることを確認します。


        注意:

        • WKAを選択する場合、WKAエントリ用のオーバーライド・ファイル(tangosol-coherence-override-em.xml)を作成し、このファイルにDtangosol.coherence.overrideパラメータを指定する必要があります。このファイルはdefault-start-script.plから作成され、必要に応じて変更できます。

        • 既存のノードのコピーを作成する際に(「類似作成」オプション)、クラスタ通信にWKAを選択した場合、Well Knownアドレスフィールドにホスト名ではなくIPアドレスを入力するよう求められます。


      • ライセンス・モード: クラスタがデプロイされるモードを指定します。これは、「開発」、「評価」または「本番」にすることができます。

      「新規ノード」セクションで「追加」をクリックして、作成している新規クラスタにノードを追加します。コヒーレンス・ノードの追加ページが表示されます。ノードの詳細を指定して「続行」をクリックし、ノードを追加したらコヒーレンス・ノード・プロビジョニング: ターゲットの選択ページに戻ります。

      クラスタを作成するには、coherenceEMIntg.jar、bulkoperationsmbean_11.1.1.jar、default-start-script.plおよびCoherence.zipコンポーネントが必要です。

  7. ウィザードの次の手順に進むには「次へ」をクリックします。「コヒーレンス・ノード・プロビジョニング: 資格証明の設定」ページで、各ホストの資格証明を設定できます。リストから複数のホストを選択すると、複数ホストに同一の資格証明を適用できます。

  8. ホストを選択し、次のいずれかの資格証明を指定します。

    • 優先資格証明: このオプションはデフォルトで選択され、管理リポジトリに保存されている優先資格証明が使用されます。Cloud Controlでこれが定義されている場合にのみ、このオプションを使用できます。

    • 名前付き資格証明: 優先資格証明をオーバーライドし、すべてのホストとWebLogicドメインに使用する共通の資格証明セットを選択できます。

    • 新規資格証明: 優先資格証明をオーバーライドし、ホストごとに別々の資格証明セットを指定できます。

    資格証明を選択し、「適用」をクリックして、選択したホストに資格証明を適用します。資格証明の設定の詳細は、『Enterprise Manager Cloud Control管理者ガイド』の「Enterprise Managerのセキュリティ」の章を参照してください。

  9. 「次へ」をクリックします。「スケジュール」ページが表示されます。このページでは、ノードをデプロイするためのスケジュールを指定できます。ノードを即時にデプロイするか、後日デプロイするかを選択できます。


    注意:

    「猶予期間」を「未定義」に設定した場合、Cloud Controlではノードのデプロイが無期限に試行されます。このフィールドに日時を指定した場合、デプロイメント・プロセスはこの期間後に中止されます。

  10. 「次へ」をクリックします。「確認」ページが表示されます。ノードをデプロイするために指定した詳細を確認できます。ノードを更新する場合、停止されるノード・プロセスをこのページで確認できます。「終了」をクリックして、ノードをデプロイまたは更新します。

    新規の管理ノードが作成された後、ノードをクラスタに追加する前に、最初のコレクションを待機する必要があります。

31.3.3.1 コヒーレンス・ノードの追加

1つ以上の新規ノードを追加することにより、ノードを既存のクラスタに追加するか、新規クラスタを作成できます。ノードを追加するには、次の手順を実行します。

  1. 「コヒーレンス・ノード・プロビジョニング: ターゲット選択」ページで、「追加」をクリックします。コヒーレンス・ノードの追加ページが表示されます。次の詳細を入力します。

    図31-4 「コヒーレンス・ノードの追加」ページ

    コヒーレンス・ノードの追加ページ

    表31-2 「コヒーレンス・ノードの追加」ページ

    フィールド名 説明

    ホスト詳細

    ホスト名

    ノードを追加するホストを選択します。マシン構成とノード構成に応じて、ホストで複数のノードを使用できます。

    注意: ここで選択したホスト名は、2つの起動パラメータの設定に使用されます。tangosol.coherence.machineパラメータの設定にはtangosol_coherence_machine環境変数を使用し、oracle.coherence.machineパラメータの設定にはoracle_coherence_machineを使用します。

    ノード数

    追加する必要のあるノード数を指定します。デフォルトでは、このフィールドの値は1ですが、マシンやノードの構成に応じて必要な数のノードを追加できます。値が1より大きい場合、すべてのノードが次のプロパティを持ちます。

    • 各ノードで同じCOHERENCE_HOMEおよび開始スクリプトが使用されます。

    • 「ノード名」の値が接頭辞として追加され、数字が各ノードに追加されます。たとえば、<node_name>_1<node_name>_2のようになります。いずれの名前もクラスタ内で一意である必要があります。

    • ノードが追加されるたびに、「JMXリモート・ポート」の値は1ずつ増えます。たとえば、1つ目のノードの「JMXリモート・ポート」の値が8088である場合、2つ目のノードの値は8089になります。

    ノードの詳細

    ノード名

    一意のノード名を入力します。

    サイト名

    コヒーレンス・ノードの場所です。これは、ノードが実行されているラックとマシンを識別する地理的な物理サイト名です。

    ラック名

    マシンが設置されているサイト内のラックの名前です。

    ロール名

    ロールは記憶域/データ、アプリケーション/プロセス、プロキシまたは管理ノードのいずれかです。

    注意: 「ノード名」、「サイト名」、「ラック名」および「ロール名」は32文字を超えることはできません。

    ソフトウェア・コンポーネントをコピーしないでください。

    コヒーレンス・ホームがすでに存在しているマシンにノードを追加する場合は、「ソフトウェア・コンポーネントをコピーしないでください。」チェック・ボックスを選択する必要があります。新規のホストにファイルをコピーする場合は、「ソフトウェア・コンポーネントをコピーしないでください。」チェック・ボックスの選択を解除して、「コヒーレンス・ノード・プロビジョニング: ソース選択」ページでバイナリが選択されていることを確認します。

    Well Knownアドレス(WKA)

    「コヒーレンス・ノード・プロビジョニング: ターゲット選択」ページで「クラスタ通信」がWKAに設定されている場合、ホストとポート番号をhost1:port1, host2:port2の形式で入力します。

    JVM診断の詳細


    JVMマネージャのホストおよびポート

    このノードをJVM診断マネージャによって監視する場合は、JVM診断コンソールのアドレスとポート番号を指定します。

    管理ノードの詳細

    MBeanServerを使用した管理ノード

    クラスタ内の複数の管理ノードを定義できますが、プライマリ管理ノードとしてマークできるのは1つの管理ノードのみです。フェイルオーバーに対応できるように、異なるホストまたはマシンで実行されている2つ以上の管理ノードを追加することをお薦めします。

    JMXリモート・ポート

    EMIntegration Mbeanサーバーのポート番号です。

    JMXユーザー名

    認証が有効になっている場合の、JMXサーバーのユーザー名です。

    JMXパスワード

    認証が有効になっている場合の、JMXサーバーのパスワードです。

    注意: JMX認証を有効にするには、com.sun.management.jmxremote.authenticate=trueを設定する必要があります。JMXユーザー名とJMXパスワードは、$JDK_HOME/jre/lib/management/jmxremote.passwordファイルおよび$JDK_HOME/jre/lib/management/jmxremote.accessファイル内に設定する必要があります。

    監視用に使用するプライマリ管理ノード

    監視に使用するプライマリ管理ノードとして追加する管理ノードをマークする場合は、このチェック・ボックスを選択します。このノードがコヒーレンス・クラスタの検出に使用され、後から追加されたノードは新しく検出されたクラスタに追加されます。クラスタに複数のノードを追加する場合、プライマリ・ノードとしてマークできる管理ノードは1つのみです。プライマリ管理ノードに障害が発生した場合、他のいずれかの管理ノードを監視用に構成できます。他に使用可能な管理ノードがない場合、新規のプライマリ管理ノードを既存のクラスタに追加して、このノードを監視に使用することができます。

    一括MBean操作の使用

    このチェック・ボックスは、デフォルトで選択されます。このオプションを選択した場合、BulkOperationsMBeanを使用して新規の管理ノードが起動されます。

    環境詳細


    インストール・ディレクトリ

    コヒーレンス・ソフトウェア・コンポーネントが格納されているフォルダの絶対パスを入力します。ここで指定したパスは、コヒーレンス・ノード・プロビジョニング: ソース選択ページで指定した「接続先ディレクトリ」として使用されます。この値は、ノードごとに異なっていても、1つ以上のノードに対して同じであってもかまいません。

    開始スクリプト

    このスクリプトがコヒーレンス・ノードの起動に使用されます。このスクリプトはオペレーティング・システムに固有であり、関連するシステム・パラメータを指定することでノードに必要な適切な環境を設定します。例は、「サンプル・スクリプト」を参照してください。


    次の表に、デプロイメント時に指定した値が、開始スクリプト内に指定されている環境変数によってどのように使用されるかを示します。デプロイメント・プロシージャでは、エージェントのインストール詳細を使用してJAVA_HOME変数とAGENT_HOME変数も設定されます。開始スクリプトに適切な値を指定して、これらをオーバーライドできます。

    表31-3 環境変数

    UIパラメータ 設定されている環境変数 コヒーレンス・システム・パラメータ

    CLUSTER_NAME

    tangosol_coherence_cluster

    tangosol.coherence.cluster

    CLUSTER_ADDRESS

    tangosol_coherence_clusteraddress

    tangosol.coherence.clusteraddress

    CLUSTER_PORT

    tangosol_coherence_clusterport

    tangosol.coherence.clusterport

    NODE_NAME (32 chars)

    tangosol_coherence_member

    tangosol.coherence.member

    SITE_NAME (32 chars)

    tangosol_coherence_site

    tangosol.coherence.site

    RACK_NAME (32 chars)

    tangosol_coherence_rack

    tangosol.coherence.rack

    MACHINE_NAME

    tangosol_coherence_machine

    tangosol.coherence.machine

    ROLE_NAME (32 chars)

    tangosol_coherence_role

    tangosol.coherence.role

    JMX_REMOTE_PORT

    jmx_remote_port

    com.sun.management.jmxremote.port

    LICENSE_MODE

    license_mode

    tangosol.coherence.mode

    COHERENCE_HOME

    coherence_home

    oracle.coherence.home

    START_SCRIPT

    start_script

    oracle.coherence.startscript

    JVM_CONSOLE_HOST

    jvm_console_host

    jamconhost

    JVM_CONSOLE_PORT

    jvm_console_port

    jamconport

    WKA_PORT

    wka_port

    tangosol.coherence.override=em-coherence-override.xml


  2. ノードを追加した後、「続行」をクリックして「コヒーレンス・ノード・プロビジョニング: ターゲット選択」ページに戻ります。

  3. ウィザードの次の手順に進むには「次へ」をクリックします。

31.3.3.2 サンプル・スクリプト

default-start-script.plスクリプトおよびgenerate-wka-override.plスクリプトは、$EMAS_PLUGIN_ROOT/scripts/coherence/ディレクトリ内にあります。

31.3.3.2.1 default-start-script.pl

このスクリプトは、コヒーレンス・ノードの起動に使用されるデフォルトの開始スクリプトです。サンプル・スクリプトを次に示します。

#!/usr/local/bin/perl

# Sample script to demonstrate starting of following Coherence nodes.
# When this script is passed in as a start script in Coherence Node Provisioning
  Deployment Procedure, while executing start node step, the deployment procedure
  sets all user entered options as environment variables. Based on the values of
  these environment variables, you can start different types of Coherence nodes
#
# - Management Node with Oracle Bulk Operation MBean is started when
# "bulk_mbean" and "jmx_remote_port" variables are set. For this option,
# oracle.sysman.integration.coherence.EMIntegrationServer Java class is executed
# that starts a MBeanServer in this node and registers Oracle Bulk Operation
# MBean. You need coherenceEMIntg.jar and bulkoperationsmbean_11.1.1.jar in the
# classpath.

#
# - Management Node is started when "jmx_remote_port" is set, but "bulk_mbean" is
  NOT set.
#
# - Managed node when "jmx_remote_port" is not set.
#
#
# Following variables are set from the deployment procedure. Use these values to
# define required system parameters to override Coherence default settings.

my $coherence_home=$ENV{'COHERENCE_HOME'};

my $start_script=$ENV{'START_SCRIPT'};
my $java_home=$ENV{'JAVA_HOME'};
my $agent_home=$ENV{'AGENT_HOME'};
my $wka_port=$ENV{'WKA_PORT'};
my $license_mode=$ENV{'LICENSE_MODE'};
my $jamhost=$ENV{'JAM_CONSOLE_HOST'};
my $jamport=$ENV{'JAM_CONSOLE_PORT'};

my $member=$ENV{'tangosol_coherence_member'};
my $site=$ENV{'tangosol_coherence_site'};
my $rack=$ENV{'tangosol_coherence_rack'};
my $machine=$ENV{'tangosol_coherence_machine'};

# tangosol.coherence.machine has a limitation of 32 chars
# As a workaround, use oracle.coherence.machine to set machine name
# This parameter is used to identify hosts for cluster management features
my $oracle_coherence_machine=$ENV{'oracle_coherence_machine'};
my $role=$ENV{'tangosol_coherence_role'};

my $jmxport=$ENV{'jmx_remote_port'};
my $cluster=$ENV{'tangosol_coherence_cluster'};
my $clusteraddr=$ENV{'tangosol_coherence_clusteraddress'};
my $clusterport=$ENV{'tangosol_coherence_clusterport'};
my $bulkmbean=$ENV{'bulk_mbean'};
my $jmx_auth=$ENV{'jmx_enable_auth'};

my $SYS_OPT="";
my $JVM_OPT="";

my $psep="";
my $dsep="";
if ( !&IsWindows() ) {
$psep=":";
$dsep="/";
}
else
{
$psep=";";
$dsep="\\";
}

print
"\n\n*************************************************************************\n"

print "Output from default-start-script\n";
print "Starting Node : $member\n";
print "Coherence Home : $coherence_home \n";
print "Start Script : $start_script \n";
print "Java Home : $java_home \n";
print "Agent Home : $agent_home \n";
print "WKA Port: $wka_port \n";
print "License Mode: $license_mode \n";

print "Site Name : $site \n";
print "Rack Name : $rack \n";
print "Machine Name : $machine \n";
print "Oracle Coherence Machine Name : $oracle_coherence_machine \n";
print "Role Name : $role \n";

print "Cluster Name : $cluster \n";
print "Cluster Addr : $clusteraddr \n";
print "Cluster Port : $clusterport \n";
print "JMX Port : $jmxport \n";
print "Bulk MBean : $bulkmbean \n";
print "JMX Auth Enabled : $jmx_auth \n";
#

# you may run a local script as part of this script and override those
# settings.
# Override JAVA_HOME variable by setting it locally
#
#. ./set-env.sh
#echo "After setting JAVA_HOME locally, JAVA_HOME: $JAVA_HOME"
# Options for Java Virtual Machine.
$JVM_OPT="-server -Xms512m -Xmx512m -Xincgc -verbose:gc";
#
# Set system parameters to Coherence node
$SYS_OPT="-Djava.net.preferIPv4Stack=true";
# This param allows the mbeans on this node to be registered to mbean servers
running on management nodes


$SYS_OPT="$SYS_OPT -Dtangosol.coherence.management.remote=true";
$SYS_OPT="$SYS_OPT -Dcom.sun.management.jmxremote.ssl=false";
$SYS_OPT="$SYS_OPT -Dtangosol.coherence.cluster=$cluster";
$SYS_OPT="$SYS_OPT -Dtangosol.coherence.member=$member";
$SYS_OPT="$SYS_OPT -Dtangosol.coherence.site=$site";
$SYS_OPT="$SYS_OPT -Dtangosol.coherence.rack=$rack";
$SYS_OPT="$SYS_OPT -Dtangosol.coherence.machine=$machine";
# set this if machine name > 32 chars, tangosol.coherence.machine has a limitaion
# of 32 chars
$SYS_OPT="$SYS_OPT -Doracle.coherence.machine=$oracle_coherence_machine";
$SYS_OPT="$SYS_OPT -Dtangosol.coherence.role=$role";

# Set coh home and start script so they will be part of input args

$SYS_OPT="$SYS_OPT -Doracle.coherence.home=$coherence_home";
$SYS_OPT="$SYS_OPT -Doracle.coherence.startscript=$start_script";

# set jmxremote.authenticate=true if $jmx_enable_auth is present.
# username/password needs to be set in $JDK_
HOME/jre/lib/management/jmxremote.password and

# $JDK_HOME/jre/lib/management/jmxremote.access files. 
Uncomment the following block after adding these files.
#
if ($jmx_auth ne "") {
$SYS_OPT="$SYS_OPT -Dcom.sun.management.jmxremote.authenticate=$jmx_auth";
 else {
$SYS_OPT="$SYS_OPT -Dcom.sun.management.jmxremote.authenticate=false";
}

# Default is true, so make sure to set it to false if not using authentication
# $SYS_OPT="$SYS_OPT -Dcom.sun.management.jmxremote.authenticate=false";
# set jmxremote.port only for management nodes, if user passes in.
# It enables monitoring from remote systems through this port.
if ($jmxport ne "") {
$SYS_OPT="$SYS_OPT -Dcom.sun.management.jmxremote.port=$jmxport";
}
#
# Define clusteraddress and clusterport if we have valid values.
#
if($clusteraddr ne "") {
$SYS_OPT="$SYS_OPT -Dtangosol.coherence.clusteraddress=$clusteraddr";
}

if("$clusterport" ne "") {
$SYS_OPT="$SYS_OPT -Dtangosol.coherence.clusterport=$clusterport";
}

if("$license_mode" ne "") {
$SYS_OPT="$SYS_OPT -Dtangosol.coherence.mode=$license_mode";
}
#This is used to generate WKA override file. If you choose to use an existing
#override file, you can comment this out.
#Make sure you set "-Dtangosol.coherence.override" to the appropriate file name.
if("$wka_port" ne "") {
$wka_port = "\"".$wka_port."\"";
$wka_script = $agent_
home.$dsep."sysman".$dsep."admin".$dsep."scripts".$dsep."coherence".$dsep."genera
te-wka-override.pl";
print "executing $wka_script $wka_port\n";
if ( !&IsWindows() ) {
system("chmod 0700 $wka_script");
}
if(fork() == 0) {
exec("$wka_script $wka_port") or die "Could not execute
generate-wka-override.xml\n";
}
$SYS_OPT="$SYS_OPT -Dtangosol.coherence.override=em-coherence-override.xml";
}
my $startup_class="";
my $cmd="";
# Note that Coherence lib is under $COHERENCE_HOME/coherence. Add any application
# specific jars to this classpath, if needed.
my $CLASSPATH=$coherence_home.$dsep."lib".$dsep."coherence.jar".$psep.$coherence
_home.$dsep."lib".$dsep."reporter.jar";
print "CLASSPATH: $CLASSPATH\n";
if($jamhost ne "" && $jamport ne "") {
$CLASSPATH=$CLASSPATH.$psep.$agent
_home.$dsep."archives".$dsep."jlib".$dsep."jamagent.war";
my $jamjvmid="$cluster/$member";
print "Using Oracle JVMD - $jamjvmid\n";
$SYS_OPT="$SYS_OPT -Doracle.coherence.jamjvmid=$jamjvmid";
$SYS_OPT="jamconshost=$jamhost $SYS_OPT";
$SYS_OPT="jamconsport=$jamport $SYS_OPT";
$SYS_OPT=" oracle.ad4j.groupidprop=$jamjvmid $SYS_OPT";
}
if ($bulkmbean ne "" && $jmxport ne "") {
# Management node with Bulk Operation MBean.
# add Oracle supplied jars for Bulk Operation MBean
$CLASSPATH=$CLASSPATH.$psep.$agent
_home.$dsep."..".$dsep."..".$dsep."lib".$dsep."coherenceEMIntg.jar".$psep.$agent
_home.$dsep."..".$dsep."..".$dsep."dependencies".$dsep."bulkoperationsmbean
_11.1.1.jar";
# Start MBeanServer
$SYS_OPT="$SYS_OPT -Dtangosol.coherence.management=all";
print "Starting a management node with Bulk Operation MBean \n";
$startup_class="oracle.sysman.integration.coherence.EMIntegrationServer";
$cmd=$java_home.$dsep."bin".$dsep."java -cp $CLASSPATH $JVM_OPT $SYS_OPT $startup
_class";
} elsif ($jmxport ne "") {
# Management Node with out Bulk Operation MBean
# Start MBeanServer
$SYS_OPT="$SYS_OPT -Dtangosol.coherence.management=all";
print "Starting a management node ...\n";
$startup_class="com.tangosol.net.DefaultCacheServer";
$cmd=$java_home.$dsep."bin".$dsep."java -cp $CLASSPATH $JVM_OPT $SYS_OPT $startup
_class";
} else {
# A simple managed node. Do not start MBeanServer.
$SYS_OPT="$SYS_OPT -Dtangosol.coherence.management=none";
print "Starting a simple managed node ...\n";
$startup_class="com.tangosol.net.DefaultCacheServer";
$cmd=$java_home.$dsep."bin".$dsep."java -cp $CLASSPATH $JVM_OPT $SYS_OPT $startup
_class";
}
if ( !&IsWindows() ) {
if (fork() == 0) {
print "Executing start script from child process... $cmd \n";
exec("$cmd") or die "Could not execute $cmd\n";
}
} else {
print "Command used to start node = $cmd\n";
exec($cmd);
}
print "exiting default start script\n";
exit 0;
sub IsWindows {
$osname = $^O;
if ( $osname eq "Windows_NT"
|| $osname eq "MSWin32"
|| $osname eq "MSWin64" )
{
return 1;
}
else {
return 0;
}
}
31.3.3.2.2 generate-wka-override.pl

「クラスタ通信」が「コヒーレンス・ノード・プロビジョニング: ターゲット選択」ページでWKAに設定されている場合、スクリプトはdefault-start-script.plによって起動されます。generate-wka-override.plは、オーバーライド・ファイルの生成に使用されます。独自のオーバーライド・ファイルがある場合は、default-start-script.plgenerate-wka-override.plスクリプトを使用する部分をコメント・アウトできます。

#!/usr/local/bin/perl
#
# $Header: emas/sysman/admin/scripts/coherence/generate-wka-override.pl /main/1
# 2011/02/01 16:51:33 $
#
# generate-wka-override.pl
#
# Copyright (c) 2011, 2011, Oracle and/or its affiliates. All rights reserved.
#
# NAME
# generate-wka-override.pl - <one-line expansion of the name>
#
# DESCRIPTION
# <short description of component this file declares/defines>
# expects input args as:
# host1:port1,host2:port2,host3:port3
# writes the wka information to em-coherence-override.xml
# Sample xml file:
#<coherence xml-override="/tangosol-coherence-override-{mode}.xml">
# <cluster-config>
# <unicast-listener>
# <well-known-addresses>
# <socket-address id="1">
# <address>10.232.129.69</address>
# <port>8088</port>
# </socket-address>
# <socket-address id="2">
# <address>10.232.129.69</address>
# <port>8089</port>
# </socket-address>
# </well-known-addresses>
# <port>8088</port>
# </unicast-listener>
# </cluster-config>
#</coherence>
#
use Cwd;
use IPC::Open3;
my $host_port = $ARGV[0];
@host_port_array = split(',', $host_port);
$size = @host_port_array;

my $xmlfile="em-coherence-override.xml";
print "$xmlfile\n";
open(XMLFL,"> $xmlfile");
print XMLFL "<coherence
xml-override=\"/tangosol-coherence-override-{mode}.xml\">\n";
print XMLFL "<cluster-config>\n";
print XMLFL "<unicast-listener>\n";
print XMLFL "<well-known-addresses>\n";

my $id = 1;
for($i = 0; $i < $size; $i++) {
$single_host_port = $host_port_array[$i];
$single_host_port =~ s/^\s+|\s+$//g;
@single_host_port_array = split(':', $single_host_port);
$wka_host = $single_host_port_array[0];
$wka_port = $single_host_port_array[1];
$id = $id + $i;
print XMLFL "<socket-address id=\"$id\">\n";
print XMLFL "<address>$wka_host</address>\n";
print XMLFL "<port>$wka_port</port>\n";
print XMLFL "</socket-address>\n";
}
print XMLFL "</well-known-addresses>\n";
print XMLFL "</unicast-listener>\n";
print XMLFL "</cluster-config>\n";
print XMLFL "</coherence>";
close(XMLFL);
exit 0;

31.4 トラブルシューティング

コヒーレンス・クラスタ内に異なるマシンで実行されている2つ以上の管理ノードを設定することをお薦めします。監視で障害が発生した場合は、2番目の管理ノードを使用できます。一般的な障害の事例を次に示します。

  • エラー条件: 管理ノードの消失

    解決策: プライマリ管理ノードに障害が発生した場合、クラスタの監視構成を、クラスタ内の別の管理ノードを指定するように変更する必要があります。クラスタ内に他の管理ノードが存在しない場合は、「コヒーレンス・ノード・プロビジョニング」デプロイメント・プロシージャを使用して、既存のクラスタを選択し、新規の管理ノードを追加できます。このプロセスにより、クラスタの監視構成が更新されます。

  • エラー条件: クラスタを監視するエージェントの消失

    解決策: エージェントが使用可能でない場合、別の管理エージェントを使用して、コヒーレンス・クラスタの管理ノードを指定します。

  • エラー条件: EMエージェントおよび管理ノードが存在するホストの消失

    解決策: ホストが使用可能でない場合、別のマシンで実行されている別の管理ノードに切り替える必要があります。