この章では、Sun GlassFishTMEnterprise Server v3 環境でライフサイクルモジュールを管理する手順について説明します。
ここでは、次のテーマを取り上げます。
本章で説明するタスクを管理コンソールから実行する手順については、管理コンソールのオンラインヘルプを参照してください。
「ライフサイクルモジュール」は初期化サービスとも呼ばれ、Enterprise Server 環境内で短期的または長期的な Java ベースタスクを実行する手段として利用できます。これらのモジュールはサーバーの起動時に自動的に開始され、サーバーのライフサイクルのさまざまな段階で通知を受け取ります。ライフサイクルモジュールの設定済みのプロパティーは、サーバーの初期化中にプロパティーとして渡されます。
ライフサイクルモジュールのすべてのクラスとインタフェースは、as-install /glassfish/modules/glassfish-api.jar ファイルに格納されています。
ライフサイクルモジュールは次の Enterprise Server イベントを待機し、イベントに応じてタスクを実行します。
「初期化」。サーバーは構成を読み取り、組み込みサブシステム (セキュリティーサービスやロギングサービス) を初期化して、コンテナを作成します。
「起動」。サーバーは配備されたアプリケーションを読み込んで初期化します。
「実行可能」。サーバーは要求の処理を開始します。
「シャットダウン」。サーバーはアプリケーションをシャットダウンして停止します。
「終了」。サーバーはコンテナ、組み込みサブシステム、およびサーバー実行環境を終了します。
これらのイベントは LifecycleEvent クラスで定義されます。ライフサイクルモジュールの作成については、『Sun GlassFish Enterprise Server v3 Application Development Guide』の第 13 章「Developing Lifecycle Listeners」を参照してください。
is-failure-fatal 設定が true に設定されている場合は (デフォルトでは false)、ライフサイクルモジュールで障害が発生したときにサーバーの初期化または起動が中止されます。ただし、シャットダウンまたは終了は実行されます。
ここでは、次のテーマを取り上げます。
ライフサイクルモジュールを作成するには、リモートモードで create-lifecycle-module サブコマンドを使用します。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
create-lifecycle-module(1) サブコマンドを使用して、新しいライフサイクルモジュールを作成します。
サブコマンドのオプションとプロパティーについては、このマニュアルページに記載されています。
サーバーを再起動して、変更を有効にします。
「ドメインの再起動」を参照してください。
この例では、customSetup というライフサイクルモジュールを作成します。
asadmin> create-lifecycle-module --classname "com.acme.CustomSetup" --classpath "/export/customSetup" --loadorder 1 --failurefatal=true --description "this is a sample customSetup" --property rmi="Server\=acme1\:7070":timeout=30 customSetup Command create-lifecycle-module executed successfully |
コマンド行に asadmin help create-lifecycle-module と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
既存のライフサイクルモジュールを一覧表示するには、リモートモードで list-lifecycle-modules サブコマンドを使用します。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
list-lifecycle-modules(1) サブコマンドを使用して、ライフサイクルモジュールを一覧表示します。
この例では、既存のライフサイクルモジュールを一覧表示します。
asadmin> list-lifecycle-modules WSTCPConnectorLCModule Command list-lifecycle-modules executed successfully |
コマンド行に asadmin help list-lifecycle-modules と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
set サブコマンドを使用して、既存のライフサイクルモジュールを更新します。
get(1) サブコマンドを使用して、ライフサイクルモジュールの更新可能なプロパティーを一覧表示します。
次に例を示します (シングルモード)。
asadmin get "*" | grep sampleLCM applications.application.sampleLCMmodule.availability-enabled=false applications.application.sampleLCMmodule.directory-deployed=false applications.application.sampleLCMmodule.enabled=true applications.application.sampleLCMmodule.name=sampleLCMmodule applications.application.sampleLCMmodule.object-type=user applications.application.sampleLCMmodule.property.class-name=example.lc.SampleModule applications.application.sampleLCMmodule.property.classpath=/build/lcm.jar applications.application.sampleLCMmodule.property.is-failure-fatal=false applications.application.sampleLCMmodule.property.isLifecycle=true |
set(1) サブコマンドを使用して、ライフサイクルモジュールを更新します。
サーバーを再起動して、変更を有効にします。
「ドメインの再起動」を参照してください。
この例では、classpath プロパティーを更新します。
sadmin> set applications.application.sampleLCMmodule. property.classpath=/build/lcm_new.jarapplications.application. sampleLCMmodule.property.classpath=/build/lcm_new.jarCommand set executed successfully. |
コマンド行に asadmin help set と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
ライフサイクルモジュールを削除するには、リモートモードで delete-lifecycle-module サブコマンドを使用します。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
list-lifecycle-modules(1) サブコマンドを使用して、現在のライフサイクルモジュールを一覧表示します。
delete-lifecycle-module(1) サブコマンドを使用して、ライフサイクルモジュールを削除します。
この例では、customSetup というライフサイクルモジュールを削除します。
asadmin> delete-lifecycle-module customSetup Command delete-lifecycle-module executed successfully |
コマンド行に asadmin help delete-lifecycle-module と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。