プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle API Catalogインストレーション・ガイド
12cリリース1 (12.1.3)
E59450-04
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

4 クラスタ化環境へのOracle API Catalogのインストール

この章では概要を示し、クラスタ化環境にOracle API Catalogをインストールする方法について説明します。

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

4.1 概要

Oracle API Catalogでは、各アプリケーション・サーバー上のサーバー側キャッシュが使用されます。使用可能な場合のみ、キャッシュされたデータが使用されます。それ以外の場合は、データベースがデータ・コンテンツをキャッシュおよびアプリケーションに配信します。

Oracle API Catalogをクラスタ内で実行する場合、クラスタ・メンバーはHTTPを使用して相互に通信する必要があります。あるクラスタ・メンバー上で編集を行うと、そのクラスタ・メンバー上のキャッシュされた要素が無効になり、編集内容が他のクラスタ・メンバーに渡されます。これは、cachesyncurlと呼ばれるシステム・プロパティによって実行されます。このシステム・プロパティは、アプリケーションへのURLを有効な値として受け入れます。

システムの起動時に、cachesyncurlがデータベースに書き込まれ、データベースから他のサーバーのURLのリストが取得されます。クラスタの新規メンバーの存在を通知するメッセージが、検出されたすべてのURLに送信されます。その後、各サーバーはデータベースからサーバー・リストをリフレッシュします。サーバーが正常に停止するときに、リストから値が削除され、キャッシュ・リフレッシュ通知がサーバー・リストにブロードキャストされます。

編集によってローカル・キャッシュ内の要素が無効になると、無効にする必要があるキャッシュ要素を通知するメッセージが他のすべてのサーバーに送信されます。メッセージを受信すると、指定した要素がキャッシュから削除されます。その後データを要求すると、キャッシュにはデータが含まれていないため、まずデータをキャッシュに格納してから、データベースによってデータがアプリケーションに配信されます。

クラスタリングとインストールの要件

  • セッションの類似性

  • サーバー側のHTTPキャッシュ通信

オプション

  • フェイルオーバー

    セッション管理および永続セッションが必要

  • ロード・バランシング

クラスタ化環境へのOracle API Catalogのインストール

クラスタ化環境にOracle API Catalogをインストールするには、次の手順を実行します。

  1. Oracle API Catalogをインストールおよび構成します。

  2. Oracle API Catalogをホストするクラスタ化環境を作成します。

  3. クラスタ化されたアプリケーション・サーバーのメンバーにOracle API Catalogアプリケーションをインストールおよびデプロイします。

  4. クラスタのメンバー上でアプリケーションのデプロイメントを検証します。

  5. アプリケーション・プロパティをデータベースに移動します。

  6. クラスタを停止します。

  7. 他のすべてのクラスタ・メンバーにアプリケーションをインストールします。

  8. 各クラスタ・メンバー上でcluster.propertiesファイルを構成します。

  9. クラスタおよびすべてのメンバーを起動します。

  10. クラスタを検証します。

4.2 ステップ1: Oracle API Catalogのインストール

クラスタ化環境を準備する前に、『Oracle WebLogic Serverクラスタの管理』を参照して、WebLogic Serverでのクラスタ化に関する重要な情報を確認してください。

Oracle API Catalogのインストールの詳細は、第2章「Oracle API Catalogソフトウェアのインストール」を参照してください。

4.3 ステップ2: 1つのクラスタ・メンバーでのOracle API Catalogのデプロイおよび検証

WebLogic ServerでOracle API Catalogを構成およびデプロイする方法の詳細は、第3章「Oracle API Catalogドメインの構成」を参照してください。


注意:

JMSクラスタリングを実行する場合、データベース・オプションへの移動設定を使用する前にcmee.eventframework.clustering.enabledを有効にする必要があります。

4.4 ステップ3: クラスタ化環境の作成

packコマンドを使用し、第4.3項で作成した管理対象サーバーのコンテンツのパックを作成します。unpackコマンドを使用して、クラスタ化環境に含まれるように構成されている任意の数のマシンに、ドメインの複製を解凍します。詳細は、『PackおよびUnpackコマンドによるテンプレートとドメインの作成』を参照してください。


注意:

元のドメインのパックを作成する際、<DOMAIN_HOME>/config_oerディレクトリまたは<DOMAIN_HOME>/config_oacディレクトリ内のプロパティ・ファイルは処理の対象外です。プロパティ・ファイルと構成ファイルは、最初のマシン上で手動で編集し、ターゲット・サーバーに手動でコピーする必要があります。この手順は、管理対象サーバーがオフラインの間に完了する必要があります。

次に、第5章「クラスタ化環境でのOracle API Catalogドメインの構成」の手順に従って、クラスタ化環境の作成を完了します。

ドメインの作成が完了したら、OERDataSourceおよびoac_serverのデプロイメントを指すように<DOMAIN_HOME>/config/config.xmlファイルを編集し、管理対象サーバーではなくクラスタをターゲット指定する必要があります。また、cmee.propertiesファイルも、管理対象サーバーとクラスタ化環境へのアクセスに使用されているプロキシ・サーバーの現在のデプロイメントにあわせて編集する必要があります。

次の例は、編集前のconfig.xmlファイル内の要素を示しています。

  <app-deployment>
    <name>oac_server</name>
    <target>oac_server1</target>
    <module-type>ear</module-type>
    <source-path>/users/oracle/Oracle/Middleware/Oracle_Home/oer/applications/oac</source-path>
    <deployment-order>45</deployment-order>
    <security-dd-model>DDOnly</security-dd-model>
    <staging-mode>nostage</staging-mode>
  </app-deployment>

次の例は、同じファイルの編集後を示しています。

  <app-deployment>
    <name>oac_server</name>
    <target>oac_cluster1</target>
    <module-type>ear</module-type>
    <source-path>/users/oracle/Oracle/Middleware/Oracle_Home/oer/applications/oac</source-path>
    <deployment-order>45</deployment-order>
    <security-dd-model>DDOnly</security-dd-model>
    <staging-mode>nostage</staging-mode>
  </app-deployment>

次の例は、編集前のcmee.propertiesファイルを示しています。

cmee.asset.xml.paths.out-destination-url=http\://www.example.com\:8111/oac/pdfreport/pdf/
cmee.enterprisetab.homepage=http\://www.example.com \:8111/oac/custom/home_oac.jsp
cmee.asset.pdf.xslt.default=true
cmee.server.paths.resource=http\://www.example.com \:8111/oac-web
cmee.assettab.asset-detail-page=http\://www.example.com \:8111/oac/cmee/index.jsp
cmee.server.paths.image=http\://www.example.com \:8111/oac-web/images
cmee.server.defaultencoding=UTF-8
cmee.server.paths.servlet=http\://www.example.com \:8111/oac
cmee.server.paths.jnlp-tool=http\://www.example.com \:8111/oac-web/webstart
cmee.asset.xml.paths.webapp-url=http\://www.example.com \:8111/oac/pdfreport
oracle.oer.lite.enabled=true
cmee.server.paths.jsp=http\://www.example.com \:8111/oac
cmee.asset.xml.paths.export-destination-url=http\://www.example.com \:8111/oac/pdfreport/export/

次の例は、同じファイルの編集後を示しています。

cmee.enterprisetab.homepage=http\://ohs.example.com \:7777/oer/custom/home_oac.jsp
cmee.server.paths.resource=http\://ohs.example.com \:7777/oac -web
cmee.assettab.asset-detail-page=http\://ohs.example.com \:7777/oac /cmee/index.jsp
cmee.server.paths.image=http\://ohs.example.com \:7777/oac -web/images
cmee.server.defaultencoding=UTF-8
cmee.server.paths.servlet=http\://ohs.example.com \:7777/oac
cmee.server.paths.jnlp-tool=http\://ohs.example.com \:7777/oac -web/webstart
cmee.server.paths.jsp=http\://ohs.example.com \:7777/oac

4.5 ステップ4: データベースへのアプリケーション・プロパティの移動

プロパティをOracle API Catalogアプリケーションに読み込む場合、常にプロパティ・ファイルが優先されます。アプリケーションでは、まずデータベース内でプロパティおよび対応する値を検索してから、プロパティ・ファイル内を検索します。データベースから読み込まれたプロパティは、ファイル内の対応する値で上書きされます。

この手順は、アプリケーションのデプロイから始まります。

  1. 「管理」画面で、左ペインの「システム設定」をクリックします。

  2. 下部にスクロールし、設定をデータベースに移動するボタンをクリックします。

    確認メッセージが表示されます。

  3. クラスパスからプロパティ・ファイルを削除します。

  4. 管理対象サーバーを停止します。

  5. 構成ファイルのフォルダを探します。

    <DOMAIN_HOME>/oac_config

  6. 構成フォルダから次にリストされているプロパティ・ファイルを削除します。

    • enterprise.properties

    • ldap.properties

    • containerauth.properties

    • eventing.properties

    • juddi.properties

    • openapiserverlog.properties

    これらのプロパティは、データベース内のentSettings表に書き込まれます。

  7. cmee.propertiesファイルを変更します。URL値を含むプロパティ値を除く、すべてのプロパティ値を削除します。クラスタ・メンバーへのロード・バランス・アクセスに使用されているプロキシ・サーバー・パスを指すように、URL参照を更新します。

  8. ここで、Oracle API Catalogクラスタに直接アプリケーションを再デプロイします。


    注意:

    この手順がプロパティ・ファイルではなくデータベースに書き込まれた後、プロパティが有効になります。

4.6 ステップ5: 各クラスタ・メンバーでのcluster.propertiesファイルの構成

各クラスタ・メンバー上でcluster.propertiesファイルを構成するには:

  1. 各クラスタ・メンバーを停止します。

  2. 各クラスタ・メンバー上でcluster.propertiesと呼ばれるファイルを作成します。このファイルは、他のすべての.propertiesファイルと同じ場所にあります。

    <DOMAIN_HOME>/oac_config

    cluster.propertiesの内容は、cmee.propertiesファイルのプロパティcmee.server.paths.servletに基づいています。ただし、パス内のホスト名は、クラスタ全体のプロキシ・ホスト名ではなく、クラスタ・メンバーのホスト名を参照する必要があります。

    cluster.properties
    #cluster.properties
    Example:
    #cluster.properties
    cachesyncurl=http://node1.example.com:7101/oac
    # oer is the name of the Oracle API Catalog application during 
    # deployment
    Other properties that are optional
    # alias is used as an alternate/convenient name to refer
    # to the server
    # example: server1
    # default: same value as =cachesyncurl=
    alias=EclipseServer
    
    # registrationIntervalSeconds is the number of seconds between
    # attempts to update the server's registration record in the database
    # default: 120
    registrationIntervalSeconds=120
    
    # registrationTimeoutSeconds is the number of seconds before a server
    # is considered to be inactive/not running
    # make sure this value is higher than the registrationIntervalSeconds
    # default: 240
    registrationTimeoutSeconds=240
    
    # maxFailures is the number of consecutive attempts that are made
    # to deliver a message to another server after which it is determined
    # to be unreachable
    # default: 20
    maxFailures=20
    
    # maxQueueLength is the number of messages that are queued up to
    # send to another server after which server are determined to be
    # unreachable
    # default: 4000
    maxQueueLength=5000
    
    # email.to is the address of the email recipient for clustering status
    # messages
    email.to=jsmith@company.com
    
    # email.from is the address of the sender for clustering status messages
    email.from=jsmith@company.com
    
    # email.subject is the subject line of the message for clustering status
    # messages
    email.subject=Oracle API Catalog Clustering communication failure
    
    # email.message is the body of the message for clustering status messages
    email.message=This is an automated message from the Oracle API
    Catalog informing you of a cluster member communication failure.
    
    • cluster.propertiesファイルの例

      registrationIntervalSeconds=120registrationTimeoutSeconds=240
      maxFailures=20
      maxQueueLength=5000
      email.to=jsmith@example.com
      email.from=jsmith@example.com
      email.subject=Oracle API Catalog Clustering communication failure
      email.message=This is an automated message from the Oracle API
      Catalog informing you of a cluster member communication failure
      

      注意:

      1. アプリケーション・サーバーとデータベース・サーバーの間の遅延時間が120秒を超えないようにしてください。これらのサーバーを同期させておくために、ネットワーク・タイム・プロトコルをお薦めします。クラスタリング・プロセスでは、クラスタのノード間でメッセージを送信する間の時間の差異が計算されます。

      2. サーバーを再起動する前に、JMSクラスタリングが有効になっている場合、eventing.propertiesを追加する必要があります。これには、各クラスタ・メンバー上で一意の値を持つcmee.eventframework.jms.producers.client.idプロパティが含まれている必要があります。たとえば、cmee.eventframework.jms.producers.client.id=OER_JmsProducer1のようになります。

      3. cmee.cachesyncurlプロパティをクラスタ内の各管理対象サーバーのJVMプロパティとして設定する場合の重要な情報は、第4.8項を参照してください。


  3. 各クラスタ・メンバーを再起動します。


    注意:

    maxFailuresを超えたためにクラスタ・メンバーが無効になった場合、アクティブ化する方法はサーバーの再起動のみです。

4.7 ステップ6: インストールの検証

各クラスタ・メンバーの標準出力ログにメッセージが送信されます。

  • 「単一サーバー・モードで実行しています」

    Oracle API Catalogのクラスタリングが構成されていないため、アプリケーションは単一サーバー・モードで実行されていることを示します。

  • 「次のsync-urlで、マルチ・サーバー・モードで実行しています」

    Oracle API Catalogのクラスタリングが機能しており、アプリケーションはクラスタ化モードで実行されていることを示します。

変数

cachesyncurl

cluster.propertiesファイル内のcachesyncurlの値は、/cachesyncのパスが追加された個別のノードのインスタンスと同じURLを参照します。ほとんどのクラスタ構成には、クラスタ化されたサーバー内の各ノードをロード・バランシングするプロキシ・サーバーがあります。

例:

Node1: cachesyncurl=http://node1.example.com:8111/oac

Node2: cachesyncurl=http://node1.example.com:8111/oac

Oracle API Catalogの「診断」画面からクラスタリング診断ページを表示することで、クラスタリングのインストールを検証することもできます。「クラスタ診断」ページを表示するには、「診断」画面のクラスタ情報をクリックします。このページには、クラスタに登録されているすべてのサーバーに関する情報、およびサーバー間通信に関する情報がリストされます。

Oracle HTTP Serverの構成ファイル

Oracle HTTP Serverを使用してロード・バランサからノードにルーティングする場合、HTTP Serverの構成ファイル(httpd.conf)に/oacおよび/oac-webの2つのエントリを含める必要があります。サンプルのhttpd.confファイルを次に示します。

<VirtualHost 10.0.0.1:80>
   ServerName 10.0.0.1:80
   <IfModule mod_weblogic.c>
        SecureProxy OFF
        # TrustedCAFile /usr/local/apache2/ca.pem
        RequireSSLHostMatch false
        Debug ERR
        DebugConfigInfo ON
        ErrorPage /error.html
        WLLogFile logs/worker_matchproxy.log
        WLTempDir /tmp
        KeepAliveEnabled      ON
        KeepAliveSecs         15
        HungServerRecoverSecs 30
        MaxSkipTime   10
        ConnectRetrySecs 5
    </IfModule>
    <Location /console>
        SetHandler weblogic-handler
        WebLogicCluster 10.0.0.2:7001
    </Location>
    <Location /oac_fa_cluster>
        SetHandler weblogic-handler
        WebLogicCluster 10.0.0.3:7101,10.0.0.4:7101
    </Location>
   <Location /oac_fa_cluster-web>
       SetHandler weblogic-handler
        WebLogicCluster 10.0.0.3:7101,10.0.0.4:7101
    </Location>
</VirtualHost>

この例では、ホスト10.0.0.1はクラスタ・マシンをプロキシするためのHTTPサーバー、ホスト10.0.0.2は管理サーバー、ホスト10.0.0.3および10.0.0.4はOracle API Catalog管理対象サーバーです。

詳細は、『Oracle WebLogic Serverの理解』を参照してください。

4.8 ステップ7: WebLogic ServerのJVMパラメータのクラスタリング

クラスタ・ノードが集中化された管理コンソールを介してデプロイされる場合、cluster.propertiesファイルがなくても適切なOracle API Catalogクラスタリング操作が許可されるように、JVMパラメータの適用が必要です。

このJVMパラメータは、クラスタ内のメンバーごと、または管理対象サーバーの起動コマンド・ファイル内で静的に適用する必要があります。これは、DOMAIN_HOME/bin/setStartupEnv.shファイルまたはsetStartupEnv.batファイル内のサーバー定義を使用すれば、とても簡単に行えます。次のコードを(現在の環境にあわせて編集して) setStartupEnv.shファイルまたは.batファイルに追加します。

case "${SERVER_NAME}" in
oac_server1)
EXTRA_JAVA_PROPERTIES="${EXTRA_JAVA_PROPERTIES} -Dcmee.cachesyncurl=http://server1:8111/oac"
;;
oac_server2)
EXTRA_JAVA_PROPERTIES="${EXTRA_JAVA_PROPERTIES} -Dcmee.cachesyncurl=http://server2:8111/oac"
;;
esac

このJVMパラメータは、WebLogic ServerのJAVA_OPTIONS環境変数内でも設定できます。JVMパラメータは次のようになります。

-Dcmee.cachesyncurl=http://<member host name>:<port>/<APP_PATH>

クラスタ・ドメイン内の各管理対象サーバーは、HTTPプロキシ・サーバーを介さずに、相互に直接通信します。cmee.cachesyncurlプロパティは、管理対象サーバーのホスト名/IPアドレスおよびポート番号を表します。


注意:

クラスタ内で共存および協調動作するためには、クラスタ内の各管理対象サーバーが、これらのJVMパラメータのいずれかを使用して起動される必要があります。