Oracle® Fusion Middleware

Oracle WebLogic Server動的クラスタの拡張度の構成

12c (12.2.1.2.0)

E82894-01(原本部品番号:E77966-02)

2016年11月

WebLogic Server 12.2.1.2.0で拡張度を使用して動的クラスタをスケール・アップおよびスケール・ダウンする方法を説明する、開発者および管理者のためのドキュメント。

Oracle Fusion Middleware Oracle WebLogic Server動的クラスタの拡張度の構成 12c (12.2.1.2.0)

E82894-01

Copyright © 2015, 2016, Oracle and/or its affiliates. All rights reserved.

原本著者: Shanthi Srinivasan

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- ドキュメントのアクセシビリティについて

- 表記規則

1 概要とロードマップ

- ドキュメントのスコープと対象読者

- このドキュメントの手引き

- 関連ドキュメント

2 概要

- 拡張度とは

- 関連する用語

- スクリプトおよびデータソース・インターセプタの導入

3 拡張度を構成するための要件

- 動的クラスタの構成

- ポリシーとアクションの構成

- マシンのプロビジョニング

4 要求時スケーリング

- 要求時スケーリングとは

- WebLogic Server管理コンソールを使用した要求時スケーリング

- Fusion Middleware Controlを使用した実行時スケーリング

- WLSTを使用した実行時スケーリング

5 エラスティック・アクション

- エラスティック・アクションの導入

- スケール・アップ・アクションの構成

- スケール・ダウン・アクションの構成

- エラスティック・アクションを作成および構成するためのロードマップ

6 カレンダベースのスケーリング

- カレンダベースのスケーリングの概要

- カレンダベースのスケーリングの構成

- WebLogic Server管理コンソールを使用したカレンダベースのスケーリングの構成

- Fusion Middleware Controlを使用したカレンダベースのスケーリングの構成

- WLSTを使用したカレンダベースのスケーリングの構成

7 ポリシーベースのスケーリング

- ポリシーベースのスケーリングとは

- スマート・ルールの導入

- ポリシーベースのスケーリング例

- 前提条件

- 必要なソフトウェアのインストール

- 必要なファイルのダウンロードと解凍

- 環境の設定

- ドメイン・テンプレートの解凍

- 管理サーバーとノード・マネージャの起動

- Oracle Traffic Directorインスタンスの起動

- 動的サーバーの構成とアクティビティの表示

- JMeterを使用したデモの実行

- 監視ダッシュボードを使用したスケーリング操作の監視

- 拡張度デモの再実行と停止

8 データソース・インターセプタの構成

- データソース・インターセプタの概要

- データソース・インターセプタの構成

9 スクリプト・インターセプタの構成

- スクリプト・インターセプタの概要

- プリプロセッサ・スクリプトの構成

- ポストプロセッサ・スクリプトの構成

- スクリプト・インターセプタのエラー処理の構成

- 予約済の環境変数

はじめに

ここでは、このガイド『Oracle WebLogic Server動的クラスタの拡張度の構成』で使用されるドキュメント・アクセシビリティ機能と表記規則について説明します。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご購入のOracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info) か、聴覚に障害のあるお客様は (http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 概要とロードマップ

この章では、このガイド 『Oracle WebLogic Server動的クラスタの拡張度の構成』の内容と対象読者について説明します。このガイドでは、Oracle WebLogic Serverで拡張度を使用して動的クラスタを自動的にスケール・アップおよびスケール・ダウンする方法を説明します。

この章の内容は次のとおりです。

- ドキュメントのスコープと対象読者

- このドキュメントの手引き

- 関連ドキュメント

ドキュメントの範囲および対象読者

このドキュメントは、インストールされたWebLogic Serverのモニターおよび管理に携わるシステム管理者およびオペレータを対象としています。その内容は、デプロイメントからテストおよび本番まで、ソフトウェア・プロジェクトのすべての段階に関連しています。

このドキュメントの構成

このマニュアルの構成は次のとおりです。

- この章「概要とロードマップ」では、対象読者について説明し、この本の内容を概説します。

- 「概要」では、拡張度および関連の用語を紹介します。

- 「拡張度の構成のための要件」では、動的クラスタの作成やマシンのプロビジョニングなど、拡張度を構成するための要件を示し、説明します。

- 「要求時スケーリング」では、実行中の動的サーバー・インスタンスを手動で追加または削除して、要求に基づき動的クラスタをスケール・アップまたはスケール・ダウンする方法を説明します。

- 「エラスティック・アクション」では、新しいエラスティック・アクション、スケール・アップおよびスケール・ダウン・アクションを紹介します。

- 「カレンダベースのスケーリング」では、カレンダベースのポリシーを作成し、ポリシーのスケジュールを定義し、ポリシーにスケーリング・アクションを割り当てることによってカレンダベースのスケーリングを実行する方法を説明します。

- 「ポリシーベースのスケーリング」では、ポリシーベースのスケーリングの概要を示し、スマート・ルールを使用してポリシーベースのスケーリングを実行する例を概説します。

- 「データソース・インターセプタの構成」では、データソース・インターセプタを紹介し、スケーリング操作時にそれを使用して、ドメインからデータベースへ作成できる総接続数の制限を決定して容量を超えないようにする方法を説明します。

- 「スクリプト・インターセプタの構成」では、スクリプト・インターセプタを紹介し、それを使用して、スケール・アップおよびスケール・ダウン操作時にWebLogic Serverを他のシステムと統合する方法を説明します。

関連ドキュメント

- WebLogic Serverプロセス内で実行する一連のサービスの定義および実装を行い、標準的なサーバー・ライフサイクルに関与する監視および診断フレームワークである、WebLogic診断フレームワーク(WLDF)の説明は、Oracle WebLogic Server診断フレームワークの構成と使用のWLDFアーキテクチャの概要を参照してください。

- 動的クラスタを作成して構成する方法については、Oracle WebLogic Serverクラスタの管理の動的クラスタを参照してください。

- 詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプで、次の関連タスクのトピックを参照してください。

- 動的クラスタの作成

- 動的クラスタの拡張度の構成

- 動的クラスタの要求時スケーリングの実行

- ポリシーおよびアクションの構成

2 概要

この章では、WebLogic Serverでの拡張度を導入し、その概要を示します。拡張度により、動的クラスタの自動スケーリングと関連リソースの再プロビジョニングが可能になります。この章ではまた、拡張度フレームワーク、スマート・ルールおよびポリシーとアクションなど、このガイドで使用する関連用語も導入します。

この章の内容は次のとおりです。

- 拡張度とは

- 関連する用語

- スクリプトおよびデータソース・インターセプタの導入

拡張度とは

拡張度により、次のいずれかに基づいて動的クラスタのエラスティック・スケーリングを構成することが可能になります。

- アクティブな動的クラスタからの、実行中の動的サーバー・インスタンスの手動による追加または削除。これは実行時スケーリングと呼ばれます。要求時スケーリングは、Enterprise ManagerのFusion Middlewareコンポーネント、WebLogic Server管理コンソールまたはWebLogic Scripting Tool(WLST)を使用して実行できます。

- 動的クラスタをスケール・アップまたはダウンするべき条件や、スケーリング操作自体を定義するアクションを設定するポリシーの確立。スケーリング・ポリシーで定義された条件が発生すると、対応するスケーリング・アクションが自動的に起動されます。

拡張度フレームワークは、WebLogic診断フレームワーク(WLDF)のポリシーおよびアクション・システムを活用します。WLDFのポリシーおよびアクション・コンポーネントを使用して、動的クラスタを自動的にスケール・アップまたはスケール・ダウンするポリシー式を作成することができます。これらのポリシーは、1つ以上のリソース(メモリー、アイドル状態のスレッドおよびCPUなど)を監視します。構成されたしきい値に達すると、スケーリング・アクションが起動されます。WLDFと診断ポリシーおよびアクションの詳細は、Oracle WebLogic Server診断フレームワークの構成と使用のポリシーとアクションの構成を参照してください。

拡張度のポリシーは、次の種類のデータに基盤を置くことができます。

- 時間経過に伴う傾向または履歴データ(たとえば特定の間隔における平均値の変化)。たとえば、ポリシーは、特定のしきい値より上である平均JVMヒープ使用量に基盤を置くことができます。

- 1つのサーバー・インスタンスだけでなく、クラスタ内のすべてのサーバー・インスタンスに関連するランタイム・メトリック。

- 同一視される複数のサービスからのデータ。たとえば、ポリシーは、ロード・バランサによって報告されるレスポンス・タイム・メトリックや、メッセージ・キューからのメッセージ・バックログ・メトリックに基盤を置くことができます。

- カレンダ・ベースのスケジュール。スケーリング・ポリシーは、特定のカレンダ時間(たとえば時刻または曜日)を指定して、いつアクションを起動するかを定義できます。

- ログ・ルールまたはイベント・データ・ルール。

拡張度は、ドメイン、サーバーおよびクラスタの各スコープで利用できます。パーティション・スコープからは利用できません。

関連する用語

次の表に、このガイド『Oracle WebLogic Server動的クラスタの拡張度の構成』で使用されている拡張度関連の用語の定義をまとめます。

用語

説明

拡張度フレームワーク

既存のWLDFポリシーおよびアクション・システム上に作成され、管理者が複合的なルールを構成してスケーリングに関するクラスタ内のリソース使用量を監視し、特に動的クラスタに関連するスケーリングまたは管理アクションを実行できるようにするコンポーネント。

ポリシー

動的クラスタをスケール・アップまたはダウンする条件を設定します。スケーリング・ポリシーで定義された条件が発生すると、対応するスケーリング・アクションが自動的に起動されます。

アクション

スケーリング操作自体を定義します。

動的クラスタ

1つの共有サーバー・テンプレートに基づいた生成済(動的)サーバー・インスタンスを1つ以上備えたクラスタ。

要求時スケーリング

アクティブな動的クラスタから実行中の動的サーバー・インスタンスを手動で追加または削除することによるスケーリング。

カレンダベースのスケーリング

スケーリング・アクションが実行される特定の日時を指定する、カレンダベースのスケジュールに基づくスケーリングです。

ポリシーベースのスケーリング

ポリシーおよび関連付けられたアクションに基づくスケーリング。ポリシーでスケーリング操作が発生する条件を設定し、その条件が満たされると、構成済のスケーリング・アクションが実行されます。

スマート・ルール

一連の設定可能パラメータがあり、それらのパラメータの値を指定するだけで複合ポリシー式を作成できるようになる事前パッケージ済のポリシー式。

スクリプトおよびデータソース・インターセプタの導入

インターセプタは、スケーリング操作時の、他のWebLogic Serverサブシステムおよび他のコンポーネントとの調整を支援するのに使用されることがあります。『Oracle WebLogic Server動的クラスタの拡張度の構成』では、スクリプト・インターセプタおよびデータソース・インターセプタの2つのインターセプタを紹介します。

スクリプト・インターセプタを使用した、スケーリング操作時の他のシステムとの調整の詳細は、「スクリプト・インターセプタの構成」を参照してください。

データソース・インターセプタを使用した、スケール・アップ操作前のデータベース接続の確認の詳細は、「データソース・インターセプタの構成」を参照してください。

3 拡張度を構成するための要件

この章では、マシンのプロビジョニングや動的クラスタの作成と構成など、WebLogic Serverに拡張度を構成するための要件をリストして、説明します。

この章の内容は次のとおりです。

- 動的クラスタの構成

- ポリシーとアクションの構成

- マシンのプロビジョニング

動的クラスタの構成

拡張度は、動的クラスタの場合のみ使用できます。エラスティック・スケーリングを構成する前に、動的クラスタを作成および構成する必要があります。動的クラスタの作成および構成の詳細は、Oracle WebLogic Serverクラスタの管理の動的クラスタの作成および構成を参照してください。

表3-1では、動的クラスタに拡張度を構成するために使用するDynamicServersMBean属性について説明しています。

表3-1 動的クラスタで拡張度を構成するための属性

属性

説明

DynamicClusterCooloffPeriodSeconds

スケーリング操作時に使用される、秒単位のクールオフ期間。スケーリング操作の実行後、スケーリング操作に対する後続のリクエストは、このクールオフ期間の間、無視されます。デフォルト値は900、最小値は0です。

DynamicClusterShutdownTimeoutSeconds

タイムアウト周期(単位は秒)、動的サーバーのインスタンスを正常に停止する間に使用します。動的サーバーのインスタンスが指定されたタイムアウト期間の経過前に停止しなかった場合、強制的に停止されます。デフォルト値は、0です。

DynamicClusterSize

作成できる動的サーバー・インスタンスの数。この属性の最小値は0で、最大値は800です。

IgnoreSessionsDuringShutDown

動的サーバー・インスタンスを停止する際、スケール・ダウン操作中に、拡張度フレームワークが処理中のHTTPリクエストを無視するかどうかを指定します。

MaxDynamicClusterSize

スケーリング操作で使用できる動的サーバー・インスタンスの最大数。MaxDynamicClusterSizeのデフォルト値は8です。最小値は0、最大値は800です。

スケール・アップ操作でMaxDynamicClusterSizeで設定された制限を超えようとすると、操作は失敗しませんが、WebLogic Serverはこの制限に達するまで、実行中の動的サーバー・インスタンスを追加するのみです。

MinDynamicClusterSize

拡張度フレームワークがスケーリング操作時に動的クラスタで維持しようとする実行中の動的サーバー・インスタンスの最小数。デフォルト値は、1です。最小値は0、最大値は800です。

スケール・ダウン操作時に、MinDynamicClusterSizeで設定された制限より低くスケール・ダウンすることはできない点に注意してください。WebLogic Serverでは、この制限までのみスケール・ダウンできます。

WaitForAllSessionsDuringShutdown

スケーリング操作の際、動的サーバー・インスタンスの停止中に、処理中のすべてのHTTPセッション(永続および非永続)を拡張度フレームワークが待機するかどうかを指定します。

これらの属性の設定や動的クラスタでの拡張度の構成には、WebLogic Server管理コンソール、Enterprise Manager (EM)のFusion Middleware ControlコンポーネントまたはWebLogic Scripting Tool (WLST)を使用できます。WebLogic Server管理コンソールの使用の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの動的クラスタの拡張度の構成を参照してください。Fusion Middleware Controlの使用の詳細は、Fusion Middleware ControlによるOracle WebLogic Serverの管理のクラスタの構成を参照してください。

例3-1に、WLSTを使用して、既存の動的クラスタで拡張度に関する動的クラスタ属性を定義する方法を示します。

例3-2に、動的クラスタを作成し、拡張度を構成する方法を示します。この動的クラスタは、「ポリシーベースのスケーリング例」の、ポリシーベースのスケーリングのデモで使用します。

例3-1 動的クラスタの拡張度の構成

startEdit()
cmo.setDynamicClusterSize(4)
cmo.setMaxDynamicClusterSize(8)
cmo.setMinDynamicClusterSize(2)
cmo.setDynamicClusterCooloffPeriodSeconds(120)
save()
activate()

例3-2 動的クラスタの作成と構成

edit()
startEdit()

dynCluster=cmo.createCluster(DynamicCluster)

dynServers=dynCluster.getDynamicServers()
dynServers.setServerTemplate(dynamicServerTemplate)
dynServers.setMinDynamicClusterSize(2)
dynServers.setMaxDynamicClusterSize(8)
dynServers.setDynamicClusterSize(4)
dynServers.setDynamicClusterCooloffPeriodSeconds(120)
dynServers.setCalculatedListenPorts(true)
dynServers.setCalculatedMachineNames(true)
#
# Dynamic server names will be dynamic-server-1, dynamic-server-2, ...,
# dynamic-server-10.
#
dynServers.setServerNamePrefix(dynamic-server-)

save()
activate()

ポリシーとアクションの構成

ポリシー・ベースのスケーリングでは、ポリシーは、スケーリング操作が発生する条件を設定します。これらの条件が満たされると、エラスティック・アクションがスケーリング操作を実行します。ポリシー・ベースのスケーリングを構成するには、ポリシーを作成、有効化し、エラスティック・アクション(スケール・アップまたはスケール・ダウン)を作成、有効化し、そのエラスティック・アクションをポリシーに割り当てる必要があります。WLDFのポリシーおよびアクション・コンポーネントについては、Oracle WebLogic Server診断フレームワークの構成と使用のポリシーとアクションの構成を参照してください。

注意:

動的クラスタの自動拡張度を構成するには、スケーリング・ポリシーとそれに対応するエラスティック・アクションを定義したドメイン・スコープの診断システム・モジュールを作成し、その診断モジュールのターゲットを管理サーバーに設定する必要があります。

WebLogic Server管理コンソールを使用してポリシーおよびアクションを作成、構成するには、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのポリシーとアクションの構成を参照してください。Fusion Middleware Controlを使用するには、Fusion Middleware ControlによるOracle WebLogic Serverの管理のポリシーおよびアクションの作成と構成を参照してください。

マシンのプロビジョニング

ポリシー・ベースのエラスティック・スケーリングを構成するには、必要な最大スケール・アップ容量に合せてマシンを適切にプロビジョニングする必要があります。

4 要求時スケーリング

この章では、実行中の動的サーバー・インスタンスを手動で追加または削除することによって、WebLogic Server で動的クラスタを必要に応じてスケール・アップまたはスケール・ダウンできるようにする、実行時スケーリングについて説明します。

この章の内容は次のとおりです。

- 要求時スケーリングとは

- WebLogic Server管理コンソールを使用した要求時スケーリング

- Fusion Middleware Controlを使用した実行時スケーリング

- WLSTを使用した実行時スケーリング

要求時スケーリングとは

要求時スケーリングでは、必要に応じて、アクティブな動的クラスタから実行中の動的サーバー・インスタンスを手動で追加または削除できます。たとえば、動的クラスタ・メンバーの平均的なユーザー・リクエスト・バックログが上昇傾向で、処理容量増大の必要を示している場合、実行中の動的サーバー・インスタンスを動的クラスタに追加できます。ユーザー・リクエストのバックログが大幅に減少したら、アイドル状態の動的サーバー・インスタンスを停止できます。

実行時スケーリングを実行するには、動的クラスタを構成しておく必要があります。詳細は、『Oracle WebLogic Serverのクラスタの管理』の動的クラスタに関する項を参照してください。

WebLogic Server管理コンソール、Fusion Middleware ControlまたはWLSTを使用して、要求時スケーリングを実行できます(次の各項を参照)。

- WebLogic Server管理コンソールを使用した要求時スケーリング

- Fusion Middleware Controlを使用した実行時スケーリング

- WLSTを使用した実行時スケーリング

注意:

動的クラスタの実行時スケーリングを実行する前に、スケーリング操作がシステムの他の部分に対して逆効果にならないことを確認します。たとえば、スケール・アップの前に、JDBC接続プール・サイズとWork Managerパラメータを調整し、データベース容量の超過を回避することが必要になる場合があります。スケール・ダウン前には、動的サーバー・インスタンスが停止する前に、処理中の作業が完了することが可能であることを確認します。

WebLogic Server管理コンソールを使用した要求時スケーリング

WebLogic Server管理コンソールを使用して要求時スケーリングを実行する手順:

1. 左側のナビゲーション・ペインで、「環境」→「クラスタ」を選択します。

2. 「クラスタ」表で、スケール・アップまたはスケール・ダウンする動的クラスタの名前を選択します。

3. 「制御」→「スケーリング」を選択します。

4. 「実行中のサーバーの必要な数」フィールドに、動的クラスタに必要な実行中の動的サーバー・インスタンスの数を入力します。

5. 「OK」をクリックします。

詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの動的クラスタの要求時スケーリングの実行を参照してください。

Fusion Middleware Controlを使用した実行時スケーリング

Fusion Middleware Controlを使用して実行時スケーリングを実行する手順:

1. 「WebLogicドメイン」ドロップダウン・メニューから「環境」を選択し、「クラスタ」を選択します。

2. 「クラスタ」表で、スケール・アップまたはスケール・ダウンする動的クラスタの行を選択します。

3. 「スケール・アップ/ダウン」ボタンをクリックします。

4. 「スケール・アップ/ダウン」ページで、現在の動的クラスタ設定を確認します。「必要なサーバー数」フィールドで、矢印を使用して、この動的クラスタで実行する動的サーバー・インスタンスの数を設定します。「スケール・アップ/ダウン」をクリックして、この設定をアクティブ化します。スケール・アップまたはスケール・ダウン操作が成功したことを通知する確認メッセージが表示されます。

Fusion Middleware Controlを使用したWebLogic Serverの管理の詳細は、『Fusion Middleware ControlによるOracle WebLogic Serverの管理』の「管理」を参照してください。

WLSTを使用した実行時スケーリング

WLSTを使用して動的クラスタを手動でスケーリングする手順:

- 動的クラスタで実行中の動的クラスタの数を増やすには、scaleUpコマンドを使用します。scaleUpコマンドを使用し、また、updateConfiguration引数を有効化すると、WLSTは指定された動的サーバー数によって動的クラスタの最大サイズを増やし、そのサーバー・インスタンスを起動します。

- 動的クラスタの最大サイズを減らすには、scaleDownコマンドを使用します。scaleDownコマンドを使用し、また、updateConfiguration引数を有効化すると、WLSTは指定された数の実行中の動的サーバーを停止して、動的クラスタから削除します。

これらのコマンドの詳細は、WebLogic Server WLSTコマンド・リファレンスのscaleUpおよびscaleDownを参照してください。

動的クラスタの拡張および縮小の詳細は、Oracle WebLogic Serverクラスタの管理の動的クラスタの拡張および縮小を参照してください。

例4-1は、WLSTを使用して、DynamicClusterという名前の動的クラスタを、実行中の動的サーバー・インスタンス2つでスケール・アップし、続いて、実行中の動的サーバー・インスタンス1つのみスケール・ダウンする方法を示しています。

例4-1 WLSTを使用した要求時スケーリング

wls:/offline> connect('weblogic','weblogic','t3://localhost:8001')
Connecting to weblogic server instance running at t3://localhost:8001 as username weblogic...

Successfully connected to Admin Server 'AdminServer' that belongs to domain 'mydomain'.

wls:/mydomain/serverConfig/> scaleUp("DynamicCluster", 2, true ,true)
Remote ScaleUp started successfully after 38 seconds. Waiting for 2 servers to reach the running state.  The timeout is 600 seconds.

All servers are now running.
wls:/mydomain/serverConfig/> scaleDown("DynamicCluster", 1, true ,true)
Remote ScaleDown started successfully after 0 seconds.
The servers were stopped successfully.

5 エラスティック・アクション

この章では、WebLogic Serverにおける拡張度を実現する2つのエラスティック・アクション、スケール・アップおよびスケール・ダウンを導入し、説明します

この章の内容は次のとおりです。

- エラスティック・アクションの導入

- スケール・アップ・アクションの構成

- スケール・ダウン・アクションの構成

- エラスティック・アクションを作成および構成するためのロードマップ

エラスティック・アクションの導入

スケール・アップおよびスケール・ダウン・アクションは、スケーリング操作時に、動的クラスタで、実行中の動的サーバー・インスタンスを追加または削除するために使用されます。

エラスティック・アクションは、ポリシーに関連付けることができます。ポリシーの条件が満たされると、エラスティック・アクションが起動され、スケーリング操作が始まります。このタイプのスケーリングは、ポリシー・ベースのスケーリングと呼ばれます。ポリシーベースのスケーリングの詳細は、「ポリシーベースのスケーリング」を参照してください。

1つのポリシーには、1つのエラスティック・アクションのみ割り当てることができます。ただし、非スケーリング・アクションは1つのポリシーにいくつでも割り当てることができ、エラスティック・アクションは非スケーリング・アクションと組み合せて使用できます。

注意:

動的クラスタの自動拡張度を構成するには、スケーリング・ポリシーとそれに対応するエラスティック・アクションを定義したドメイン・スコープの診断システム・モジュールを作成し、その診断モジュールのターゲットを管理サーバーに設定する必要があります。

WLDFのポリシーおよびアクション・コンポーネントの詳細は、Oracle WebLogic Server診断フレームワークの構成と使用のポリシーとアクションの構成を参照してください。

スケール・アップ・アクションの構成

関連付けられたポリシーが起動されると、スケール・アップ・アクションが、指定された動的クラスタに、実行中の動的サーバー・インスタンスを追加します。

例5-1は、実行中の1つの動的サーバー・インスタンスにより動的クラスタをスケール・アップするスケール・アップ・アクションを示しています。

例5-2は、例5-1に示したスケール・アップ・アクションを、WLSTを使用して作成、構成する方法を示しています。このスケール・アップ・アクションは、「ポリシーベースのスケーリング例」で、ポリシーベースのスケーリングのデモの一部として使用します。

例5-1 スケール・アップ・アクションのサンプル構成(DIAG_MODULE.xml内)

<wldf-resource>
<name>ClusterManager</name>
<watch-notification>
<!-- One or more policy configurations -->
<scale-up-action>
<name>scaleUp</name>
<cluster-name>DynamicCluster</cluster-name>
<scaling-size>1</scaling-size>
</scale-up-action>
<!-- Other action configurations -->
</watch-notification>
</wldf-resource>

例5-2 スケール・アップ・アクションの構成

startEdit()
scaleUp=wn.createScaleUpAction('scaleUp')
scaleUp.setScalingSize(1)
scaleUp.setClusterName(DynamicCluster)
save()
activate()

スケール・ダウン・アクションの構成

関連付けられたポリシーが起動されると、スケール・ダウン・アクションが、指定された動的クラスタで実行中の動的サーバー・インスタンスを停止します。

例5-3は、1つの動的サーバー・インスタンスにより動的クラスタをスケール・ダウンするスケール・ダウン・アクションを示しています。

例5-4は、例5-3に示したスケール・ダウン・アクションを、作成および構成する方法を示しています。このスケール・ダウン・アクションは、「ポリシーベースのスケーリング例」で、ポリシーベースのスケーリングのデモの一部として使用します。

スケール・ダウン操作中にサーバー・インスタンスを停止すると、たとえばレプリケートされていないセッションがある場合、長い時間がかかることがあります。それらがタイムアウトするまで、サーバー・インスタンスは停止しません。

スケール・ダウン操作を完了するためにかかる時間を短縮するために、次のDynamicServersMBean属性が使用されます。

- DynamicClusterShutdownTimeoutSeconds

- IgnoreSessionsDuringShutdown

- WaitForAllSessionsDuringShutdown

タイムアウト期間を指定するか、サーバー停止時にセッションを無視することによって、停止時間を制限できます。ただし、残りのセッションが失われる場合があります。これらの属性の説明は、表3-1を参照してください。

例5-3 スケール・ダウン・アクションのサンプル構成(DIAG_MODULE.xml内)

<wldf-resource>
<name>ClusterManager</name>
<watch-notification>
<!-- One or more policy configurations -->
<scale-down-action>
<name>scaleDown</name>
<cluster-name>DynamicCluster</cluster-name>
<scaling-size>1</scaling-size>
</scale-down-action>
<!-- Other action configurations -->
</watch-notification>
</wldf-resource>

例5-4 スケール・ダウン・アクションの構成

startEdit()
scaleDown=wn.createScaleDownAction('scaleDown')
scaleDown.setScalingSize(1)
scaleDown.setClusterName(DynamicCluster)
save()
activate()

スケール・ダウン操作中にサーバー・インスタンスを停止すると、たとえばレプリケートされていないセッションがある場合、長時間かかることがあります。そのようなレプリケートされていないセッションがタイムアウトするまで、サーバー・インスタンスは停止しません。

スケール・ダウン操作の完了にかかる時間を短縮するために、次のDynamicServersMBean属性を構成できます。

- DynamicClusterShutdownTimeoutSeconds

- IgnoreSessionsDuringShutdown

- WaitForAllSessionsDuringShutdown

タイムアウト期間を指定するか、サーバー停止時にセッションを無視することによって、停止時間を短縮できます。ただし、残りのセッションが失われる場合があります。これらの属性の詳細は、動的クラスタの構成を参照してください。

エラスティック・アクションを作成および構成するためのロードマップ

WebLogic Server管理コンソールまたはFusion Middleware Controlを使用してスケール・アップおよびスケール・ダウン・アクションを作成、構成することもできます。詳細は、表5-1を参照してください。

表5-1 エラスティック・アクションのロードマップ

詳細の参照先

参照先

WebLogic Server管理コンソールでのアクションの作成

Oracle WebLogic Server管理コンソール・オンライン・ヘルプの診断システム・モジュールのポリシーに対するアクションの作成

WebLogic Server管理コンソールでのエラスティック・アクションの作成

Oracle WebLogic Server管理コンソール・オンライン・ヘルプのスケール・アップ・アクションの作成およびスケール・ダウン・アクションの作成

WebLogic Server管理コンソールでのエラスティック・アクションの構成

Oracle WebLogic Server管理コンソール・オンライン・ヘルプのスケール・アップ・アクションの構成およびスケール・ダウン・アクションの構成

Fusion Middleware Controlでのエラスティック・アクションの作成

Fusion Middleware ControlによるOracle WebLogic Serverの管理のスケール・アップまたはスケール・ダウン・アクションの作成

Fusion Middleware Controlでのエラスティック・アクションの構成

Fusion Middleware ControlによるOracle WebLogic Serverの管理のスケール・アップ・アクションの構成およびスケール・ダウン・アクションの構成

6 カレンダベースのスケーリング

この章では、WebLogic Server におけるカレンダベースのスケーリングについて説明し、カレンダ・スケジュールに基づいてクラスタをスケール・アップおよびスケール・ダウンする例を示します。

この章の内容は次のとおりです。

- カレンダベースのスケーリングの概要

- カレンダベースのスケーリングの構成

カレンダベースのスケーリングの概要

WLDFは、特定の時刻、一定期間経過後、または指定間隔で、カレンダ・スケジュールに応じて起動されるポリシーのアクションをサポートするようになりました。カレンダベースのスケーリングでは、定義されたスケジュールに基づいてスケーリング・アクションを実行します。

カレンダベースのルール・スケジュールは、式言語としてJava式言語(EL)を利用するHarvesterルールでのみサポートされます。次のポリシー・タイプで、カレンダベースのルール・スケジュールがサポートされています。

- カレンダベース

- スマート・ルールベース

- 収集対象メトリック

カレンダベースのスケーリングの構成

カレンダベースのスケーリングを構成するには、ポリシーを作成し、ポリシーのスケジュールを定義し、スケーリング・アクションを作成してそのポリシーに割り当てます。ポリシー・スケジュールは、次に基づいて実行するように設定できます。

- N秒ごと

- N分ごと

- N時間ごと

- 特定の曜日(の特定の時刻)

- 月内の特定の日(の特定の時刻)

ポリシー・スケジュールは、WLDFScheduleBeanに基づいています。表6-1に、ポリシー・スケジュールの設定に使用される属性を示します。

表6-1 WLDFScheduleBean属性

属性

デフォルト値

使用可能な値

dayOfMonth

* (毎日)

- last: 月の最終日を指定

- 1stから31st

- 1から31

- Sun、Mon、Tues、Weds、Thurs、Fri、Sat

- -x: xは月の最終日の何日前かを示す数(たとえば、-7は月の最終日の7日前)

daysOfWeek

* (毎日)

- 0から7 (0と7はどちらも日曜日を表す)

- Sun、Mon、Tues、Weds、Thurs、Fri、Sat

hour

* (毎時)

- 0から23

minute

*/5 (5分ごと)

- 0から59

month

* (毎月)

- 1から12

- Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec

second

0

- 0から59

timezone

n/a

- デフォルトは地域のVMタイムゾーン

year

* (毎年)

- 4桁の暦年。例: 2015

これらの属性は、次の構文を使用して、いくつかの方法で指定できます。この構文は、EJB ScheduleExpressionクラスによってサポートされます。この構文の詳細は、ScheduleExpressionのドキュメントを参照してください。

1. 単一の値。例:

second = "10"
month = "Oct"

2. 属性の可能値すべてを表すワイルドカード(*)を使用します。たとえば、すべての曜日を指定するには次のようにします。

dayOfWeek = "*"

3. 範囲。値の包含範囲に属性を制約します。範囲の両端はダッシュで区切って指定します。例:

second = "1-10"
dayOfWeek = "Mon-Fri"

4. 増分。最初の値と間隔に基づき、スラッシュ(/)を使用してこの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"と同等です。

注意:

属性の最大値に達すると、増分は停止します。つまり、最大許容値を上回りません。

5. リスト。カンマ区切りのリストを使用して、複数の許容される値または値の範囲に属性を制約します。各リスト項目は、値または範囲である必要があり、ワイルドカード、リストまたは増分であることはできません。例:

second = "10,20,30"
dayOfWeek = "Mon,Wed,Fri"
minute = "0-10,30,40"

WebLogic Server管理コンソール、Fusion Middleware ControlまたはWLSTを使用して、カレンダ・ベースのスケーリングを構成できます(次の各項を参照)。

- WebLogic Server管理コンソールを使用したカレンダベースのスケーリングの構成

- Fusion Middleware Controlを使用したカレンダベースのスケーリングの構成

- WLSTを使用したカレンダベースのスケーリングの構成

注意:

- ドメインでカレンダベースのスケーリングを構成する前に、必ず動的クラスタを作成し、「拡張度を構成するための要件」で説明されている前提条件となるタスクを完了しておいてください。

- ターゲットが管理サーバーに設定されているドメイン全体の診断システム・モジュールでは、カレンダベースのポリシーを構成する必要があります。

WebLogic Server管理コンソールを使用したカレンダベースのスケーリングの構成

WebLogic Server管理コンソールを使用してカレンダベースのスケーリングを構成する手順:

1. カレンダベースのルールをサポートするポリシーを作成して有効化します。Oracle WebLogic Server管理コンソール・オンライン・ヘルプの次のトピックを参照してください。

- 診断システム・モジュール用のカレンダ・ベース・ポリシーの作成

- 診断システム・モジュール用のスマート・ルール・ベース・ポリシーの作成

- 診断システム・モジュール用の収集対象メトリック・ポリシーの作成

注意:

WebLogic Server管理コンソールを使用してカレンダベースのポリシーを作成する際に、ポリシーのスケジュールを指定し、さらにスケーリング・アクションを作成してポリシーに割り当てることもできます。ポリシー自体の作成時にポリシーのスケジュールおよびスケーリング・アクションを指定しない場合、次の手順を使用して後で構成を完了できます。

2. ポリシーのスケジュールを設定または更新します。

a. 管理コンソールの左側のペインで「診断」を展開して、「診断モジュール」を選択します。

b. 構成するポリシーを含む診断モジュールを選択します。

c. 「構成」→「ポリシーとアクション」→「ポリシー」を選択して、構成するポリシーの名前をクリックします。

d. 「スケジュール」ページを選択して、ポリシーに対して希望するスケジュール設定を定義します。

e. 「保存」をクリックします。

3. スケーリング・アクションを作成、有効化します。Oracle WebLogic Server管理コンソール・オンライン・ヘルプの次のトピックを参照してください。

- スケール・アップ・アクションの作成

- スケール・ダウン・アクションの作成

4. ポリシーにスケーリング・アクションを割り当てます。

注意:

指定のポリシーには1つのスケーリング・アクションしか割り当てることができません。

a. 管理コンソールの左側のペインで「診断」を展開して、「診断モジュール」を選択します。

b. 構成するポリシーを含む診断システム・モジュールを選択します。

c. 「構成」→「ポリシーとアクション」→「ポリシー」を選択して、構成するポリシーの名前をクリックします。

d. 「アクション」ページを選択します。

e. 「スケーリング・アクション」セクションで、「アクションのスケール・アップ」と「アクションのスケール・ダウン」のいずれかを選択し、このポリシーに割り当てるスケール・アップまたはスケール・ダウン・アクションを選択します。あるいは、「新規スケール・アップ・アクション」または「新規スケール・ダウン・アクション」をクリックして、このポリシーの新規スケーリング・アクションを作成します。

f. 「保存」をクリックします。

Fusion Middleware Controlを使用したカレンダベースのスケーリングの構成

Fusion Middleware Controlを使用してカレンダベースのスケーリングを構成する手順:

1. カレンダベースのルールをサポートするポリシーを作成して有効化します。Fusion Middleware ControlによるOracle WebLogic Serverの管理の新しいポリシーの作成を参照してください。

注意:

Fusion Middleware Controlでのポリシーソールでの作成時に、ポリシーのスケジュールを指定し、ポリシーにスケーリング・アクションを作成して割り当てることができます。作成時にポリシーのスケジュールおよびスケーリング・アクションを指定しない場合、次の手順を使用して必要な構成を完了できます。

2. ポリシーのスケジュールを設定または更新します。

a. 「WebLogicドメイン」ドロップダウン・メニューから「診断」を選択し、「診断モジュール」を選択します。

b. 「診断モジュール」表で、編集するポリシーを含む診断システム・モジュールを選択します。

c. 「構成」→「ポリシーとアクション」→「ポリシー」を選択して、構成するポリシーの名前をクリックします。

d. 「スケジュール」ページを選択して、ポリシーに対して希望するスケジュール設定を定義します。

e. 「適用」をクリックします。

3. スケーリング・アクションを作成、有効化します。Fusion Middleware ControlによるOracle WebLogic Serverの管理のスケール・アップまたはスケール・ダウン・アクションの作成を参照してください。

4. ポリシーにスケーリング・アクションを割り当てます。

注意:

指定のポリシーには1つのスケーリング・アクションしか割り当てることができません。

a. 「WebLogicドメイン」ドロップダウン・メニューから「診断」を選択し、「診断モジュール」を選択します。

b. 「診断モジュール」表で、編集するポリシーを含む診断システム・モジュールを選択します。

c. 「構成」→「ポリシーとアクション」→「ポリシー」を選択して、構成するポリシーの名前をクリックします。

d. 「アクション」ページを選択します。

e. 「スケーリング・アクション」セクションで、「アクションのスケール・アップ」と「アクションのスケール・ダウン」のいずれかを選択し、リストから希望のスケーリング・アクションを選択します。オプションで、「スケール・アップ・アクションの作成」または「スケール・ダウン・アクションの作成」をクリックして、このポリシーの新規スケーリング・アクションを作成します。

f. 「適用」をクリックします。

WLSTを使用したカレンダベースのスケーリングの構成

次の例は、特定の日の特定の時刻に動的クラスタをスケーリングするカレンダ・ベースのポリシーを、WLSTを使用して作成および構成する方法を示しています。例6-1では、12月26日3:00 a.m.にスケール・アップ・アクションを実行するカレンダベースのポリシーを構成するコマンドを示します。例6-2では、1月15日午前0時にスケール・ダウン・アクションを実行するカレンダベースのポリシーを構成するコマンドを示します。

例6-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)

例6-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)

7 ポリシーベースのスケーリング

この章では、WebLogic Serverでのポリシーベースのスケーリングについて説明します。この章では、スマート・ルールを使用してクラスタの平均スループットを追跡するポリシーベースのスケーリングの例を示します。

この章の内容は次のとおりです。

- ポリシーベースのスケーリングとは

- スマート・ルールの導入

- ポリシーベースのスケーリング例

ポリシーベースのスケーリングとは

ポリシーベースのスケーリングは、ポリシーおよび関連付けられたアクションに基づき、WebLogic診断フレームワーク(WLDF)のポリシーおよびアクション・コンポーネントを活用します。ポリシーは、スケーリング操作が発生する条件を設定し、その条件が満たされると、スケーリング・アクションがスケーリング操作を実行します。WLDFのポリシーおよびアクション・コンポーネントの詳細は、Oracle WebLogic Server診断フレームワークの構成と使用のポリシーとアクションの構成を参照してください。

WLDFには2つのエラスティック・アクション、スケール・アップおよびスケール・ダウンが用意されており、スケーリング操作を実行するポリシーに割り当てることができます。スケール・アップおよびスケール・ダウン・アクションの詳細は、「エラスティック・アクション」を参照してください。1つのスケーリング・アクションのみ、指定のポリシーに割り当てることができます。

たとえば、例7-1は、起動するとスケール・アップ・アクションを実行するポリシーを作成、構成するWLSTコマンドを示しています。次の点に注意してください。

- スケール・アップ・アクションscaleUpが作成されます。このアクションは、動的クラスタDynamicClusterを、サーバー・インスタンス1つのみスケール・アップするように構成されます。

- highMarkという名前のポリシーが、10秒ごとに評価されるように構成されます。

- ポリシーが起動される、つまりtrueと評価されると、対応するスケール・アップ・アクションが実行されます。

同様に、例7-2は、起動するとスケール・ダウン・アクションを実行するポリシーの構成を示しています。次の点に注意してください。

- スケール・ダウン・アクションscaleDownが作成されます。このアクションは、動的クラスタDynamicClusterを、サーバー・インスタンス1つのみスケール・ダウンするように構成されます。

- LowMarkという名前のポリシーが、10秒ごとに評価されるように構成されます。

- ポリシーが起動される、つまりtrueと評価されると、対応するスケール・ダウン・アクションが実行されます。

例7-1 動的クラスタをスケール・アップするポリシーの作成

scaleUp=wn.lookupScaleUpAction('scaleUp')
if scaleUp == None:
print "Creating scale up action"
scaleUp=wn.createScaleUpAction('scaleUp')
scaleUp.setScalingSize(1)
scaleUp.setClusterName(DynamicCluster)
high=wn.createWatch('highMark')
high.setExpressionLanguage('EL')
high.getSchedule().setMinute('*')
high.getSchedule().setSecond('*/10')
high.getRuleType()
high.setAlarmType('AutomaticReset')
high.setAlarmResetPeriod(150000)
high.setRuleExpression("wls:ClusterHighThroughput('"+DynamicCluster+"', '10s', '30s', 250, 60)")
high.addNotification(scaleUp)
high.setEnabled(true)

例7-2 動的クラスタをスケール・ダウンするポリシーの作成

scaleDown=wn.lookupScaleDownAction('scaleDown')
if scaleDown == None:
print "Creating scale down action"
scaleDown=wn.createScaleDownAction('scaleDown')
scaleDown.setScalingSize(1)
scaleDown.setClusterName(DynamicCluster)
low=wn.createWatch('lowMark')
low.setExpressionLanguage('EL')
low.getSchedule().setMinute('*')
low.getSchedule().setSecond('*/10')
low.getRuleType()
low.setAlarmType('AutomaticReset')
low.setAlarmResetPeriod(60000)
low.setRuleExpression("wls:ClusterLowThroughput('"+DynamicCluster+"', '10s', '60s', 50, 75)")
low.addNotification(scaleDown)
low.setEnabled(true)

注意:

動的クラスタの自動拡張度を構成するには、スケーリング・ポリシーとそれに対応するエラスティック・アクションを定義したドメイン・スコープの診断システム・モジュールを作成し、その診断モジュールのターゲットを管理サーバーに設定する必要があります。

スマート・ルールの導入

スマート・ルールは、一連の設定可能パラメータを持ち、その設定可能パラメータの値を指定することで複合ポリシー式を作成できるようにする、事前パッケージ済のファンクションです。スマート・ルールは、単独で、または複合ポリシー式を作成するために他の述語とともに、ポリシー式内で述語として使用できます。スマート・ルールのポリシー式は、Java Expression Language (EL)を使用して指定されます。詳細は、『Oracle WebLogic Server診断フレームワークの構成と使用』のスマート・ルールベースのポリシーの構成に関する項を参照してください。

ポリシーベースのスケーリングでは、スマート・ルールが使用できます。「ポリシーベースのスケーリング例」では、スマート・ルールのwls:ClusterHighThroughput()およびwls:ClusterLowThroughput()をルール式で使用するポリシーの使用方法を説明します。これら2つのスマート・ルールは、例7-1および例7-2でも示しています。

- 例7-1は、wls:ClusterHighThroughput()スマート・ルールを示しています。このスマート・ルールは、各管理対象サーバーのThreadPoolRuntimeMBean.Throughput属性の平均値によって示される、クラスタにおける平均スループットが増大しているかどうかを測定します。
例に示されているように、このスマート・ルールは、動的クラスタDynamicCluster内の少なくとも60パーセントのサーバーにおいて、10秒間隔で収集した過去30秒の平均Throughput値が250以上の場合に起動されます(つまりtrueと評価されます)。このスマート・ルールが起動されると、スケール・アップ・アクションscaleUpが実行され、クラスタでサーバー・インスタンスが起動されます。

- 例7-2は、wls:ClusterLowThroughput()スマート・ルールを示しています。このスマート・ルールは、各管理対象サーバーのThreadPoolRuntimeMBean.Throughput属性の平均値によって示される、クラスタにおける平均スループットが減少しているかどうかを測定します。
例に示されているように、このスマート・ルールは、動的クラスタDynamicCluster内の少なくとも75パーセントのサーバーにおいて、10秒間隔で収集した過去60秒の平均Throughput値が50未満の場合に起動されます(つまりtrueと評価されます)。このスマート・ルールが起動されると、スケール・ダウン・アクションscaleDownが実行され、クラスタでサーバー・インスタンスが停止されます。

WebLogic Server管理コンソールおよびFusion Middleware Controlを使用したスマート・ルールベースのポリシーの作成および構成の詳細は、次の項を参照してください。

- Oracle WebLogic Server管理コンソール・オンライン・ヘルプの診断システム・モジュールに対するスマート・ルール・ベースのポリシーの作成

- Fusion Middleware ControlによるOracle WebLogic Serverの管理のポリシーおよびアクションの作成と構成

WebLogic Serverで使用できるスマート・ルールの詳細は、Oracle WebLogic Server診断フレームワークの構成と使用のスマート・ルールのリファレンスを参照してください。

ポリシーベースのスケーリング例

このポリシーベースのスケーリングの例は、wls:HighThroughput()およびwls:LowThroughput()スマート・ルールを使用して、高負荷時に動的クラスタを実行中のサーバー・インスタンス4つにスケール・アップし、要求が減少したら、動的クラスタを実行中のサーバー・インスタンス2つにスケール・ダウンします。

注意:

この例では、WebLogic Serverおよび同じ場所に配置されたOracle Traffic Director 12cをWindows上で使用します。

この例を実行するには、次のタスクを使用します。

- 前提条件

- 環境の設定

- ドメイン・テンプレートの解凍

- 管理サーバーとノード・マネージャの起動

- Oracle Traffic Directorインスタンスの起動

- 動的サーバーの構成とアクティビティの表示

- JMeterを使用したデモの実行

- 監視ダッシュボードを使用したスケーリング操作の監視

- 拡張度デモの再実行と停止

前提条件

正常にこの例を実行するには、先に環境を準備して、この例で使用する必要なファイルをダウンロードします。

この項では、次のタスクを取り上げます。

- 必要なソフトウェアのインストール

- 必要なファイルのダウンロードと解凍

必要なソフトウェアのインストール

この例を実行するには、次のソフトウェアをダウンロードしてインストールします。

- Oracle WebLogic Server: 手順および詳細は、『Oracle WebLogic ServerおよびCoherenceのインストールと構成』の「Oracle WebLogic ServerとCoherenceのソフトウェアのインストール」を参照してください。

注意:

この例のためにWebLogic Serverをインストールして使用するには、有効なJDK 8がある必要があります。詳細は、Oracle WebLogic Server 12.2.1.2.0の新機能のJDK 8の動作要件を参照してください。

- Visual Studio用のMicrosoft Visual C++再頒布可能パッケージ - ドメインを解凍し、Oracle Traffic Directorを起動するには、その前にVisual C++がインストールされている必要があります。ダウンロードは、https://www.microsoft.com/en-us/download/confirmation.aspx?id=40784にあります。

- Oracle Traffic Director (OTD) - Oracle Traffic Directorのダウンロードは、http://www.oracle.com/technetwork/middleware/otd/downloads/index.htmlから可能です。
この例は、WebLogic Serverを介して管理される、同じ場所に配置されたOracle Traffic Directorを使用します。WebLogic Serverをインストールしたのと同じORACLE_HOMEディレクトリに、Oracle Traffic Directorをインストールします。インストール時に、「インストール・タイプ」画面で同じ場所に配置されたOTDを選択します。

Oracle Traffic Directorの詳細は、Oracle Traffic Directorの管理のOracle Traffic Directorスタート・ガイドを参照してください。

- Apache JMeter - Apache JMeterは、http://jmeter.apache.org/download_jmeter.cgiから、説明を表示してダウンロードおよびインストールできます。

必要なファイルのダウンロードと解凍

拡張度デモのJARファイルは、Oracle Technology Networkの次の場所にあるWebLogic Serverサンプル・コード・サイトでダウンロードできます。

http://www.oracle.com/technetwork/indexes/samplecode/weblogic-sample-522121.html

このデモJARファイルは、次のURLからも入手できます。

https://blogs.oracle.com/WebLogicServer/resource/MCicoFiles/otd_wls_elasticity_demo.zip

この例で使用する拡張度JARから、次のファイルを解凍します。

注意:

同じディレクトリに、次のファイルをすべて保存します。この例では、このディレクトリをDEMO_HOMEと呼びます。

- collocated_wls_otd_elasticity_domain.jar - この例で使用するドメイン・テンプレート。このドメイン・テンプレートは、必要な動的クラスタ、Oracle Traffic Directorインスタンスおよびポリシーとアクションを作成し、動的クラスタにweb.warアプリケーションをデプロイするなどして、ドメインを設定します。

- unpack-elasticity-domainスクリプト - このスクリプトは、unpackコマンドを実行してcollocated_wls_otd_elasitcity_domain.jarファイルを解凍し、この例で使用するドメインelasticity_domainを作成します。
このスクリプトのWindowsバージョンの名前は、unpack-elasticity-domain.cmdです。Unixバージョンは、unpack-elasticity-domain.shです。

- Elasticity5MinuteDemo.jmx - この例で使用するJMeterテスト・プラン。

- Elasticity1HourDemo.jmx - オプションの、より長いJMeterテスト・プラン。

環境の設定

WebLogic ServerおよびOracle Traffic Directorを同じORACLE_HOMEディレクトリにインストールしたら、setWLSEnvスクリプト・コマンドを実行して、この例に環境変数を設定します。

1. コマンド・ウィンドウを開きます。

注意:

Windowsシステム上でこのデモを実行する場合、管理者権限が必要になる場合があります。その場合は、次のとおりにコマンド・ウィンドウを開きます。

a. 「起動」をクリックします。

b. コマンド・プロンプトを右クリックして「管理者として実行」を選択します。
「スタート」メニューに「コマンド プロンプト」がない場合、「検索」フィールドに「コマンド」と入力し、「コマンド プロンプト」を右クリックします。

c. 求められたら、管理者の資格証明を入力します。

2. コマンド・ウィンドウで、ORACLE_HOME/wlserver/server/binディレクトリに移動します。

3. setWLSEnvスクリプトを実行します。例:
Windows:

ORACLE_HOME\wlserver\server\bin> setWLSEnv.cmd

Unix:

prompt> sh setWLSEnv.sh

ドメイン・テンプレートの解凍

ドメイン・テンプレートcollocated_wls_otd_elasticity_domain.jarを解凍すると、この例のドメインが、次のように設定されます。

- elasticity_domainドメインとディレクトリを作成します。

- 動的クラスタDynamicClusterと4つの動的サーバーDynamicCluster-1、DynamicCluster-2、DynamicCluster-3およびDynamicCluster-4を作成し、構成します。

- ラウンドロビン・ロード・バランシングおよび動的検出のために構成された新しいサーバー・プールorigin-server-pool-1などの、Oracle Traffic Directorインスタンスelasticity-otdを作成し、構成します。

- スマート・ルールベースのポリシーhighMarkとlowMark、およびエラスティック・アクションscaleDownとscaleUpを作成して構成します。

ドメイン・テンプレートを解凍する手順:

1. デモJARファイルを解凍したディレクトリに移動します。たとえば、Windowsの場合は次のようにします。

ORACLE_HOME\wlserver\server\bin> cd DEMO_HOME

2. unpack-elasticity-domainスクリプトを実行します。次に例を示します。

Windows:

DEMO_HOME> unpack-elasticity-domain.cmd

Unix:

DEMO_HOME> sh unpack-elasticity-domain.sh

unpackコマンドの使用の詳細は、PackおよびUnpackコマンドによるテンプレートとドメインの作成のunpackコマンドを参照してください。

管理サーバーとノード・マネージャの起動

ドメイン・テンプレートを解凍したら、次のようにstart-serversスクリプトを実行することによって、管理サーバーおよびノード・マネージャを起動します。

Windows:

DEMO_HOME> start-servers.cmd

Unix:

DEMO_HOME> sh start-servers.sh

start-serversスクリプトも、Oracle Traffic Directorインスタンスを起動しようとします。ただし、初めてこのスクリプトを実行する場合は、次のエラー・メッセージが表示される可能性があります。

Error starting otd_elasticity-otd_localhost, likely already running or not yet configured

Oracle Traffic Directorインスタンスの起動で説明しているように、このメッセージは、Oracle Traffic Directorインスタンスがまだ構成されない場合に生成されます。

注意:

このデモのためのWebLogic Server管理コンソールおよびFusion Middleware Controlは、ポート20001にあります。これらのコンソールに関する情報は、「Oracle Traffic Directorインスタンスの起動」および「動的サーバーの構成とアクティビティの表示」を参照してください。

管理サーバーの起動の詳細は、Oracle WebLogic Serverサーバーの起動と停止の管理のサーバーの起動と停止を参照してください。

ノード・マネージャの起動の詳細は、Oracle WebLogic Serverノード・マネージャの管理のノード・マネージャの起動と停止を参照してください。

Oracle Traffic Directorインスタンスの起動

このデモを始めて実行する場合は、create-otdスクリプトを実行する必要があります。その後は、管理サーバーとノード・マネージャの起動で説明しているように、サーバー・インスタンスを起動するとOracle Traffic Directorが起動されます。

create-otdスクリプトを実行するには、管理サーバーとノード・マネージャを起動したコマンド・ウィンドウで、次のコマンドを入力します。

Windows:

DEMO_HOME> create-otd.cmd

Unix:

DEMO_HOME> sh create-otd.sh

このスクリプトでは次のことを行います。

- ポート20009に、新しいOracle Traffic Directorインスタンスelasticity-otdを作成します。

- 新しいサーバー・プールorigin-server-pool-1を作成します。

- ラウンドロビン・ロード・バランシングおよび動的検出のためのサーバー・プールを構成します。

Oracle Traffic Directorインスタンスの起動の詳細は、Oracle Traffic Directorの管理のOracle Traffic Directorインスタンスの起動、停止および再起動を参照してください。

Fusion Middleware Controlを使用してOracle Traffic Directorインスタンスを表示する手順:

1. ブラウザのアドレス・バーに次のURLを入力して、Fusion Middleware Controlを起動します。

localhost:200001/em

2. unpack-elasticity-domainスクリプトで提供された管理者の資格証明の入力によるログイン。

3. 「WebLogicドメイン」メニューから、「管理」→「OTD構成」を選択します。

4. 「Oracle Traffic Director構成」表で、elasticity-otdを選択します。

Fusion Middleware Controlコンソールに表示されるメインのOracle Traffic Directory監視ページには、サーバー・アクティビティに関する統計が表示されます。

ブラウザにURLhttp://localhost:20009/web/HelloServletを入力することで、Oracle Traffic Directorインスタンスをテストすることもできます。ページを数回リフレッシュして、ロード・バランシングが機能していることを確認します。ページ上の番号表示が変わるはずです。

WLSTを使用してインスタンスの状態を確認し、確実に実行中であるようにするには、次のコマンドを入力します。

state("elasticity-otd")

動的サーバーの構成とアクティビティの表示

start-serversスクリプトを実行すると、管理サーバーとノード・マネージャの起動で説明されているように、次のWebLogic Serverインスタンスが起動します。

- 管理サーバー

- DynamicClusterという名前が付いた、動的クラスタにある次の2つのサーバー・インスタンス:

- DynamicCluster-1

- DynamicCluster-2

WebLogic Server管理コンソールかFusion Middleware Controlを使用して、DynamicClusterの構成と、クラスタ内で実行中デモとして現在実行中のサーバー・インスタンスの数を表示できます。

たとえば、WebLogic Server管理コンソールにDynamicClusterを表示するには、次のようにします。

1. ブラウザのアドレス・バーに次のURLを入力して、WebLogic Server管理コンソールを起動します。

localhost:20001/console

2. unpack-elasticity-domainスクリプトで提供された管理者の資格証明の入力によるログイン。

3. コンソールのホーム・ページで、「サーバー」をクリックします。

「サーバーのサマリー」ページに、現在実行中および停止中のサーバーがリストされます。このページは、サーバー・インスタンスの状態を表示するデモの実行として参照できます。

管理対象サーバーの起動の詳細は、Oracle WebLogic Serverサーバーの起動と停止の管理のサーバーの起動と停止を参照してください。

JMeterを使用したデモの実行

JMeterからテスト・プランを実行する手順:

1. コマンド・プロンプトを開いて、インストールされているJMeterのbinディレクトリに移動します。たとえば、C:\JMeter\apache-jmeter-2.13\binです。

2. 次のコマンドを入力して、JMeterをGUIモードで起動します。

jmeter.bat

3. JMeterコンソールで、「ファイル」→「開く」を選択して、Elasticity5MinuteDemo.jmxを選択します。

4. 「オプション」メニューから、「ログ・ビューア」が選択されていることを確認します。

5. 左のナビゲーション・ペインで、活用度Pingサーブレット・ドライバが選択されていることを確認します(図7-1参照)。

図7-1 JMeterテスト・ナビゲーション・ペイン

6. 「Run」→「Start」を選択します。

監視ダッシュボードを使用したスケーリング操作の監視

JMeterでテスト・プランを起動したら、WebLogic Server管理コンソールの管理ダッシュボードを使用して、JMeterテストにより生成されるサーバー・アクティビティを表示できます。実行中のサーバー・インスタンス数が負荷に応じて4までランプアップすることを確認できます。シナリオが完了すると、追加のインスタンスは、最小実行サーバー・インスタンス数の2つに達するまでスケール・ダウンされます。このシナリオ全体は、5分間続きます。

モニタリング・ダッシュボードにアクセスする手順:

1. 「動的サーバーの構成とアクティビティの表示」に説明されているように、まだ実行されていない場合、WebLogic Server管理コンソールを起動します。

2. 「チャートとグラフ」の下で、「監視ダッシュボード」をクリックします。

3. 監視ダッシュボードで、起動ボタンをクリックします(図7-2参照)。

図7-2 監視ダッシュボードの起動ボタン

4. JMeterが、シミュレーションされた動的クラスタでのクライアント呼出し量をランプアップすると、スケーリング・アクションを実行するスケーリング・ポリシーが起動されます。

新しいサーバー・インスタンスが起動される瞬間の、現在実行中のサーバー・インスタンスのスループットに注目してください。図7-3に、出力例を示します。取得するグラフは、マシンのパフォーマンス特性に応じて異なる場合があります。

図7-3 動的サーバーのスケーリング・アクティビティ

図7-3で、次に注目してください。

- 上部の4つのグラフに、管理対象サーバー・インスタンスDynamicCluster-1、DynamicCluster-2、DynamicCluster-3およびDynamicCluster-4に関するスループットが表示されています。

- 上2つのグラフに表示されているサーバー・インスタンスDynamicCluster-1およびDynamicCluster-2は、スループットのスパイクが2:42:00頃に始まっています。

- DynamicCluster-3のグラフは、サーバー・インスタンスDynamicCluster-1およびDynamicCluster-2でスループットのスパイクが発生したときにこの第3のサーバーが起動されたことを示しています。

- 下部のグラフは、クラスタ内のアクティブな管理対象サーバーの数(ClusterRuntimeMBeanインスタンスのAliveServerCount属性の値)を示しています。このグラフは、第3および第4のサーバー・インスタンスがいつ頃に起動されたかを示しています。

- 第3のサーバー・インスタンスDynamicCluster-3は、2:42:00と2:43:30の間に起動されました。

- 第4のサーバー・インスタンスDynamicCluster-4は、最初の3つのサーバー・インスタンスにおけるスループットの増加と軌を一にして、2:46:00の直後に起動されたことに注目してください。

- 新しいサーバー・インスタンスが起動されると、他のサーバー・インスタンス上のスループットが、それに対応して低下することに注目してください。

拡張度デモの再実行と停止

JMeter GUIから拡張度デモを再実行することも、次のようにstop-serversスクリプトを実行して、デモとすべてのサーバー・インスタンス(Oracle Traffic Directorなど)を停止することもできます。

Windows:

DEMO_HOME> stop-servers.cmd

Unix:

DEMO_HOME> sh stop-servers.sh

8 データソース・インターセプタの構成

この章では、データソース・インターセプタを構成して使用する方法を説明します。スケール・アップ操作の前に、データベース・インターセプタを自動的に起動して、WebLogicドメインからデータベースへ作成できるデータベース接続の数を決定できます。このインターセプタを使用して、その後のスケール・アップ操作の結果として使用可能な接続の容量を超えないようにすることができます。

この章の内容は次のとおりです。

- データソース・インターセプタの概要

- データソース・インターセプタの構成

データソース・インターセプタの概要

スケール・アップ操作中に、動的クラスタに新しい動的サーバー・インスタンスが起動されます。データソースのターゲットがこの動的クラスタに設定されている場合、新しいサーバー・インスタンスを起動すると、データベースへの接続が追加で作成される可能性があります。しかし、このような追加のデータベース接続の作成は、データベースの性能を超える可能性をはらんでいます。データソース・インターセプタは、新しいサーバー・インスタンスの追加によってデータベース容量を超えるかどうかを判断し、超える場合はスケール・アップ操作を続行させないための手段となります。

スケール・アップ操作の前に、データソース・インターセプタにより、追加の動的サーバー・インスタンスが動的クラスタに追加される場合に作成される可能性がある最大接続数が決まります。この数にまだ達していない場合、スケール・アップ操作の続行が許可されます。しかし、この数にすでに達しているまたは超えている場合、スケール・アップ操作の起動が中止されます。

注意:

インターセプタの実行が失敗した場合、関連するスケーリング操作もその後に構成されたインターセプタも起動されません。

データソース・インターセプタの構成

データソース・インターセプタは、DatasourceInterceptorMBeanを使用して構成されます。

データソース・インターセプタを構成する際に、許容される総接続数の観点からデータベース容量を指定します。データソース・インターセプタ構成に指定した接続URLにより、その接続先となるデータベースも識別されます。ある総容量の複数のデータベースがそれらのデータベースをホストする同じマシンにマップされる可能性があります。データソース・インターセプタ構成により、データベースURLのグループに対応する割当てが特定されますが、この割当てはそのドメインから作成できる最大総接続数です。

スケール・アップされる動的クラスタに対してデータソースがターゲット指定されている場合、データソース・インターセプタは次のことを行います。

- 追加の動的サーバー・インスタンスの動的クラスタへの追加時にデータベースのグループ上に作成できる接続の予測最大数を決定します。

- 構成された割当てを超えない場合、スケーリング操作の続行を許可します。

- 構成された割当てを超える場合、例外を生成し、スケーリング操作を続行させません。

例8-1は、config.xmlファイルにある、データソース・インターセプタのサンプル構成を示します。

例8-2 は、新しいデータソース・インターセプタを作成して構成するWLSTコマンドを示します。

例8-1 データソース・インターセプタのサンプル構成(CONFIG.XML内)

<interceptors>
<interceptor xsi:type="datasource-interceptorType">
<name>datasource-interceptor-1</name>
<priority>1073741823</priority>
<connection-urls-pattern>jdbc:derby://host:1527/(.*)
</connection-urls-pattern>
<connection-quota>20</connection-quota>
</interceptor>
</interceptors>

例8-2 WLSTを使用したデータソース・インターセプタの作成

startEdit()

cd('/Interceptors/wl_server')
cmo.createDatasourceInterceptor('datasource-interceptor-1')

cd('/Interceptors/wl_server/Interceptors/datasource-interceptor-1')
cmo.setPriority(1073741823)
cmo.setConnectionQuota(20)
cmo.setConnectionUrlsPattern(jdbc:derby://host:1527/(.*))

activate()
save()

データソース・インターセプタは、WebLogic Server管理コンソールを使用して作成および構成することもできます。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのデータソース・インターセプタの作成およびデータソース・インターセプタの構成を参照してください。

9 スクリプト・インターセプタの構成

スクリプト・インターセプタを構成し、動的クラスタで実行されるエラスティック・スケーリング操作と組み合せて使用することもできます。

この章の内容は次のとおりです。

- スクリプト・インターセプタの概要

- プリプロセッサ・スクリプトの構成

- ポストプロセッサ・スクリプトの構成

- スクリプト・インターセプタのエラー処理の構成

- 予約済の環境変数

スクリプト・インターセプタの概要

スケーリング操作時に、状況によってはWebLogic Server環境で様々なエンティティまたはシステムで機能を実行する必要があります。たとえば、動的クラスタで新しいサーバー・インスタンスを起動する前には、新しいVMをプロビジョニングしたり、マシンを構成したりするために、仮想マネージャとの調整が必要になる場合があります。スケーリング操作の前または直後に自動的にこのようなタスクを実行する手段として、スクリプト・インターセプタが用意されています。

スクリプト・インターセプタでは、主に2種類のスクリプトを実行できます。

- プリプロセッサ・スクリプトは、スケーリング操作の前にタスクを実行します。

- ポストプロセッサ・スクリプトは、スケーリング操作の直後にタスクを実行します。

プリプロセッサ・スクリプトまたはポストプロセッサ・スクリプトの実行時にエラーが発生した場合、スクリプト・インターセプタではエラー・ハンドラ・スクリプトも実行できます。また、複数のスクリプト・インターセプタ・インスタンスがスケーリング操作のインターセプタ・チェーンで使用できます。

注意:

プリプロセッサ・スクリプトの実行が失敗した場合、関連するスケーリング操作もその後に構成されたインターセプタも起動されません。ポストプロセッサ・スクリプトが失敗した場合、そのスクリプトの起動より前に実行されたスケーリング・アクションを元に戻すことも取り消すこともできません。

スクリプト・インターセプタは、ScriptInterceptorMBeanを使用して構成されます。例9-1は、サンプル・スクリプト・インターセプタ構成です。

例9-1 スクリプト・インターセプタの構成

EditServiceMBean editService = mbsFactory.getEditService();
ConfigurationManagerMBean configManager = editService.getConfigurationManager();
configManager.startEdit(5000, 5000);

DomainMBean domainMBean = editService.getDomainConfiguration();
InterceptorsMBean interceptors = (InterceptorsMBean) domainMBean.getInterceptors();
ScriptInterceptorMBean scriptInterceptor1 = interceptors.createScriptInterceptor("script-1");
scriptInterceptor1.setPriority(50);
PreProcessorScriptMBean pre1 = scriptInterceptor1.getPreProcessor();
pre1.setWorkingDirectory(domainMBean.getRootDirectory());
pre1.setPathToScript("/bin/sh");
pre1.setArguments(new String[] {domainMBean.getRootDirectory() + "/scripts/interceptors/echo-arg-interceptor.sh", "first"});
Properties envAsProps = new Properties();
envAsProps.put("env-key-1", "env-1-value");
envAsProps.put("env-key-2", "env-2-value");
envAsProps.put("env-key-3", "env-3-value");
pre1.setEnvironment(envAsProps);

ScriptInterceptorMBean scriptInterceptor2 = interceptors.createScriptInterceptor("script-2");
scriptInterceptor2.setPriority(20);
PreProcessorScriptMBean pre2 = scriptInterceptor2.getPreProcessor();
pre2.setWorkingDirectory(domainMBean.getRootDirectory());
pre2.setPathToScript("/bin/sh");
pre2.setArguments(new String[] {domainMBean.getRootDirectory() + "/scripts/interceptors/echo-arg-interceptor.sh", "second"});

configManager.save();
configManager.activate(5000);

スクリプト・インターセプタは、WebLogic Server管理コンソールを使用して作成および構成することもできます。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのスクリプト・インターセプタの作成およびスクリプト・インターセプタの全般的な設定の構成を参照してください。

プリプロセッサ・スクリプトの構成

プリプロセッサ・スクリプトは、スクリプト・インターセプタによってスケーリング操作の前に実行されます。

プリプロセッサ・スクリプトの実行が失敗した場合、その後のプリプロセッサ・スクリプトもそれに対応するスケーリング操作も起動されません。

WebLogic Server管理コンソールを使用したスクリプト・インターセプタに対するプリプロセッサ・スクリプトの構成の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのスクリプト・インターセプタのプリプロセッサ・スクリプト設定の構成を参照してください。

ポストプロセッサ・スクリプトの構成

ポスト・プロセッサ・スクリプトは、スクリプト・インターセプタによって、スケーリング操作の後に実行されます。

ポストプロセッサ・スクリプトの実行が失敗した場合、その前に実行されたスケーリング操作を取り消すことはできません。

WebLogic Server管理コンソールを使用したスクリプト・インターセプタに対するポストプロセッサ・スクリプトの構成の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのスクリプト・インターセプタのポストプロセッサ・スクリプト設定の構成を参照してください。

スクリプト・インターセプタのエラー処理の構成

スクリプト・インターセプタに対してプリプロセッサ・スクリプトまたはポストプロセッサ・スクリプトを構成する際、メイン・スクリプトの実行中にエラーが発生した場合に使用するエラー・ハンドラ・スクリプトを指定できます。エラー・ハンドラ・スクリプトは、コマンド・スクリプトと同じ引数および環境プロパティを使用して実行されます。

予約済の環境変数

スクリプト・インターセプタは、計算パラメータと動的パラメータの両方を環境変数としてスクリプトに渡すことができます。さらに、WLDFには、スクリプトで使用できる一連の予約済の環境変数が組み込まれています。このような予約済の環境変数とその説明を次の表にまとめます。この表の1つ目の変数WLS_SCRIPT_THIS_STEP_FAILEDを除いて、これらの変数はそれぞれ、プリプロセッサ・スクリプト、ポストプロセッサ・スクリプトおよびエラー・ハンドラ・スクリプトに渡すことができます。

環境変数

説明

WLS_SCRIPT_THIS_STEP_FAILED

この変数は、エラー・ハンドラ・スクリプトにのみ渡されます。値'false'は、どこか後続ステップが失敗したことを示します。

- 値trueは、現行ステップが失敗したことを示します。

- 値falseは、後続ステップが失敗したことを示します。

WLS_SCRIPT_OUTPUT_FILE

スクリプトによって作成される出力プロパティ・ファイルへのパスを表します。ファイルの内容が読み取られて後続スクリプトに渡されます。

WLS_SCRIPT_TEMP_DIR

スクリプトによって一時ファイルが作成される一時ディレクトリへのパスを表します。

WLS_SCRIPT_DYNAMIC_CLUSTER_NAME

スケール・アップまたはスケール・ダウン対象の動的クラスタの名前を表します。

WLS_SCRIPT_DYNAMIC_CLUSTER_OPERATION_NAME

現行スケーリング操作を表し、scaleUpまたはscaleDownのいずれかです。

WLS_SCRIPT_DYNAMIC_CLUSTER_MIN_SIZE

動的クラスタの最小サイズを表します。

WLS_SCRIPT_DYNAMIC_CLUSTER_MAX_SIZE

動的クラスタの最大サイズを表します。

WLS_SCRIPT_DYNAMIC_CLUSTER_SIZE

動的クラスタの現行サイズを表します。

WLS_SCRIPT_DYNAMIC_CLUSTER_CANDIDATE_MEMBER_NAMES

起動または停止する対象として選択できる候補サーバーの名前を表します。

WLS_SCRIPT_DYNAMIC_CLUSTER_REQUESTED_SCALING_SIZE

増やすまたは減らす対象としてリクエストされたクラスタ内で実行中のサーバーの数を表します。

WLS_SCRIPT_DYNAMIC_CLUSTER_ALLOWED_SCALING_SIZE

起動または停止されるサーバーの実際の数を表します(リクエストされたスケーリング・サイズよりも小さいこともあります)。

WLS_SCRIPT_DYNAMIC_CLUSTER_SCALED_MEMBER_NAMES

スケール・アップ操作またはスケール・ダウン操作時に起動または停止する対象として選択されたサーバーの名前を表します。