アー
キテクト: SOA
ハンズオン・ガイド: Oracle WebLogic Server 11gにおけるOracle Service
Registry 11gの高可用性設定の作成
Yogesh Sontakke著
2010年5月公開
このガイドは、Oracle WebLogic Serverクラスタ環境でのOracle Service Registry
11gのアクティブ-アクティブな高可用性(HA)設定の作成について、段階的に説明します。
前提条件
概要
図1では、この記事で取り扱うHAアーキテクチャを示します。
図1
関連する手順は以下のとおりです。
- Oracle WebLogic Server環境の作成: ドメイン、サーバー、クラスタ
- クラスタ用のOracle Service Registryアプリケーションの作成
- クラスタ化されたノードへのOracle Service Registryアプリケーションのデプロイ
- Oracle WebLogic
Serverの組込みHTTPClusterServletを使用したロードバランサのシミュレーション
- 新たに作成された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管理手順の詳細は、ここから入
手できます。
- 「スタート」→「す
べてのプログラム」→「Oracle
WebLogic」→「WebLogic
Server 11gR1」→「Tools」→「Configuration Wizard」
を選択します。
- Welcome画面で、「Create a new Oracle WebLogic
Server domain」を選択して、「Next」をクリックします。
- Select Domain Source画面で、「Generate a domain
configured automatically to support the following products」を選択し
て、「Next」をクリックします。
- 以下の新しいドメイン情報を入力して、「Next」をクリックします。
- Domain name: osr_ha_domain
- Domain location: <$MIDDLEWARE_HOME>\user_projects\domains
- Configure Administrator User Name and Password画面で、管理
サーバーのユーザー名とパスワードを入力して、「Next」をクリックします。
これらの資格証明が後で必要になるときに備えて、この情報を書き留めておきます。
- Configure Server Start Mode画面およびJDK画面で、Development
ModeおよびSun JDKをデフォルト設定のままにして、「Next」をクリックします。
- Select Optional Configuration画面で、「Administration
Server」、「Managed Servers」、「Clusters」、
および「Machines」を選択して、「Next」をクリックします。
- Configure the Administration Server画面で、「Next」
をクリックします。
- Configure Managed Servers画面で、「Add」をク
リックして、以下の管理対象サーバーを追加して、「Next」をクリックします(図3)。
図3
- Configure Clusters画面で、「Add」をクリックして、以
下に示されているように、wls_clusterを
追加して、「Next」をクリックします(図4)。
図4
- Assign Servers to Clusters画面で、osr_NodeAおよびosr_NodeBをwls_clusterに割り当
てて、「Next」をクリックします(図5)。
図5
- Create HTTP Proxy Applications画面で、デフォルト値のままにして「Next」
をクリックします。
- Configure Machines画面で、「Next」をクリックしま
す。
- Configuration Summary画面で、情報を確認して、「Create」
をクリックします。
- 作成が完了したら、「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の一部である『インストレーション・ガイド』を参照してください。
- 次のコマンドを使用して、Oracle Service Registry 11.1.1.2インストーラを実行します。 $java -jar
oracle-service-registry-11.1.1.jar -debug
- Installation Type画面で、「Standalone registry」
を選択します(図7)。
図7
- 指定するインストール・ディレクトリが一意であり、ベスト・プラクティスとして、$MIDDLEWARE_HOME\osr_ha_homeな
どのOracle WebLogic Serverのホームと同じレベルであることを確認します。 たとえば、次の画像のようにofm11gps2が$MIDDLEWARE_HOME、wlsserver_10.3が$WEBLOGIC_HOME、osr11gが$REGISTRY_HOME(Oracle
Service Registryのインストール・ディレクトリ)(図8)となります。
図8
- Database Setupページで、「Create New
Tablespace/Database」オプションを選択する場合は、データベースにまだに存在しない一意の表領域名(uddinode_haなど)を
入力してください。
- Database Setupページで、「Create New Schema」
オプションを選択する場合は、表領域にまだ存在しない一意のユーザー/スキーマ名(uddiuser_haなど)を
入力してください。
- この演習では、ここでデータソースを使用または作成しないでください
(使用または作成する場合は、このアプリケーションのデプロイ前に、WLSコンソールを使用してosr_ha_domainに適
宜データソースを作成してください)。
- Choose a Method of Deployment画面で、「Manual
Deployment」を選択します(図9)。
図9
- 次の画面で、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ノードへのデプロイに進むことができます。
- osr_ha_domainの
管理サーバーが実行されていることを確認します。
- 次のOracle WebLogic Serverの管理コンソールに移動します。 http://<ホスト名>:
7001/console
- Domain Structureグループから、「Deployments」
を選択します。
- Deploymentsで、「Install」を選択して、それから
Oracle Service Registryのインストーラが$MIDDLEWARE_HOME/osr_ha_home/conf/
porting/weblogic/build下に作成したregistry.warを参照
します。 「Next」をクリックします。
- 「Install this deployment as an application」
を選択して、「Next」をクリックします。
- 「wls_cluster」および「All Servers in
the cluster」を選択して、「Next」をクリックします(図11)。
図11
- 「Copy this application onto every target for me」
を選択して、「Next」をクリックします。
- 「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
ディレクトリ構造を作成するには、
- $MIDDLEWARE_HOME\osr_ha_home下
にバランサのディレクトリを作成します。
- balancer下に表示されるすべてのサブディレクトリを正しい階層(registry、
registry→uddi、
registry→uddi→bsc、registry→uddi→bsc→webdata、registry→webdata、およびWEB-INF)
で作成します。
- 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
- bsc.jarおよびweb.jarのjarファイルを抽出するには、コマンドライン(jar xvf
bsc.jar)を使用するか、単にWinzipまたは7-zipなどのプログラムを使用します。
- c:\tmp_web\webroot(webルートそのものではありません)の内容を、$MIDDLEWARE_HOME\
osr_ha_home\balancer\registry\uddi\webdataにコピーします。
- 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にデプロイ
します。
- http://localhost:7001/consoleを
参照して、Oracle WebLogic Server管理コンソールを開きます。
- Domain Structureグループから、「Deployments」を選択します。
「Install」をクリックして、$MIDDLEWARE_HOME\osr_ha_home\balancer\balancer.warを
参照し、「Next」をクリックします。
- 「Install this deployment as an application」
を選択して、「Next」をクリックします。
- 「osr_ha_lbr」を選択して、「Next」をク
リックします。
- 「Copy this application onto every target for me」
を選択して、「Next」をクリックします。
- 「Finish」をクリックします。
新たに作成されたOracle Service Registry HA環境のテスト
新しいOracle Service Registry HA環境でのロードバランシングの動作状況をテストするには、
- 管理対象サーバー(osr_ha_lbr、osr_ha_NodeA、およびosr_ha_NodeB)をそれぞれ起動します。
- すべてのサーバーを実行してから、http://<hostname>:7101/registry/uddi/webを
参照してOracle Service Registryにアクセスします。
全体を参照し、エンティティ、サービスなどを検索して、有効なデータを取得しているかどうかを確認します。
- osr_ha_NodeAま
たはosr_ha_NodeBの
いずれかを停止して、レジストリ・コンソールがまだ動作しているかどうかを確認します。
- 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年以上積んでいます。 |