8 スクリプト・インターセプタの構成
スクリプト・インターセプタの概要
スクリプト・インターセプタでは、主に2種類のスクリプトを実行できます。
-
プリプロセッサ・スクリプトは、スケーリング操作の前にタスクを実行します。
-
ポストプロセッサ・スクリプトは、スケーリング操作の直後にタスクを実行します。
プリプロセッサ・スクリプトまたはポストプロセッサ・スクリプトの実行時にエラーが発生した場合、スクリプト・インターセプタではエラー・ハンドラ・スクリプトも実行できます。また、複数のスクリプト・インターセプタ・インスタンスがスケーリング操作のインターセプタ・チェーンで使用できます。
ノート:
プリプロセッサ・スクリプトの実行が失敗した場合、関連するスケーリング操作もその後に構成されたインターセプタも起動されません。ポストプロセッサ・スクリプトが失敗した場合、そのスクリプトの起動より前に実行されたスケーリング・アクションを元に戻すことも取り消すこともできません。
スクリプト・インターセプタは、ScriptInterceptorMBean
を使用して構成されます。例8-1は、サンプル・スクリプト・インターセプタ構成です。
例8-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管理コンソール・オンライン・ヘルプのスクリプト・インターセプタのポストプロセッサ・スクリプト設定の構成を参照してください。
スクリプト・インターセプタのエラー処理の構成
スクリプト・インターセプタに対してプリプロセッサ・スクリプトまたはポストプロセッサ・スクリプトを構成する際に、メイン・スクリプトの実行中にエラーが発生した場合に使用するエラー・ハンドラ・スクリプトを指定できます。
エラー・ハンドラ・スクリプトは、コマンド・スクリプトと同じ引数および環境プロパティを使用して実行されます。
予約済の環境変数
WLS_SCRIPT_THIS_STEP_FAILED
を除いて、これらの変数はそれぞれ、プリプロセッサ・スクリプト、ポストプロセッサ・スクリプトおよびエラー・ハンドラ・スクリプトに渡すことができます。
表8-1 予約済の環境変数
環境変数 | 説明 |
---|---|
|
この変数は、エラー・ハンドラ・スクリプトにのみ渡されます。値'false'は、どこか後続ステップが失敗したことを示します。
|
|
スクリプトによって作成される出力プロパティ・ファイルへのパスを表します。ファイルの内容が読み取られて後続スクリプトに渡されます。 |
|
スクリプトによって一時ファイルが作成される一時ディレクトリへのパスを表します。 |
|
スケール・アップまたはスケール・ダウン対象の動的クラスタの名前を表します。 |
|
現行スケーリング操作を表し、 |
|
動的クラスタの最小サイズを表します。 |
|
動的クラスタの最大サイズを表します。 |
|
動的クラスタの現行サイズを表します。 |
|
起動または停止する対象として選択できる候補サーバーの名前を表します。 |
|
増やすまたは減らす対象としてリクエストされたクラスタ内で実行中のサーバーの数を表します。 |
|
起動または停止されるサーバーの実際の数を表します(リクエストされたスケーリング・サイズよりも小さいこともあります)。 |
|
スケール・アップ操作またはスケール・ダウン操作時に起動または停止する対象として選択されたサーバーの名前を表します。 |