5 カレンダベースのスケーリング
カレンダベースのスケーリングの概要
WLDFは、特定の時刻、一定期間経過後、または指定間隔で、カレンダ・スケジュールに応じて起動されるポリシーのアクションをサポートしています。カレンダベースのスケーリングでは、定義されたスケジュールに基づいてスケーリング・アクションを実行します。
カレンダベースのルール・スケジュールは、式言語としてJava式言語(EL)を利用するHarvester
ルールでのみサポートされます。次のポリシー・タイプで、カレンダベースのルール・スケジュールがサポートされています。
-
カレンダベース
-
スマート・ルールベース
-
収集対象メトリック
カレンダベースのスケーリングの構成
カレンダベースのスケーリングを構成するには、ポリシーを作成し、ポリシーのスケジュールを定義し、スケーリング・アクションを作成してそのポリシーに割り当てます。
ポリシー・スケジュールは、次に基づいて実行するように設定できます。
-
N秒ごと
-
N分ごと
-
N時間ごと
-
特定の曜日(の特定の時刻)
-
月内の特定の日(の特定の時刻)
ポリシー・スケジュールは、WLDFScheduleBean
に基づいています。表5-1に、ポリシー・スケジュールの設定に使用される属性を示します。
表5-1 WLDFScheduleBean属性
属性 | デフォルト値 | 使用可能な値 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
* (毎月) |
|
|
|
|
|
n/a |
|
|
|
|
これらの属性は、次の構文を使用して、いくつかの方法で指定できます。この構文は、EJB ScheduleExpression
クラスによってサポートされます。この構文の詳細は、ScheduleExpression
のドキュメントを参照してください。
-
単一の値。たとえば:
second = "10" month = "Oct"
-
属性の可能値すべてを表すワイルドカード(*)を使用します。たとえば、すべての曜日を指定するには次のようにします。
dayOfWeek = "*"
-
範囲。値の包含範囲に属性を制約します。範囲の両端はダッシュで区切って指定します。たとえば:
second = "1-10" dayOfWeek = "Mon-Fri"
-
増分。最初の値と間隔に基づき、スラッシュ(/)を使用してこの2つの値を区切って、属性を制約します。増分の使用は、
second
、minute
およびhour
属性を指定する場合のみサポートされます。たとえば:-
minute = "*/5"
は、5分ごとを表します。この構文は、minute = "0,5,10,15,20,25,30,35,40,45,50,55"
と同等です。 -
second = "30/10"
は、1分のうち、30秒から開始して10秒ごとを表します。この構文は、second = "30,40,50"
と同等です。
ノート:
属性の最大値に達すると、増分は停止します。つまり、最大許容値を上回りません。
-
-
リスト。カンマ区切りのリストを使用して、複数の許容される値または値の範囲に属性を制約します。各リスト項目は、値または範囲である必要があり、ワイルドカード、リストまたは増分であることはできません。たとえば:
second = "10,20,30" dayOfWeek = "Mon,Wed,Fri" minute = "0-10,30,40"
ノート:
-
ドメインでカレンダベースのスケーリングを構成する前に、必ず動的クラスタを作成し、「拡張度を構成するための要件」で説明されている前提条件となるタスクを完了しておいてください。
-
ターゲットが管理サーバーに設定されているドメイン全体の診断システム・モジュールでは、カレンダベースのポリシーを構成する必要があります。
WebLogic Server管理コンソールを使用したカレンダベースのスケーリングの構成
WebLogic Server管理コンソールを使用してカレンダベースのスケーリングを構成するには:
-
カレンダベースのルールをサポートするポリシーを作成して有効化します。Oracle WebLogic Server管理コンソール・オンライン・ヘルプの次のトピックを参照してください。
ノート:
WebLogic Server管理コンソールを使用してカレンダベースのポリシーを作成する際に、ポリシーのスケジュールを指定し、さらにスケーリング・アクションを作成してポリシーに割り当てることもできます。ポリシー自体の作成時にポリシーのスケジュールおよびスケーリング・アクションを指定しない場合、次のステップを使用して後で構成を完了できます。
-
ポリシーのスケジュールを設定または更新します。
-
管理コンソールの左側のペインで「診断」を展開して、「診断モジュール」を選択します。
-
構成するポリシーを含む診断モジュールを選択します。
-
「構成」→「ポリシーとアクション」→「ポリシー」を選択して、構成するポリシーの名前をクリックします。
-
「スケジュール」ページを選択して、ポリシーに対して希望するスケジュール設定を定義します。
-
「保存」をクリックします。
-
-
スケーリング・アクションを作成、有効化します。Oracle WebLogic Server管理コンソール・オンライン・ヘルプの次のトピックを参照してください。
-
ポリシーにスケーリング・アクションを割り当てます。
ノート:
指定のポリシーには1つのスケーリング・アクションしか割り当てることができません。
-
管理コンソールの左側のペインで「診断」を展開して、「診断モジュール」を選択します。
-
構成するポリシーを含む診断システム・モジュールを選択します。
-
「構成」→「ポリシーとアクション」→「ポリシー」を選択して、構成するポリシーの名前をクリックします。
-
「アクション」ページを選択します。
-
「スケーリング・アクション」セクションで、「アクションのスケール・アップ」と「アクションのスケール・ダウン」のいずれかを選択し、このポリシーに割り当てるスケール・アップまたはスケール・ダウン・アクションを選択します。あるいは、「新規スケール・アップ・アクション」または「新規スケール・ダウン・アクション」をクリックして、このポリシーの新規スケーリング・アクションを作成します。
-
「保存」をクリックします。
-
Fusion Middleware Controlを使用したカレンダベースのスケーリングの構成
Fusion Middleware Controlを使用してカレンダベースのスケーリングを構成するには:
-
カレンダベースのルールをサポートするポリシーを作成して有効化します。Fusion Middleware ControlによるOracle WebLogic Serverの管理の新しいポリシーの作成を参照してください。
ノート:
Fusion Middleware Controlでのポリシーソールでの作成時に、ポリシーのスケジュールを指定し、ポリシーにスケーリング・アクションを作成して割り当てることができます。作成時にポリシーのスケジュールおよびスケーリング・アクションを指定しない場合、次のステップを使用して必要な構成を完了できます。
-
ポリシーのスケジュールを設定または更新します。
-
「WebLogicドメイン」ドロップダウン・メニューから「診断」を選択し、「診断モジュール」を選択します。
-
「診断モジュール」表で、編集するポリシーを含む診断システム・モジュールを選択します。
-
「構成」→「ポリシーとアクション」→「ポリシー」を選択して、構成するポリシーの名前をクリックします。
-
「スケジュール」ページを選択して、ポリシーに対して希望するスケジュール設定を定義します。
-
「適用」をクリックします。
-
-
スケーリング・アクションを作成、有効化します。Fusion Middleware ControlによるOracle WebLogic Serverの管理のスケール・アップまたはスケール・ダウン・アクションの作成を参照してください。
-
ポリシーにスケーリング・アクションを割り当てます。
ノート:
指定のポリシーには1つのスケーリング・アクションしか割り当てることができません。
-
「WebLogicドメイン」ドロップダウン・メニューから「診断」を選択し、「診断モジュール」を選択します。
-
「診断モジュール」表で、編集するポリシーを含む診断システム・モジュールを選択します。
-
「構成」→「ポリシーとアクション」→「ポリシー」を選択して、構成するポリシーの名前をクリックします。
-
「アクション」ページを選択します。
-
「スケーリング・アクション」セクションで、「アクションのスケール・アップ」と「アクションのスケール・ダウン」のいずれかを選択し、リストから希望のスケーリング・アクションを選択します。オプションで、「スケール・アップ・アクションの作成」または「スケール・ダウン・アクションの作成」をクリックして、このポリシーの新規スケーリング・アクションを作成します。
-
「適用」をクリックします。
-
WLSTを使用したカレンダベースのスケーリングの構成
次の例は、特定の日の特定の時刻に動的クラスタをスケーリングするカレンダ・ベースのポリシーを、WLSTを使用して作成および構成する方法を示しています。例5-1では、12月26日3:00 a.m.にスケール・アップ・アクションを実行するカレンダベースのポリシーを構成するコマンドを示します。例5-2では、1月15日午前0時にスケール・ダウン・アクションを実行するカレンダベースのポリシーを構成するコマンドを示します。
例5-1 スケール・アップ・アクションを設定したカレンダベースのポリシー
calendarScaleUp=wn.createWatch('ChristmasReturnsScaleUpWatch') calendarScaleUp.setExpressionLanguage('EL') calendarScaleUp.getSchedule().setHour('3') calendarScaleUp.getSchedule().setMinute('0') calendarScaleUp.getSchedule().setSecond('0') calendarScaleUp.getSchedule().setDayOfMonth('26') calendarScaleUp.getSchedule().setMonth('Dec') calendarScaleUp.setEnabled(false) calendarScaleUp.addNotification(scaleUp)
例5-2 スケール・ダウン・アクションを設定したカレンダベースのポリシー
calendarScaleDown=wn.createWatch('PostChristmasReturnsScaleDownWatch') calendarScaleDown.setExpressionLanguage('EL') calendarScaleDown.getSchedule().setHour('0') calendarScaleDown.getSchedule().setMinute('0') calendarScaleDown.getSchedule().setSecond('0') calendarScaleDown.getSchedule().setDayOfMonth('15') calendarScaleDown.getSchedule().setMonth('Jan') calendarScaleDown.setEnabled(false) calendarScaleDown.addNotification(scaleDown)