コンフィグレーション ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

ポリシーの定義

この節では、WLOC を使用してアプリケーションをデプロイおよび管理するためのポリシーを作成する方法について説明します。この節は、以下のトピックで構成されています。

 


ポリシーの構成要素

各 WLOC ポリシーは、制約とアクションまたはアクション パイプラインで構成されています。制約では、サービスの一部のデプロイメントまたは実行時の要件を定義します。一方、アクションまたはアクション パイプラインでは、サービスの runtime-value が constraint-value の範囲外になった場合に実行する 1 つまたは複数のアクションを定義します。

たとえば、少なくとも 2 つの実行プロセスの実行時の要件を定義する制約、および実行するプロセスが 1 つだけ見つかった場合にプロセスを開始するアクションでポリシーを構成することができます。

図 6-1 は、制約とアクションの基本的な関係を示しています。

図 6-1 ポリシーの制約とアクション

ポリシーの制約とアクション

ポリシーに対する制約とアクションの割り当ては、「制約とアクションのバインディング」と呼ばれます。

コード リスト 6-1 は、metadata-config.xml ファイルにおけるサービス定義の一部としての制約とアクションのバインディングを示しています。この例における「キー」の名前は、ファイル内の他の場所にある制約とアクションの定義全体への参照です。

コード リスト 6-1 metadata-config.xml における制約とアクションのバインディング
<ns2:service>
    <ns2:name>MyService</ns2:name>
    <ns2:description>MyService</ns2:description>
    <ns2:state>deployed</ns2:state>
    <ns2:priority>0</ns2:priority>
    <ns2:constraint-bindings>
       <ns2:constraint-binding>
           <ns2:constraint-key>MyServicedeploy-key</ns2:constraint-key>
           <ns2:action-key>MyServicestartserviceaction</ns2:action-key>
        </ns2:constraint-binding>
    </ns2:constraint-bindings>
</ns2:service>

ポリシーのスコープに適した制約とアクションのバインディングを行うことが非常に重要です。たとえば、一部のサービス デプロイメントの状態を指定する制約は、サービスをステージング、デプロイ、またはアンデプロイできるアクションにバインドする必要があります。

 


ポリシーの作成

ポリシーを作成するには、次の手順に従います。

  1. 一部のサービス デプロイメントの状態または実行時のパフォーマンス要件を定義する制約を作成します。
  2. 注意 : WLOC Administration Console では、制約を表す用語として「ルール」を使用します。
  3. アプリケーション ランタイムが制約の定義を満たしていない場合に実行するアクションを指定するアクションまたはアクション パイプラインを作成します。Administration Console でこれらを作成すると、アクション (またはアクション パイプライン) が効率的に制約にバインドされます。

推奨されるポリシーの定義方法は WLOC Administration Console を使用する方法ですが、メタデータ コンフィグレーション ファイル (metadata-config.xml) を直接編集することもできます。ファイルを直接編集する場合は、3 つの定義 (サービスまたはプロセスの種類に基づく制約のバインディング、制約、およびアクション) を指定する必要があります。

コード リスト 6-2 は、制約のバインディングの XML コードを示しています。コード リスト 6-1 に示すように、制約のバインディングはサービス定義内に含まれます。制約のバインディングには、ファイル内の他の場所にある実際の制約とアクションの定義への「キー」が含まれます。

コード リスト 6-2 制約とアクションのバインディング
         <ns2:constraint-binding>
              <ns2:constraint-key>MyServicedeploy-key</ns2:constraint-key>
              <ns2:action-key>MyServicestartserviceaction</ns2:action-key>
         </ns2:constraint-binding>
     </ns2:constraint-bindings>

コード リスト 6-3 は、上記の制約のバインディングで参照される制約の定義の XML コードを示しています。

コード リスト 6-3 制約の定義
     <ns2:deployment-state-constraint>
         <ns2:name>MyService-service-deploy</ns2:name>
         <ns2:key>MyServicedeploy-key</ns2:key>
         <ns2:priority>0</ns2:priority>
         <ns2:state>starting</ns2:state>
         <ns2:evaluation-period>0</ns2:evaluation-period>
      </ns2:deployment-state-constraint>

コード リスト 6-4 は、コード リスト 6-2 に示す制約とアクションのバインディングで参照されるアクションの定義の XML コードを示しています。

コード リスト 6-4 アクションの定義
<ns2:actions>
<ns2:action>
<ns2:name>MyServicestartserviceaction</ns2:name>
<ns2:key>MyServicestartserviceaction</ns2:key>
<ns2:impl-class>com.bea.adaptive.actions.internal.StartServiceAction</ns2:impl-class>
<ns2:adjudicate>false</ns2:adjudicate>
<ns2:properties/>
</ns2:action>
</ns2:actions>

メタデータ コンフィグレーション ファイルの編集方法を理解するには、スキーマ ファイル (BEA_HOME\wloc_10.3\schemas\loc-metadata.xsd) を使用し、サービス メタデータ コンフィグレーション スキーマ リファレンスも参照してください。

 


ポリシーの種類

必要に応じて管理対象アプリケーションをデプロイして実行するために必要なポリシーの識別を開始する場合は、目的別または機能別にポリシーを分類すると役立つことがあります。この点から、ポリシーはデプロイメント、実行時、または管理のカテゴリに分類することができます。

これらのポリシーの種類については、以下の節で説明します。

デプロイメント ポリシー

デプロイメント ポリシーでは、管理対象アプリケーションの必要なデプロイメントの状態 (デプロイ済み、ステージング済み、アンデプロイ済み) およびアプリケーションが必要な状態になっていない場合に実行するアクションを定義します。たとえば、デプロイメント ポリシーでは、サービス デプロイメントの状態が「デプロイ済み」であることが必要な場合があります。現在のサービスの状態が「デプロイ済み」でない場合、WLOC はサービスをデプロイします。

表 6-1 は、デプロイメント ポリシーの定義に使用できる制約とアクションの種類を示しています。

表 6-1 デプロイメント ポリシーの制約とアクション
制約の種類
アクションの種類
[Deployment]
[Resource Agreement]
詳細については、「制約の種類」を参照してください。
[Service]
[Notification]
詳細については、「アクションの種類」を参照してください。

注意 : [Resource Agreement] 制約はアクションにバインドされません。

実行時ポリシー

実行時ポリシーは、管理対象アプリケーションの継続的なパフォーマンスを調整し、必要に応じて順応的な実行時調整を行うために使用されます。このポリシーの使い方の例を次に示します。

表 6-2 は、実行時ポリシーの定義に使用できる制約とアクションを示しています。

表 6-2 実行時ポリシーの制約とアクション
制約の種類
アクションの種類
[Runtime]
[Resource Agreement]
詳細については、「制約の種類」を参照してください。
[Process]
[Resource]
詳細については、「アクションの種類」を参照してください。

管理ポリシー

管理ポリシーでは、制約違反があった場合に実行する管理アクションを定義します。たとえば、何らかの制約違反があった場合に、管理アクションによって電子メール通知または Administration Console イベント メッセージを生成できます。

表 6-3 は、管理ポリシーの定義に使用できる制約とアクションの種類を示しています。

表 6-3 管理ポリシーの制約とアクション
制約の種類
アクションの種類
[Deployment]
[Runtime]
詳細については、「制約の種類」を参照してください。
[Notification]
[Configuration]
詳細については、「アクションの種類」を参照してください。

 


制約の種類

WLOC には、状態とパフォーマンスの一般的かつ重要な一連の測定値を使用して要件を定義するための制約の種類があらかじめ用意されています。表 6-4 は、あらかじめ用意されている制約の種類を示しています。

注意 : これらの制約の種類の詳細については、『WLOC Administration Console オンライン ヘルプ』の「制約の定義」を参照してください。

表 6-4 制約の種類
種類
説明
[Deployment]
サービスの必要なデプロイメントの状態 (デプロイ済み、ステージング済み、アンデプロイ済み) を定義します。
Administration Console では、以下の選択項目があります。
特定の日時におけるサービスのデプロイに基づく
特定の日時におけるサービスのアンデプロイに基づく
サービス デプロイメントの状態に基づく
[Runtime]
JVM ベースの制約であり、必要な実行インスタンス数の指定、割り当てる CPU の最小容量、いくつかのメトリックに基づいたイベント メッセージの生成など、さまざまな方法で使用できます。
MBean 属性に基づく [Runtime] 制約は、観察可能なメトリック (ヒープ サイズ) を直接使用して、またはそれらのメトリックに適用される関数 (すべての JVM の合計ヒープ サイズ) で定義できます。詳細については、「MBean 属性に基づく制約」を参照してください。
Administration Console では、以下の選択項目があります。
特定の日時におけるサービスの発生に基づく
特定の日時におけるプロセス グループ イベントの発生に基づく
アクションの結果を基準としたプロセス グループ イベントの発生に基づく
別のイベントの結果を基準としたプロセス グループ イベントの発生に基づく
名前の付いた属性に基づく
属性または関数の値に基づく
[Resource Agreement]
サービスの配置と JVM の作成に使用されます。この制約を Administration Console で定義する場合は、アクションにバインドされません。metadata-config.xml では、値が INTERNAL のアクションにこの制約をバインドする必要があります。
Administration Console では、以下の選択項目があります。
CPU の最大容量に基づく
CPU の共有に基づく
メモリの最小容量に基づく
メモリの最大容量に基づく
メモリの共有に基づく
最小プロセス数に基づく
最大プロセス数に基づく
ソフトウェアの可用性に基づく
IP アドレスに基づく
ISO ソフトウェアの可用性に基づく
必要なローカル ディスク サイズの容量に基づく

MBean 属性に基づく制約

MBean 属性に基づく [Runtime] 制約は、管理対象 JVM から収集される実行時 JMX 属性に対して評価されます。これらの属性は、直接観察される属性のメトリック値、または 1 つの JVM インスタンス (または JVM インスタンスの集合) のそれらの値に関数を適用して取得されるカスタム メトリックのどちらをベースにすることもできます。

名前の付いた属性

WLOC Administration Console には、名前の付いた一連の制約 (Smart Pack 制約) が用意されています。これらは、名前の付いた MBean 属性に基づいています。これらの制約のいずれか 1 つを選択すると、コンソールによって MBean インスタンス名、種類、および属性名が自動的に指定されます。表 6-5 は、Smart Pack 制約を示しています。

表 6-5 名前の付いた属性の制約
制約
説明
MinFreeHeapSize
MaxFreeHeapSize
特定のプロセス タイプにおける 1 つの JVM の最小空きヒープ サイズと最大空きヒープ サイズ。
MinAverageFreeHeapSize
MaxAverageFreeHeapSize
特定のプロセス タイプにおけるすべての JVM の最小平均空きヒープ サイズと最大平均空きヒープ サイズ。
MinFreePhysicalMemory
MaxFreePhysicalMemory
特定のプロセス タイプにおける 1 つの JVM の最小空き物理メモリ サイズと最大空き物理メモリ サイズ。
MinAverageFreePhysicalMemory
MaxAverageFreePhysicalMemory
特定のプロセス タイプにおけるすべての JVM の最小平均空き物理メモリ サイズと最大平均空き物理メモリ サイズ。
MinUsedPhysicalMemory
MaxUsedPhysicalMemory
特定のプロセス タイプにおける 1 つの JVM の最小使用済み物理メモリ サイズと最大使用済み物理メモリ サイズ。
MinAverageUsedPhysicalMemory
MinAverageUsedPhysicalMemory
特定のプロセス タイプにおけるすべての JVM の最小平均使用済み物理メモリ サイズと最大平均使用済み物理メモリ サイズ。
MinJvmProcessorLoad
MaxJvmProcessorLoad
CPU の最小使用率と最大使用率。範囲は 0.0 ~ 1.0 です。値 0.5 は 50% の CPU と同等です。
MinAverageJvmProcessorLoad
MaxAverageJvmProcessorLoad
特定のプロセス タイプにおけるすべての VM の CPU の最小平均使用率と最大平均使用率。

コード リスト 6-5 は、名前の付いた属性の制約を含む XML コードを示しています。metadata-config.xml を直接編集する場合の参考にしてください。

コード リスト 6-5 名前の付いた MBean 属性の制約
<ns2:instance-name>com.bea:Name=myserver,Type=ServerRuntime</ns2:instance-name>
<ns2:instance-type>weblogic.management.runtime.ServerRuntimeMBean</ns2:instance-type>
<ns2:attribute-name>RestartsTotalCount</ns2:attribute-name>
<ns2:constraint-type>max</ns2:constraint-type>
<ns2:value>10</ns2:value>
カスタム メトリック

制約は、単純な数値比較関数または MBean 属性に適用されるさらに複雑な関数をベースにすることができます。制約関数には、次の構文を使用してメトリックのパラメータを含めることができます。

[<種類>|<インスタンス名>|<属性名>]

たとえば、次のように指定します。

Sum([weblogic.management.runtime.ServerRuntimeMBean|.*|RestartsTotalCount],[weblogic.management.runtime.ServerRuntimeMBean|.*|Port])

入力項目は以下のとおりです。

インスタンス名の指定では正規表現の構文を使用できるため、コンテキスト固有の名前を使用する必要はありません。以降の例では、「.*」がインスタンス名として使用されますが、任意の正規表現を使用することもできます。

Sum — 関数
weblogic.management.runtime.ServerRuntimeMBean — インスタンスの種類
.* — インスタンス名
RestartsTotalCount — 属性名
Port — 2 つ目の属性名

メトリックのパラメータにはその他の関数を含めることもできます。次に例を示します。

Sum(Sum([weblogic.management.runtime.ServerRuntimeMBean|.*|RestartsTotalCount],[weblogic.management.runtime.ServerRuntimeMBean|.*|RestartsTotalCount]),[weblogic.management.runtime.ServerRuntimeMBean|.*|RestartsTotalCount])

関数定義のスカラーは定数値です。スカラーを関数で置き換えることはできません。たとえば、次のように指定します。

SumWithScalar([weblogic.management.runtime.ServerRuntimeMBean|.*|RestartsTotalCount],37)

WLOC 提供の関数の詳細なリストについては、『WLOC Administration Console オンライン ヘルプ』の「カスタム メトリックの定義」を参照してください。

コード リスト 6-6 は、MeanofCollection 関数を使用する制約を定義する XML コードを示しています。関数は double を返すので、double-constraint 要素にカプセル化されます。これらの制約の instance-type 要素は常に FUNCTION であり、関数定義自体は attribute-name 要素で指定されます。

instance-name 要素の値は、実際の関数名と一致する必要はありません。

コード リスト 6-6 metadata-config.xml における関数を使用した制約
      <ns2:double-constraint>
        <ns2:name>MyConstraint</ns2:name>
        <ns2:key>MyConstraintKey</ns2:key>
        <ns2:priority>0</ns2:priority>
        <ns2:state>deployed</ns2:state>
        <ns2:instance-name>MeanOfCollection</ns2:instance-name>
        <ns2:instance-type>FUNCTION</ns2:instance-type>
        <ns2:attribute-name>MeanOfCollection([weblogic.management.runtime.
            ServerRuntimeMBean|.*|ServerStartupTime])</ns2:attribute-name>
        <ns2:constraint-type>max</ns2:constraint-type>         <ns2:value>10000</ns2:value>
      </ns2:double-constraint>

 


アクションの種類

表 6-6 は、WLOC にあらかじめ用意されているアクションを示しています。これらのアクションを WLOC Administration Console で作成する場合は、必須のパラメータ値の入力を求められます。

注意 : これらのアクションの種類の詳細については、『WLOC Administration Console オンライン ヘルプ』の「アクションの定義」を参照してください。

表 6-6 アクションの種類
アクションの種類
説明
[Service]
サービスを開始、停止、ステージング、テスト、または破棄するアクション。
StageServiceAction
StartServiceAction
StopServiceAction
DestroyServiceAction
TestStartServiceAction
[Process]
Java プロセスのインスタンスを開始、停止、破棄、ステージング、中断、コンフィグレーション変更、または正常に停止するアクション。
StartJavaInstanceAction
StopJavaInstanceAction
DestroyJavaInstanceAction
StageJavaInstanceAction
ResumeJavaInstanceAction
RemoteAction
SuspendJavaInstanceAction
JavaInstanceConfigAction
[Notification]
さまざまな種類の通知を送信します。
Console
EmailNotificationAction
JMXNotificationAction
JMSNotificationAction
SNMPNotificationAction
[Resource]
使用可能な CPU やメモリの最大容量、最小容量、または共有を変更するアクション。
ChangeMaxCPUAction
ChangeMinCPUAction
ChangeShareCPUAction
ChangeMaxMemoryAction
ChangeMinMemoryAction
ChangeShareMemoryAction
[Configuration]
指定された管理対象オブジェクトで JMX 操作を実行するアクション。定義可能なアクションは以下のとおりです。
  • MBean のインスタンスを作成するアクション。
  • MBean のインスタンスを破棄するアクション。パラメータが不要なアクション。
  • MBean 属性を指定された値に設定するアクション。
  • MBean に対する操作を呼び出すアクション。

注意 : ほとんどのアクションは、制約にバインドしたりポリシーに追加したりせずに、Administration Console から直接実行することもできます。

 


アクション パイプライン

アクションを組み合わせてアクション パイプラインを作成することができます。これにより、制約違反があった場合に一連のアクションが実行されます。

注意 : パイプラインのいずれかのポイントでアクションが失敗すると、そのパイプラインは終了し、パイプライン内の後続のアクションは実行されません。

アクション パイプラインの例

WebLogic Server 管理サーバ インスタンスの起動、管理対象サーバ インスタンスのクラスタの起動、および電子メール通知の送信に必要なアクションを定義するには、次の手順に従います。

  1. WLS 管理サーバ インスタンスを起動するアクションを定義します。
  2. 管理対象サーバ インスタンスを起動するアクションを定義します。
  3. サーバ インスタンスが起動したら電子メール通知を送信するアクションを定義します。
  4. これらすべてのアクションで構成されるアクション パイプラインを定義します。
  5. 適切な制約を含むポリシーを作成し、パイプラインを制約にバインドします。

  ページの先頭       前  次