プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Server動的クラスタの拡張度の構成
12c (12.2.1.3.0)
E90326-03
目次へ移動
目次

前

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 Administration Consoleオンラインヘルプ』スクリプト・インターセプタの作成に関する項およびスクリプト・インターセプタの全般的な設定の構成に関する項を参照してください。

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

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

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

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