![]() ![]() ![]() ![]() |
この使用例の次のタスクでは、管理されるサービスを定義し、アプリケーションが要件に応じてデプロイおよび実行されることを保証するデプロイメントおよび実行時のポリシーを作成し、割り当てます。
サービスはプロセスのグループであり、プロセス タイプはサービス内のプロセスのサブグループです (プロセス タイプは、WLOC Administration Console ではプロセス グループと呼ばれます)。サービスの目的は、連動するプロセスの集まりをグループ化することです。プロセス グループの目的は、同じ機能を実行し、アクションが発生した場合に同等に処理できるサービス内のインスタンスを定義することです。
たとえば、Web アプリケーション層とビジネス ロジック層を持つ 2 層のアプリケーションを使用する場合があります。各層のインスタンスが均一である場合は、各層をプロセス グループとして整理し、2 つのプロセス グループをまとめてサービスを構成できます。
これらの 2 つのグループ化の違いは、ポリシーを定義する際に重要になります。一般に、デプロイメントに関連するポリシーはサービス全体に適用されますが、実行時のポリシーは特定のプロセス グループに対して適用されます。さらに、プロセス タイプのアクションでは、デフォルトで、通常は 1 つのグループ メンバーが実行の対象として選択されます。たとえば、アクションによってインスタンスが停止される場合、停止されるインスタンスは通常指定されず、コントローラによってインスタンスが選択されます。
サービスのコンフィグレーションでは、WLOC Administration Console の [Inventory|Services] ページを使用します。サービスのコンフィグレーションは metadata-config.xml
という XML ファイルに永続化されます。デフォルトでは、このサービス メタデータ コンフィグレーション ファイルは BEA_HOME/user_projects/controller/config
ディレクトリに置かれます。このサービス メタデータ コンフィグレーション ファイルを変更して、サービスをコンフィグレーションできます。ただし、メタデータ コンフィグレーション ファイルを変更してサービスをコンフィグレーションした場合は、Administration Console を使用したサービスのコンフィグレーションで利用可能な検証およびエラー チェック機能のメリットを利用できません。
図 4-1 は、ソフトウェア ロード バランサを使用してバックエンド Web サービスを呼び出す複数のクライアント アプリケーションで構成される SOA アプリケーションの例を示します。バックエンド Web サービスは WLS 管理対象サーバでホストすることが可能です。
図 4-2 に、この例のトポロジを示します。この例では Windows 環境を使用していますが、他のプラットフォームもサポートされています。サポートされているプラットフォームの一覧については、WebLogic Operations Control サポート対象のコンフィグレーションを参照してください。
サービス メタデータを定義する最初の手順では、サービスの全般的なプロパティを定義し、次に、包含されるプロセス グループを定義します。
作成するサービスには 2 つのプロセス グループが含まれ、1 つは WLS 管理サーバのインスタンス、もう 1 つは管理対象サーバのインスタンス 2 個で構成されます。WLS ドメインで、これらのインスタンスの名前は AdminServer、MS_1、MS_2 です。WebLogic ドメインが適切にコンフィグレーションされ、サーバが正常に起動することを確認する必要があります。
注意 : | プロセス グループは、サービス メタデータ XML ファイルではプロセス タイプと呼ばれます。 |
サービスはまだ定義されていないため、テーブルにサービスは表示されていません。
注意 : | [Inventory] ペインの右下隅にあるポートレット サイズ変更アイコンをドラッグしてポートレットのサイズを変更できます。 |
[Process Properties] ページが表示されます。サービスのプロセス グループを追加するには、このページから開始します。
以下の手順では、管理サーバ プロセス グループのプロパティを指定し、準備完了メトリックを定義する方法を説明します。
[Start from Scratch] を選択すると、プロセス グループのプロパティ、プロセス グループへのインスタンス追加時に使用される JVM パラメータ、リソースとして使用可能なインスタンスの状況を指定する準備完了メトリックを指定するための各ページが表示されます。
準備完了メトリックは、プロセスが開始されて、作業の準備が整った状況を示します。WebLogic Server インスタンスの場合、ServerRuntime
MBean には State
属性が含まれています。ServerRuntimeMbean.State=RUNNING
である場合、WebLogic Server インスタンスは準備完了の状態にあります。
以下の手順では、2 つの管理対象サーバ インスタンスのプロパティを指定し、準備完了メトリックを指定する方法を説明します。
テンプレートに設定されている値は AdminServer プロセス グループに指定した値から取得されています。ManagedServers グループではこれらの値を適切な値に変更します。
このページで指定した値は、グループ内のすべてのインスタンスで複製されます。このため、この例では、両方の管理対象サーバ インスタンスに最初は同じ値が含まれています。
|
|||
[Process Properties] ページが表示され、AdminServer および ManagedServers プロセス グループがテーブルに表示されます。
次に、2 つ目の管理対象サーバ インスタンス MS_2 のプロパティを変更する必要があります。
-Dweblogic.Name=MS_1
を -Dweblogic.Name=MS_2
に変更します。com.bea:Name=MS_1,Type=ServerRuntime
から com.bea:Name=MS_2,Type=ServerRuntime
に変更します。
混乱を避けるため、WLS ドメインの管理対象サーバの名前に合わせて、最初の管理対象サーバの名前を MS_10 から MS_1 に変更します。
サービスの作成を完了する前に、各プロセス グループのリソース要件を定義する必要があります。リソース要件を定義する場合は、リソース アグリーメントを作成します。リソース アグリーメントでは、サービスまたはインスタンスの開始前に評価される要件が定義され、これはデプロイメントおよび実行時の両方で使用できます。
CreditCheckService のプロセス グループのリソース要件を定義するには、以下の手順を実行します。
この値によって、サービスのデプロイ時に開始されるインスタンスの数が指定されます。また、サービスの実行中に指定された最小数のプロセスの維持を確保するポリシーも生成されます。
この例では、AdminServer プロセス グループにその他の要件を指定する必要はありません。
CreditCheckService が [Services] テーブルと、コンソール下部の [Task and Events] ビューアに表示され、CreditCheckService が追加されたことが示されます。
サービスのリソース要件を指定すると、サービスのデプロイメント ポリシーが自動的に作成されます。ポリシーは、制約および制約を違反した場合に実行されるアクションで構成されます。この例では、最小プロセス数を 1 に設定します。これは、サービスをデプロイするために AdminServer と ManagedServers プロセス グループの両方で実行中の 1 つのインスタンスが存在する必要があることを示します。この制約は自動的に StartJavaInstanceAction にバインドされます。
デプロイメント ポリシーを表示するには、[Policies] タブを選択します。
この例では、プロセス要件を定義する完全な方法を示すため、[Start from Scratch] オプションを使用してサービスを作成しました。ただし、WLOC Administration Console では、WLS ドメインから情報をインポートすることでこの処理を簡素化する効率的なヘルパー メソッドが提供されます。これらのヘルパー メソッドには、以下のものがあります。
「管理サーバ プロセス グループの定義」の手順 2 でこれらのオプションのうちのいずれかを選択した場合は、手動で指定した情報の大部分がドメインの config.xml
ファイルから取得されるか、または実行中の管理サーバを参照することで取得されます。
サービスを作成すると、関連付けられた制約、アクション、およびバインドが自動的に作成されます。コード リスト 4-1 に、CreditCheckService サービスのコンフィグレーションが metadata-config.xml
ファイルでどのように表現されるかを示します。
<ns2:services>
<ns2:service>
<ns2:name>CreditCheckService</ns2:name>
<ns2:description>Credit Check Service</ns2:description>
<ns2:state>undeployed</ns2:state>
<ns2:priority>0</ns2:priority>
<ns2:constraint-bindings>
<ns2:constraint-binding>
<ns2:constraint-key>CreditCheckServicedeploy-key</ns2:constraint-key>
<ns2:action-key>CreditCheckServicestartserviceaction</ns2:action-key>
</ns2:constraint-binding>
<ns2:constraint-binding>
<ns2:constraint-key>CreditCheckServiceundeploy-key</ns2:constraint-key>
<ns2:action-key>CreditCheckServicestopserviceaction</ns2:action-key>
</ns2:constraint-binding>
</ns2:constraint-bindings>
<ns2:process-types>
<ns2:process-type>
<ns2:constraint-bindings>
<ns2:constraint-binding>
<ns2:constraint-key>CreditCheckService-ManagedServers-minprocess</ns2:constraint-key>
<ns2:action-key>CreditCheckServicestartaction</ns2:action-key>
</ns2:constraint-binding>
</ns2:constraint-bindings>
<ns2:name>ManagedServers</ns2:name>
<ns2:description>ManagedServers-description</ns2:description>
<ns2:metadata-key>CreditCheckService-ManagedServersmetakey</ns2:metadata-key>
</ns2:process-type>
<ns2:process-type>
<ns2:constraint-bindings>
<ns2:constraint-binding>
<ns2:constraint-key>CreditCheckService-AdminServer-minprocess</ns2:constraint-key>
<ns2:action-key>CreditCheckServicestartaction</ns2:action-key>
</ns2:constraint-binding>
</ns2:constraint-bindings>
<ns2:name>AdminServer</ns2:name>
<ns2:description>AdminServer-description</ns2:description>
<ns2:metadata-key>CreditCheckService-AdminServermetakey</ns2:metadata-key>
</ns2:process-type>
</ns2:process-types>
<ns2:max-failed-event-retry-count>10</ns2:max-failed-event-retry-count>
<ns2:placement-algorithm>PreferLarger</ns2:placement-algorithm>
</ns2:service>
</ns2:services>
<ns2:connection-factories/>
<ns2:connection-infos/>
<ns2:constraints>
<ns2:deployment-state-constraint>
<ns2:name>CreditCheckService-service-deploy</ns2:name>
<ns2:key>CreditCheckServicedeploy-key</ns2:key>
<ns2:priority>0</ns2:priority>
<ns2:state>starting</ns2:state>
<ns2:evaluation-period>0</ns2:evaluation-period>
</ns2:deployment-state-constraint>
<ns2:deployment-state-constraint>
<ns2:name>CreditCheckService-service-undeploy</ns2:name>
<ns2:key>CreditCheckServiceundeploy-key</ns2:key>
<ns2:priority>0</ns2:priority>
<ns2:state>stopping</ns2:state>
<ns2:evaluation-period>0</ns2:evaluation-period>
</ns2:deployment-state-constraint>
<ns2:min-process-constraint>
<ns2:name>CreditCheckService-AdminServer-minprocess</ns2:name>
<ns2:key>CreditCheckService-AdminServer-minprocess</ns2:key>
<ns2:priority>0</ns2:priority>
<ns2:state>deployed</ns2:state>
<ns2:evaluation-period>0</ns2:evaluation-period>
<ns2:value>1</ns2:value>
</ns2:min-process-constraint>
<ns2:min-process-constraint>
<ns2:name>CreditCheckService-ManagedServers-minprocess</ns2:name>
<ns2:key>CreditCheckService-ManagedServers-minprocess</ns2:key>
<ns2:priority>0</ns2:priority>
<ns2:state>deployed</ns2:state>
<ns2:evaluation-period>0</ns2:evaluation-period>
<ns2:value>1</ns2:value>
</ns2:min-process-constraint>
</ns2:constraints>
<ns2:notifications/>
<ns2:pipelines/>
<ns2:actions>
<ns2:action>
<ns2:name>CreditCheckServicestartserviceaction</ns2:name>
<ns2:key>CreditCheckServicestartserviceaction</ns2:key>
<ns2:impl-class>com.bea.adaptive.actions.internal.StartServiceAction</ns2:impl-class>
<ns2:adjudicate>false</ns2:adjudicate>
<ns2:properties/>
</ns2:action>
<ns2:action>
<ns2:name>CreditCheckServicestopserviceaction</ns2:name>
<ns2:key>CreditCheckServicestopserviceaction</ns2:key>
<ns2:impl-class>com.bea.adaptive.actions.internal.StopServiceAction</ns2:impl-class>
<ns2:adjudicate>false</ns2:adjudicate>
<ns2:properties/>
</ns2:action>
<ns2:action>
<ns2:name>CreditCheckServicestartaction</ns2:name>
<ns2:key>CreditCheckServicestartaction</ns2:key>
<ns2:impl-class>com.bea.adaptive.actions.internal.StartJavaInstanceAction</ns2:impl-class>
<ns2:adjudicate>false</ns2:adjudicate>
<ns2:properties/>
</ns2:action>
<ns2:action>
<ns2:name>CreditCheckService-ManagedServers-defaultaction</ns2:name>
<ns2:key>CreditCheckService-ManagedServers-defaultaction</ns2:key>
<ns2:impl-class>com.bea.arc.ui.actions.ConsoleNotificationAction</ns2:impl-class>
<ns2:adjudicate>false</ns2:adjudicate>
<ns2:properties/>
</ns2:action>
<ns2:action>
<ns2:name>CreditCheckService-AdminServer-defaultaction</ns2:name>
<ns2:key>CreditCheckService-AdminServer-defaultaction</ns2:key>
<ns2:impl-class>com.bea.arc.ui.actions.ConsoleNotificationAction</ns2:impl-class>
<ns2:adjudicate>false</ns2:adjudicate>
<ns2:properties/>
</ns2:action>
</ns2:actions>
コード リスト 4-2 に、AdminServer プロセス グループのコンフィグレーションが metadata-config.xml
ファイルでどのように表現されるかを示します。太字部分に、準備完了メトリックのコンフィグレーションを示します。
<ns2:metadata-group>
<ns2:name>CreditCheckService-AdminServermeta1</ns2:name>
<ns2:key>CreditCheckService-AdminServermetakey</ns2:key>
<ns2:instances>
<ns2:jvm-instance>
<ns2:name>AdminServer</ns2:name>
<ns2:description>AdminServer JVM</ns2:description>
<ns2:max-copies>1</ns2:max-copies>
<ns2:variables/>
<ns2:main-class>weblogic.Server</ns2:main-class>
<ns2:ready-information>
<ns2:check-type>ValueEquals</ns2:check-type>
<ns2:max-wait-period>300000</ns2:max-wait-period>
<ns2:instance>com.bea:Name=AdminServer,Type=ServerRuntime</ns2:instance>
<ns2:attribute>State</ns2:attribute>
<ns2:value>RUNNING</ns2:value>
<ns2:value-type>java.lang.String</ns2:value-type>
</ns2:ready-information>
<ns2:jvm-args>
<ns2:arg>-Xmx128m</ns2:arg>
<ns2:arg>-Xms64m</ns2:arg>
<ns2:arg>-da</ns2:arg>
<ns2:arg>-Dwls.home=C:\wls_92\weblogic92\server</ns2:arg>
<ns2:arg>-Dweblogic.management.discover=true</ns2:arg>
<ns2:arg>-Dweblogic.Name=AdminServer</ns2:arg>
<ns2:arg>-Dweblogic.management.username=weblogic</ns2:arg>
<ns2:arg>-Dweblogic.management.password=weblogic</ns2:arg>
<ns2:arg>-Djava.security.policy=C:\wls_92\weblogic92\server\lib\weblogic.policy</ns2:arg>
<ns2:arg>-Dweblogic.RootDirectory=C:\wls_92\user_projects\domains\WLOC_base_domain</ns2:arg>
<ns2:arg>-cp</ns2:arg>
<ns2:arg>C:\wls921\patch_weblogic921\profiles\default\sys_manifest_classpath\weblogic_patch.jar;
C:\wls921\JDK150~1\lib\tools.jar;C:\wls921\WEBLOG~1\server\lib\weblogic_sp.jar;C:\wls921\WEBLOG~1\server\lib\weblogic.jar;
C:\wls921\WEBLOG~1\server\lib\webservices.jar;C:\wls921\patch_weblogic921\profiles\default\sys_manifest_classpath\weblogic_patch.jar;
C:\wls921\JDK150~1\lib\tools.jar;C:\wls921\WEBLOG~1\server\lib\weblogic_sp.jar;C:\wls921\WEBLOG~1\server\lib\weblogic.jar;C:\wls921\WEBLOG~1\server\lib\webservices.jar;
;C:\wls921\patch_weblogic921\profiles\default\sys_manifest_classpath\weblogic_patch.jar;
C:\wls921\JDK150~1\lib\tools.jar;C:\wls921\WEBLOG~1\server\lib\weblogic_sp.jar
;C:\wls921\WEBLOG~1\server\lib\weblogic.jar;C:\wls921\WEBLOG~1\server\lib\webservices.jar;
;C:\wls921\WEBLOG~1\common\eval\pointbase\lib\pbclient51.jar;C:\wls921\WEBLOG~1\server\lib\xqrl.jar;;
;C:\wls921\WEBLOG~1\common\eval\pointbase\lib\pbclient51.jar;C:\wls921\WEBLOG~1\server\lib\xqrl.jar;
;C:\wls921\WEBLOG~1\common\eval\pointbase\lib\pbclient51.jar;C:\wls921\WEBLOG~1\server\lib\xqrl.jar</ns2:arg>
</ns2:jvm-args>
<ns2:java-args/>
<ns2:native-lib-dir></ns2:native-lib-dir>
<ns2:instance-dir></ns2:instance-dir>
<ns2:native-jmx>false</ns2:native-jmx>
<ns2:protocol>iiop</ns2:protocol>
<ns2:host>localhost</ns2:host>
<ns2:port>7001</ns2:port>
<ns2:username>weblogic</ns2:username>
<ns2:password>{Salted-3DES}tkGybm3FYNQvTYnIKW3B7Q==</ns2:password>
<ns2:ssh-enabled>false</ns2:ssh-enabled>
<ns2:wait-for-ssh>false</ns2:wait-for-ssh>
<ns2:priority>0</ns2:priority>
<ns2:copies-at-create/>
<ns2:copies-at-shutdown/>
</ns2:jvm-instance>
</ns2:instances>
</ns2:metadata-group>
</ns2:metadata>
サービスと初期デプロイメント ポリシーが定義できたので、実行時ポリシーを定義する必要があります。
WLOC ポリシーでは、サービスの実行時の要件 (制約またはルール) と、サービスの動作が制約を越えた場合に実行されるアクションが指定されます。これらのポリシーではサービスのサービス レベル アグリーメント (SLA) が定義されます。たとえば、制約に違反した場合に別の JVM が開始されるポリシーを定義できます。
WLOC には Smart Packs というあらかじめ定義された制約のセットが含まれており、これを使用して、サービスの状態およびパフォーマンスに関する一般的な測定値に要件を付与することができます。この例では、Smart Pack 制約の一部として提供される MaxAverageJVMProcessorLoad 制約を使用して、ManagedServers プロセス グループの実行時ポリシーを定義します。
実行時ポリシーでは、MaxAverageJVMProcessorLoad 制約の値を 0.8 に指定するルール (制約) を定義します。この値は、JVM プロセッサの平均負荷が 80% を超えた場合にアクションが発生する必要があることを示します。この例では、2 つ目の管理対象サーバ インスタンスが開始されます。
実行時ポリシーを作成し、ManagedServers プロセス グループに割り当てるには :
プロセス制約のデプロイメント ポリシーのリストがテーブルに表示されます。
新しいポリシー ルールが [Rules] テーブルに追加され、確認メッセージ [New policy created successfully
] が表示されます。
ポリシーの割り当てが作成され、確認メッセージ [Binding created successfully
] が表示されます。
[Active Policies] テーブルで、[MaxAverageJVMProcessorLoad] ポリシーが ManagedServers プロセス グループに割り当てられています。
コード リスト 4-3 に、制約のバインド、カスタム制約、および関連付けられたアクションの MaxAverageJVMProcessorLoad コンフィグレーションが metadata-config.xml
ファイルでどのように表現されるかを示します。
.
.
.
<ns2:process-types>
<ns2:process-type>
<ns2:constraint-bindings>
<ns2:constraint-binding>
<ns2:constraint-key>CreditCheckService-ManagedServers-minprocess</ns2:constraint-key>
<ns2:action-key>CreditCheckServicestartaction</ns2:action-key>
</ns2:constraint-binding>
<ns2:constraint-binding>
<ns2:constraint-key>MaxAverageJVMProcessorLoad</ns2:constraint-key>
<ns2:action-key>CreditCheckServicestartaction</ns2:action-key>
</ns2:constraint-binding>
</ns2:constraint-bindings>
<ns2:name>ManagedServers</ns2:name>
<ns2:description>ManagedServers-description</ns2:description>
<ns2:metadata-key>CreditCheckService-ManagedServersmetakey</ns2:metadata-key>
</ns2:process-type>
.
.
.
<ns2:custom-constraint>
<ns2:name>MaxAverageJVMProcessorLoad</ns2:name>
<ns2:key>MaxAverageJVMProcessorLoad</ns2:key>
<ns2:priority>0</ns2:priority>
<ns2:state>deployed</ns2:state>
<ns2:evaluation-period>10000</ns2:evaluation-period>
<ns2:constraint>MaxAverageJvmProcessorLoad</ns2:constraint>
<ns2:value>0.8</ns2:value>
</ns2:custom-constraint>
.
.
.
ns2:action>
<ns2:name>CreditCheckServicestartaction</ns2:name>
<ns2:key>CreditCheckServicestartaction</ns2:key>
<ns2:impl-class>com.bea.adaptive.actions.internal.StartJavaInstanceAction</ns2:impl-class>
<ns2:adjudicate>false</ns2:adjudicate>
<ns2:properties/>
</ns2:action>
管理対象のサービスの定義とデプロイメントおよび実行時ポリシーの割り当てが完了したので、「使用可能なリソースへのサービスのデプロイ」で説明する手順に従って、サービスをデプロイする必要があります。
![]() ![]() ![]() |