この章では概要を示し、クラスタ化環境にOracle API Catalogをインストールする方法について説明します。
この章の内容は次のとおりです。
Oracle API Catalogでは、各アプリケーション・サーバー上のサーバー側キャッシュが使用されます。使用可能な場合のみ、キャッシュされたデータが使用されます。それ以外の場合は、データベースがデータ・コンテンツをキャッシュおよびアプリケーションに配信します。
Oracle API Catalogをクラスタ内で実行する場合、クラスタ・メンバーはHTTPを使用して相互に通信する必要があります。あるクラスタ・メンバー上で編集を行うと、そのクラスタ・メンバー上のキャッシュされた要素が無効になり、編集内容が他のクラスタ・メンバーに渡されます。これは、cachesyncurlと呼ばれるシステム・プロパティによって実行されます。このシステム・プロパティは、アプリケーションへのURLを有効な値として受け入れます。
システムの起動時に、cachesyncurlがデータベースに書き込まれ、データベースから他のサーバーのURLのリストが取得されます。クラスタの新規メンバーの存在を通知するメッセージが、検出されたすべてのURLに送信されます。その後、各サーバーはデータベースからサーバー・リストをリフレッシュします。サーバーが正常に停止するときに、リストから値が削除され、キャッシュ・リフレッシュ通知がサーバー・リストにブロードキャストされます。
編集によってローカル・キャッシュ内の要素が無効になると、無効にする必要があるキャッシュ要素を通知するメッセージが他のすべてのサーバーに送信されます。メッセージを受信すると、指定した要素がキャッシュから削除されます。その後データを要求すると、キャッシュにはデータが含まれていないため、まずデータをキャッシュに格納してから、データベースによってデータがアプリケーションに配信されます。
クラスタリングとインストールの要件
セッションの類似性
サーバー側のHTTPキャッシュ通信
オプション
フェイルオーバー
セッション管理および永続セッションが必要
ロード・バランシング
クラスタ化環境へのOracle API Catalogのインストール
クラスタ化環境にOracle API Catalogをインストールするには、次の手順を実行します。
Oracle API Catalogをインストールおよび構成します。
Oracle API Catalogをホストするクラスタ化環境を作成します。
クラスタ化されたアプリケーション・サーバーのメンバーにOracle API Catalogアプリケーションをインストールおよびデプロイします。
クラスタのメンバー上でアプリケーションのデプロイメントを検証します。
アプリケーション・プロパティをデータベースに移動します。
クラスタを停止します。
他のすべてのクラスタ・メンバーにアプリケーションをインストールします。
各クラスタ・メンバー上でcluster.properties
ファイルを構成します。
クラスタおよびすべてのメンバーを起動します。
クラスタを検証します。
クラスタ化環境を準備する前に、『Oracle WebLogic Serverクラスタの管理』を参照して、WebLogic Serverでのクラスタ化に関する重要な情報を確認してください。
Oracle API Catalogのインストールの詳細は、第2章「Oracle API Catalogソフトウェアのインストール」を参照してください。
WebLogic ServerでOracle API Catalogを構成およびデプロイする方法の詳細は、第3章「Oracle API Catalogドメインの構成」を参照してください。
注意: JMSクラスタリングを実行する場合、データベース・オプションへの移動設定を使用する前にcmee.eventframework.clustering.enabled を有効にする必要があります。 |
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
プロパティをOracle API Catalogアプリケーションに読み込む場合、常にプロパティ・ファイルが優先されます。アプリケーションでは、まずデータベース内でプロパティおよび対応する値を検索してから、プロパティ・ファイル内を検索します。データベースから読み込まれたプロパティは、ファイル内の対応する値で上書きされます。
この手順は、アプリケーションのデプロイから始まります。
「管理」画面で、左ペインの「システム設定」をクリックします。
下部にスクロールし、設定をデータベースに移動するボタンをクリックします。
確認メッセージが表示されます。
クラスパスからプロパティ・ファイルを削除します。
管理対象サーバーを停止します。
構成ファイルのフォルダを探します。
<DOMAIN_HOME>/oac_config
構成フォルダから次にリストされているプロパティ・ファイルを削除します。
enterprise.properties
ldap.properties
containerauth.properties
eventing.properties
juddi.properties
openapiserverlog.properties
これらのプロパティは、データベース内のentSettings表に書き込まれます。
cmee.propertiesファイルを変更します。URL値を含むプロパティ値を除く、すべてのプロパティ値を削除します。クラスタ・メンバーへのロード・バランス・アクセスに使用されているプロキシ・サーバー・パスを指すように、URL参照を更新します。
ここで、Oracle API Catalogクラスタに直接アプリケーションを再デプロイします。
注意: この手順がプロパティ・ファイルではなくデータベースに書き込まれた後、プロパティが有効になります。 |
各クラスタ・メンバー上でcluster.properties
ファイルを構成するには:
各クラスタ・メンバーを停止します。
各クラスタ・メンバー上で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
注意:
|
各クラスタ・メンバーを再起動します。
注意: maxFailuresを超えたためにクラスタ・メンバーが無効になった場合、アクティブ化する方法はサーバーの再起動のみです。 |
各クラスタ・メンバーの標準出力ログにメッセージが送信されます。
「単一サーバー・モードで実行しています」
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の理解』を参照してください。
クラスタ・ノードが集中化された管理コンソールを介してデプロイされる場合、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パラメータのいずれかを使用して起動される必要があります。 |