アー キテクト: SOA

ハンズオン・ガイド: Oracle WebLogic Server 11gにおけるOracle Service Registry 11gの高可用性設定の作成

Yogesh Sontakke著

2010年5月公開

このガイドは、Oracle WebLogic Serverクラスタ環境でのOracle Service Registry 11gのアクティブ-アクティブな高可用性(HA)設定の作成について、段階的に説明します。

前提条件

概要

図1では、この記事で取り扱うHAアーキテクチャを示します。

図1

関連する手順は以下のとおりです。

  1. Oracle WebLogic Server環境の作成: ドメイン、サーバー、クラスタ
  2. クラスタ用のOracle Service Registryアプリケーションの作成
  3. クラスタ化されたノードへのOracle Service Registryアプリケーションのデプロイ
  4. Oracle WebLogic Serverの組込みHTTPClusterServletを使用したロードバランサのシミュレーション
  5. 新たに作成されたOracle Service Registry HA環境のテスト

Oracle WebLogic Server環境の作成: ドメイン、サーバー、クラスタ

図2および表1に、作成するOracle WebLogic Serverの設定を示します。

図2: Oracle Service Registryの設定には、管理サーバーと複数の管理対象サーバーが含まれています。
Oracle WebLogic Serverのコンポーネント ポート番号 説明
osr_ha_domain NA Oracle Service Registry HAが存在するOracle WebLogic Serverのドメイン。
管 理サーバー 7001 osr_ha_domain の管理サーバー。 Oracle WebLogic Serverのドメインごとに、管理サーバーは1つだけあります。
osr_ha_lbr 7101 シ ミュレートされたロードバランサをホストする管理対象サーバー。 クラスタの一部ではありません。
wls_cluster NA Oracle Service Registryのノード(osr_ha_nodeAおよびosr_ha_nodeBの両方)が稼働する場所に作成するOracle WebLogic Serverクラスタ。
osr_ha_nodeA 17101 管 理対象サーバーであり、Oracle Service Registryの2つのノードのうち最初のノード。
osr_ha_nodeB 27101 管 理対象サーバーであり、Oracle Service Registryの2つのノードのうち2番目のノード。
表1: Oracle WebLogic Server環境におけるコンポーネント

Oracle Service Registry HA設定のためのOracle WebLogic Server環境の作成には、次の手順が含まれます。 Oracle WebLogic Server管理手順の詳細は、ここから入 手できます。

  1. スタートす べてのプログラムOracle WebLogicWebLogic Server 11gR1ToolsConfiguration Wizard」 を選択します。

  2. Welcome画面で、「Create a new Oracle WebLogic Server domain」を選択して、「Next」をクリックします。

  3. Select Domain Source画面で、「Generate a domain configured automatically to support the following products」を選択し て、「Next」をクリックします。

  4. 以下の新しいドメイン情報を入力して、「Next」をクリックします。
    • Domain name: osr_ha_domain
    • Domain location: <$MIDDLEWARE_HOME>\user_projects\domains

  5. Configure Administrator User Name and Password画面で、管理 サーバーのユーザー名とパスワードを入力して、「Next」をクリックします。 これらの資格証明が後で必要になるときに備えて、この情報を書き留めておきます。

  6. Configure Server Start Mode画面およびJDK画面で、Development ModeおよびSun JDKをデフォルト設定のままにして、「Next」をクリックします。

  7. Select Optional Configuration画面で、「Administration Server」、「Managed Servers」、「Clusters」、 および「Machines」を選択して、「Next」をクリックします。

  8. Configure the Administration Server画面で、「Next」 をクリックします。

  9. Configure Managed Servers画面で、「Add」をク リックして、以下の管理対象サーバーを追加して、「Next」をクリックします(図3)。
    図3

  10. Configure Clusters画面で、「Add」をクリックして、以 下に示されているように、wls_clusterを 追加して、「Next」をクリックします(図4)。
    図4

  11. Assign Servers to Clusters画面で、osr_NodeAおよびosr_NodeBwls_clusterに割り当 てて、「Next」をクリックします(図5)。
    図5

  12. Create HTTP Proxy Applications画面で、デフォルト値のままにして「Next」 をクリックします。

  13. Configure Machines画面で、「Next」をクリックしま す。

  14. Configuration Summary画面で、情報を確認して、「Create」 をクリックします。

  15. 作成が完了したら、「Done」をクリックします。

新しく作成した管理サーバーを起動して、次のURLを使用して管理コンソールに移動します。 http://<ホスト名>: 7001/console

指定されたユーザー名/パスワードを使用してログインします。 Servers and/or Clustersに移 動します。ここには、作成したOracle WebLogic Server環境の概要が次のように表示されます(図6)。

図6

クラスタ用のOracle Service Registryアプリケーションの作成

ここでは、Oracle Service Registryアプリケーション(Webアーカイブの[WAR]ファイル)を作成しますが、これを後でOracle WebLogic Serverにデプロイします。

Oracle Service Registryのインストール手順の詳細は、インストール可能なOracle Service Registryに付属するregistry.pdfの一部である『インストレーション・ガイド』を参照してください。

  1. 次のコマンドを使用して、Oracle Service Registry 11.1.1.2インストーラを実行します。 $java -jar oracle-service-registry-11.1.1.jar -debug

  2. Installation Type画面で、「Standalone registry」 を選択します(図7)。
    図7
  3. 指定するインストール・ディレクトリが一意であり、ベスト・プラクティスとして、$MIDDLEWARE_HOME\osr_ha_homeな どのOracle WebLogic Serverのホームと同じレベルであることを確認します。 たとえば、次の画像のようにofm11gps2$MIDDLEWARE_HOMEwlsserver_10.3$WEBLOGIC_HOMEosr11g$REGISTRY_HOME(Oracle Service Registryのインストール・ディレクトリ)(図8)となります。
    図8
  4. Database Setupページで、「Create New Tablespace/Database」オプションを選択する場合は、データベースにまだに存在しない一意の表領域名(uddinode_haなど)を 入力してください。

  5. Database Setupページで、「Create New Schema」 オプションを選択する場合は、表領域にまだ存在しない一意のユーザー/スキーマ名(uddiuser_haなど)を 入力してください。

  6. この演習では、ここでデータソースを使用または作成しないでください (使用または作成する場合は、このアプリケーションのデプロイ前に、WLSコンソールを使用してosr_ha_domainに適 宜データソースを作成してください)。
  7. Choose a Method of Deployment画面で、「Manual Deployment」を選択します(図9)。
    図9
  8. 次の画面で、osr_ha_lbr管 理対象サーバーのホスト名とポートを入力します。 インストーラ経由でアプリケーションを今デプロイしなくても、Oracle Service RegistryのWARファイルに作成されたURL参照で、ロードバランサがHA機能を利用するように指示します(図10)。
    図10

インストールが正常に完了した場合は、registry.warが、$MIDDLEWARE_HOME/osr_ha_home/conf/porting/weblogic/build下 に作成されているはずです。

クラスタ化されたノードへのOracle Service Registryアプリケーションのデプロイ

これで、Oracle Service Registryアプリケーション(registry.war)の準 備が整い、Oracle Service Registry HAノードへのデプロイに進むことができます。

  1. osr_ha_domainの 管理サーバーが実行されていることを確認します。

  2. 次のOracle WebLogic Serverの管理コンソールに移動します。 http://<ホスト名>: 7001/console

  3. Domain Structureグループから、「Deployments」 を選択します。

  4. Deploymentsで、「Install」を選択して、それから Oracle Service Registryのインストーラが$MIDDLEWARE_HOME/osr_ha_home/conf/ porting/weblogic/build下に作成したregistry.warを参照 します。 「Next」をクリックします。

  5. Install this deployment as an application」 を選択して、「Next」をクリックします。

  6. wls_cluster」および「All Servers in the cluster」を選択して、「Next」をクリックします(図11)。
    図11
  7. Copy this application onto every target for me」 を選択して、「Next」をクリックします。

  8. Finish」をクリックします。

Oracle Service Registryアプリケーションが、次の2つのOracle Service Registry HAノードの両方にデプロイされました。 osr_ha_NodeAおよびosr_ha_NodeB

Oracle WebLogic Serverの組込みHTTPClusterServletを使用したロードバランサのシミュレーション

この手順では、HTTPClusterServletを 使用してロードバランサをシミュレーションします。 servletはすでにOracle WebLogic Serverで使用可能ですが、このservlet用の記述子ファイルを設定して、2つのOracle Service Registry HAノードの存在について、そのファイルに通知する必要があります。 また、Oracle Service Registryの一部のユーザー・インタフェース情報を、ロードバランサ・アプリケーションにコピーする必要があります。 最後に、ロードバランサ・アプリケーション(balancer.war)を管 理対象サーバーosr_ha_lbrに デプロイします。

バランサ・アプリケーション用のディレクトリ構造の作成
最初の手順として、balancer.warに パッケージ化される必要があるすべてのファイルを保持する新しいディレクトリ構造を作成します(図12)。

図12

ディレクトリ構造を作成するには、

  1. $MIDDLEWARE_HOME\osr_ha_home下 にバランサのディレクトリを作成します。

  2. balancer下に表示されるすべてのサブディレクトリを正しい階層(registry、 registryuddi、 registryuddibsc、registryuddibscwebdata、registrywebdata、およびWEB-INF) で作成します。

  3. 2つの新しい一時ディレクトリ、c:\tmp_bscおよびc:\tmp_webを作成しま す。

ロードバランサのWeb構成ファイルの作成
クラスタ化されたノードごとのホストとポートだけでなく、ユーザー・インタフェースとオンライン・ドキュメントのコンテキスト・パスを記述するWeb構成 ファイルを作成する必要があります。

Web構成ファイルを作成するには、メモ帳などの簡単なテキスト・エディタを開き、次の内容の$MIDDLEWARE_HOME\osr_ha_home\balancer\WEB-INF\web.xmlを 作成します。

<web-app>
<servlet>
<servlet-name>HttpClusterServlet</servlet-name>
<servlet-class>weblogic.servlet.proxy.HttpClusterServlet</servlet-class>
<init-param>
<param-name>WebLogicCluster</param-name>
<param-value><your_hostname>:17101|<yourhostname>:27101</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>FileServlet</servlet-name>
<servlet-class>weblogic.servlet.FileServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FileServlet</servlet-name>
<url-pattern>registry/uddi/bsc/webdata*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>FileServlet</servlet-name>
<url-pattern>registry/uddi/webdata*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>FileServlet</servlet-name>
<url-pattern>registry/uddi/doc*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

レジストリ・コンテキスト・ファイルの作成
レジストリ・コンテキスト・ファイルを作成するには、メモ帳などの簡単なテキスト・エディタを開き、次の内容の$MIDDLEWARE_HOME\osr_ha_home \balancer\WEB-INF\weblogic.xmlを作成します。

<weblogic-web-app>
<context-root>/registry</context-root>
</weblogic-web-app>

バランサへのレジストリ・ユーザー・インタフェース情報のコピー
Oracle Service Registryインストールから、ユーザー・インタフェースの場所を記述する内容の一部をバランサのディレクトリ構造にコピーする必要があります。 これを実行する1つの方法として、作成した一時ディレクトリに、bsc.jarおよびweb.jarパッケージからすべてのファイルを抽出する方法があり ます。

図13
  1. bsc.jarおよびweb.jarのjarファイルを抽出するには、コマンドライン(jar xvf bsc.jar)を使用するか、単にWinzipまたは7-zipなどのプログラムを使用します。

  2. c:\tmp_web\webroot(webルートそのものではありません)の内容を、$MIDDLEWARE_HOME\ osr_ha_home\balancer\registry\uddi\webdataにコピーします。

  3. c:\tmp_bsc\webroot(webルートのそのものではありません)の内容を、$MIDDLEWARE_HOME\ osr_ha_home\balancer\registry\uddi\bsc\webdataにコピーします。

ディレクトリ構造は以下のようになります(図14)。

図14

ロードバランサ・パッケージの作成
パッケージ(balancer.war)には、$MIDDLEWARE_HOME\osr_ha_home\balancerに あるすべてのファイルとサブディレクトリが含まれています。

ロードバランサ・パッケージ(balancer.war)を作成するには、コマンド・プロンプトを開き、$MIDDLEWARE_HOME\osr_ha_home\balancerを 参照して、次のコマンドを実行します。 jar cvf balancer.war *.*

osr_ha_lbr管理対象サーバーへのロードバランサのデプロイ
ロードバランサのパッケージ(balancer.war) を、次の手順を実行して管理対象サーバーosr_ha_lbrにデプロイ します。

  1. http://localhost:7001/consoleを 参照して、Oracle WebLogic Server管理コンソールを開きます。

  2. Domain Structureグループから、「Deployments」を選択します。 「Install」をクリックして、$MIDDLEWARE_HOME\osr_ha_home\balancer\balancer.warを 参照し、「Next」をクリックします。

  3. Install this deployment as an application」 を選択して、「Next」をクリックします。

  4. osr_ha_lbr」を選択して、「Next」をク リックします。

  5. Copy this application onto every target for me」 を選択して、「Next」をクリックします。

  6. Finish」をクリックします。

新たに作成されたOracle Service Registry HA環境のテスト

新しいOracle Service Registry HA環境でのロードバランシングの動作状況をテストするには、

  1. 管理対象サーバー(osr_ha_lbr、osr_ha_NodeA、およびosr_ha_NodeB)をそれぞれ起動します。

  2. すべてのサーバーを実行してから、http://<hostname>:7101/registry/uddi/webを 参照してOracle Service Registryにアクセスします。 全体を参照し、エンティティ、サービスなどを検索して、有効なデータを取得しているかどうかを確認します。

  3. osr_ha_NodeAま たはosr_ha_NodeBの いずれかを停止して、レジストリ・コンソールがまだ動作しているかどうかを確認します。

  4. osr_ha_NodeAお よびosr_ha_NodeBの 両方を停止して、メッセージ"No backend servers are available."が表示されることを確認します。

これで、Oracle WebLogic Server 11gでOracle Service Registry 11gの可用性に優れたアクティブ-アクティブ環境が無事に作成されました。


Yogesh Sontakkeは、Oracle Java Technologies TeamのPrincipal Engineerであり、Webサービス・アーキテクチャ、WS-Security、Oracle Web Services Manager、およびOracle Service Registryを含むOracleのSOA Webサービス・スタックの専門家です。 彼は、設計、開発、コンサルティング、サポート、およびプリセールス分野におけるJava/J2EE界で技術経験を10年以上積んでいます。