|
|
WebOTX Manual V10.2 (第4版) 目次を表示 |
ライフサイクルモジュールについて説明します。
ライフサイクルモジュールとは、WebOTX ASの起動・停止のライフサイクルの状態に合わせ実行されるJavaクラスまたはモジュールであり、ユーザが作成した任意のクラスまたはモジュールをライフサイクルモジュールとすることが可能です。
WebOTX ASではライフサイクルの状態管理のために以下の状態を定義しています。ライフサイクルモジュールはこの状態により管理され、WebOTX ASのライフサイクルに同期した処理を実行します。
| 状態 | 説明 |
|---|---|
| INIT | 初期化処理中であることを表します |
| STARTUP | 起動処理中であることを表します |
| READY | サービス開始処理中であることを表します |
| SHUTDOWN | 停止処理中であることを表します |
| TERMINATION | リソース開放処理中であることを表します |
ライフサイクルモジュールが複数登録されている場合は、各ライフサイクルモジュールは並列に処理されます。たとえば、WebOTX ASが初期化の状態であるとき、全てのライフサイクルモジュールの状態はINITであり、全てのライクサイクルモジュールのINITイベントによる処理が終了するまで、次の状態には移行しません。

ライフサイクルモジュールを登録する場合の流れについて説明します。
登録するコンポーネントとLifecycleListener実装クラスを作成します。登録に必要なファイルは以下のとおりです。
ライフサイクルモジュールをWebOTX ASに登録します。登録は統合運用管理ツールおよび運用管理コマンドで行なうことができます。
ライフサイクルモジュールの設定を変更します。この設定はライフサイクルモジュールの登録時にも行うことができます。登録後に設定の変更が必要な場合に行ってください。変更は統合運用管理ツールおよび運用管理コマンドで行なうことができます。
WebOTX ASへのライフサイクルモジュールの登録にはWebOTX ASとライフサイクルモジュールのインタフェースとして、LifecycleListenerインタフェースを実装したクラスを作成する必要があります。
LifecycleListenerインタフェースはPublicメソッドとしてhandleEventを持ちます。WebOTX ASはこのメソッドを呼び出し、LifecycleListener実装クラスに状態情報を保持したLifecycleEventクラスのオブジェクトを渡します。
LifecycleEventクラスは状態情報として以下のpublicかつstaticなフィールドを持ちます。
| フィールド名 | 説明 |
|---|---|
| INIT_EVENT | ライフサイクルモジュールの初期化処理中であることを表します |
| STARTUP_EVENT | ライフサイクルモジュールの起動処理中であることを表します |
| READY_EVENT | ライフサイクルモジュールのサービス開始処理中であることを表します |
| SHUTDOWN_EVENT | ライフサイクルモジュールの停止処理中であることを表します |
| TERMINATION_EVENT | ライフサイクルモジュールのリソース開放処理中であることを表します |
LifecycleListener実装クラスでは、この状態情報に応じた処理を実装する必要があります。
LifecycleListener実装クラスの実装方法については[ ライフサイクルモジュールの開発 ] を参照してください。
統合運用管理ツールよりライフサイクルモジュールの登録・登録削除および一覧を取得する方法について説明します。なお、ここでは以下の条件でライフサイクルモジュールの登録を行っています。
| LifecycleListener実装クラス名 | sample.SampleLifecycleModule |
|---|---|
| モジュールとLifecycleListener実装クラスを含むjarファイル名 | sample.jar |
| jarファイル配置位置 | Cドライブ直下 |
| ライフサイクルモジュールの登録名 | Sample |
| アプリケーショングループ名 | apg |
| プロセスグループ名 | pg |
以下の手順で登録します。なお、ここではライフサイクルモジュール名に加え、クラスパスと必須入力項目であるクラス名のみ指定しています。必要に応じて他の設定項目を入力して実行してください。

WebOTX AS Standard/Enterpriseにおいて、ライフサイクルモジュールをプロセスグループ上で動作させる場合は、追加で以下の作業も必要になります。
ドメインからライフサイクルモジュールを登録削除する手順を示します。WebOTX AS Standard/Enterpriseで、登録削除対象のライフサイクルモジュールをプロセスグループへも登録している場合は、先にプロセスグループからライフサイクルモジュールを登録削除する必要がある点に注意してください。

次に、プロセスグループからライフサイクルモジュールを登録削除する手順を示します。
まず、ドメインに登録されたライフサイクルモジュールの一覧を取得する手順を以下に示します。
次に、プロセスグループに登録されたライフサイクルモジュールの一覧を取得する手順を以下に示します。こちらはWebOTX AS Standard/Enterpriseでサポートしています。

運用管理コンソールよりライフサイクルモジュールの登録・登録削除および一覧を取得する方法について説明します。なお、ここでは以下の条件でライフサイクルモジュールの登録を行っています。
| LifecycleListener実装クラス名 | sample.SampleLifecycleModule |
|---|---|
| モジュールとLifecycleListener実装クラスを含むjarファイル名 | sample.jar |
| jarファイル配置位置 | Cドライブ直下 |
| ライフサイクルモジュールの登録名 | Sample |
| アプリケーショングループ名 | apg |
| プロセスグループ名 | pg |
以下の手順で登録します。なお、ここではライフサイクルモジュール名に加え、クラスパスと必須入力項目であるクラス名のみ指定しています。必要に応じて他の設定項目を入力して実行してください。

WebOTX AS Standard/Enterpriseにおいて、ライフサイクルモジュールをプロセスグループ上で動作させる場合は、追加で以下の作業も必要になります。
ドメインからライフサイクルモジュールを登録削除する手順を示します。WebOTX AS Standard/Enterpriseで、登録削除対象のライフサイクルモジュールをプロセスグループへも登録している場合は、先にプロセスグループからライフサイクルモジュールを登録削除する必要がある点に注意してください。

次に、プロセスグループからライフサイクルモジュールを登録削除する手順を示します。
まず、ドメインに登録されたライフサイクルモジュールの一覧を取得する手順を以下に示します。
次に、プロセスグループに登録されたライフサイクルモジュールの一覧を取得する手順を以下に示します。こちらはWebOTX AS Standard/Enterpriseでサポートしています。

運用管理コマンドよりライフサイクルモジュールコンポーネントの登録および登録削除する方法について説明します。なお、ここでは以下の条件でライフサイクルモジュールの登録を行っています。
| LifecycleListener実装クラス名 | sample.SampleLifecycleModule |
|---|---|
| モジュールとLifecycleListener実装クラスを含むjarファイル名 | sample.jar |
| jarファイル配置位置 | Cドライブ直下 |
| ライフサイクルモジュールの登録名 | Sample |
| アプリケーショングループ名 | apg |
| プロセスグループ名 | pg |
ライフサイクルモジュールをドメインに登録するには、登録するコンポーネントとライフサイクルモジュールの初期設定情報を指定して、create-lifecycle-moduleコマンドを実行します。なお、ここではコマンドのオプションとしてclasspathと必須オプションであるclassnameのみ指定しています。必要に応じて他のオプションを指定して実行してください。
otxadmin> create-lifecycle-module -classname sample.SampleLifecycleModule -classpath C:/Sample.jar Sample
WebOTX AS Standard/Enterpriseにおいて、ライフサイクルモジュールをプロセスグループに登録するには、登録するライフサイクルモジュール名、アプリケーショングループ名、プロセスグループ名を指定して、add-pg-lifecycle-moduleコマンドを実行します。
otxadmin> add-pg-lifecycle-module -apgroup apg pgroup pg Sample
ライフサイクルモジュールをドメインから登録削除するには、登録削除するライフサイクルモジュール名を指定して、delete-lifecycle-moduleコマンドを実行します。ただし、WebOTX AS Standard/Enterpriseをお使いで、登録削除対象のライフサイクルモジュールをプロセスグループへも登録している場合は、先にプロセスグループからの登録削除を行う必要があります。
otxadmin> delete-lifecycle-module Sample
WebOTX AS Standard/Enterpriseにおいて、ライフサイクルモジュールをプロセスグループから登録削除するには、登録削除するライフサイクルモジュール名、アプリケーショングループ名、プロセスグループ名を指定して、remove-pg-lifecycle-moduleを実行します。
otxadmin> remove-pg-lifecycle-module -apgroup apg -pgroup pg Sample
ドメインに登録されたライフサイクルモジュールの一覧を取得するには、list-lifecycle-modulesコマンドをオプション指定なしで実行します。
otxadmin> list-lifecycle-modules
WebOTX AS Standard/Enterpriseにおいて、プロセスグループに登録されたライフサイクルモジュールの一覧を取得するには、オプションで一覧を取得したいプロセスグループのアプリケーショングループ名、プロセスグループ名を指定し、list-lifecycle-modulesコマンドを実行します。
otxadmin> list-lifecycle-modules -apgroup apg -pgroup pg
ライフサイクルモジュールはJMX仕様に基づき、WebOTX AS内で管理対象オブジェクト(Managed Object: MO)として登録され、管理されます。
登録されたライフサイクルモジュールは統合運用管理ツールまたは運用管理コマンドからその設定を変更することが可能です。ただし設定の変更を反映させるには、そのライフサイクルモジュールの登録先(ドメイン又はプロセスグループ)を再起動する必要があります。
ライフサイクルモジュールの設定項目についての一覧を以下に示します。なお、MOの詳細については [ MBean定義 ] を参照してください。また、設定方法については [ 運用管理コマンドリファレンス ] を参照してください。
| 属性名 | 値 | 統合運用管理ツールでの表記 | Dotted Name | 説明 |
|---|---|---|---|---|
| name | 文字列 | ライフサイクルモジュール名 | server.applications.lifecycle-module.ライフサイクルモジュール名.name | ライフサイクルモジュール名です。ここで指定した名前でライフサイクルモジュールをドメインに登録します。ただし、文字列にスペースを混入させることはできません。 |
| class-name | 文字列 | ライフサイクルモジュールクラス名 | server.applications.lifecycle-module.ライフサイクルモジュール名.class-name | LifecycleListener実装クラスのクラス名を、パッケージ名を含めて指定します。 |
| classpath | 文字列 | クラスパス | server.applications.lifecycle-module.ライフサイクルモジュール名.classpath | ライフサイクルモジュールとして登録するコンポーネントのクラスパスです。クラスパスを複数指定する場合は各パスをWindows OSでは「;」、UNIX系OSでは「:」で区切ってください。また、クラスパスの通っているフォルダ/ディレクトリに格納する場合はクラスパスの指定は不要になります。(例. <INSTANCE_ROOT>/libなど) |
| load-order | 数値 | サービス実行順番 | server.applications.lifecycle-module.ライフサイクルモジュール名.load-order | サーバ起動時に、この起動順序番号に従って各モジュールが順次起動されます。既定ではドメインに登録された順序に従って起動されます。ライフサイクルモジュールの起動順序に依存関係がある場合はこの値を指定する必要があります。 |
| is-failure-fatal | true/false | サービス起動失敗時動作 | server.applications.lifecycle-module.ライフサイクルモジュール名.is-failure-fatal | 既定値falseを選択するとドメイン起動時にライフサイクルモジュールの起動処理に失敗した場合でもその起動処理を継続します。trueを選択すると、ライフサイクルモジュールの起動処理に失敗した場合にドメイン(またはプロセスグループ)を停止することができます。詳細は後述の「is-failure-fatalの設定効果について」をご覧ください。 |
| enabled | true/false | サービス起動設定 | server.applications.lifecycle-module.ライフサイクルモジュール名.enabled | ライフサイクルモジュールの有効の可否を決定します。 |
| description | 文字列 | 説明 | server.applications.lifecycle-module.ライフサイクルモジュール名.description | 登録したライフサイクルモジュールに関する説明書き欄です。 |
| property | 文字列 | (以下で解説) | server.applications.lifecycle-module.ライフサイクルモジュール名.property.プロパティ名 | ユーザにより定義可能なライフサイクルモジュールの任意のプロパティです。「プロパティ名=値」の形式で指定してください。運用管理コマンドから複数指定する場合はプロパティの組を「:」で繋げてください。 |
属性propertyはライフサイクルモジュールの「一般」タグ内には表示されません。統合運用管理ツールからpropertyを取得・設定するにはツール上のライフサイクルモジュールの右クリックから「プロパティ一覧の取得」または「プロパティの設定」を実行してください。

運用管理コンソールの場合、左側のツリービューより作成したライフサイクルモジュールを選択し、「操作」リストの下の「プロパティ一覧の取得」または「プロパティの設定」を選択してください。

なお、コマンドからpropertyを取得・設定するにはその他の設定項目同様にget・setコマンドを使用してください。
※is-failure-fatalの設定効果についてライフサイクルモジュールの設定項目is-failure-fatalをtrueに設定する場合は、同時に次の設定を行ってください。
・ドメインを停止する場合(ドメインに登録されたライフサイクルモジュールに設定が適用されます)
otxadmin> set server.internal-lifecycle-module.LifecycleModuleService.is-failure-fatal=true
・プロセスグループを停止する場合(プロセスグループに登録されたライフサイクルモジュールに設定が適用されます)
otxadmin> set サーバ名.internal-lifecycle-module.LifecycleModuleService.is-failure-fatal=true
また、登録されているライフサイクルモジュールが複数ある場合は、そのライフサイクルモジュールのいずれかの起動が失敗すると、その起動順序によっては他のライフサイクルモジュールの起動処理がスキップされることがあります。 この時、各ライフサイクルモジュールの初期化が正常に行われなくなることがあります。例えば、ライフサイクルモジュール間に依存関係があり、登録した全てのライフサイクルモジュールが正常に起動することが前提条件にある場合は、上記の設定を行うことを推奨します。
WebOTX ASでは複数プロセスグループ上でライフサイクルモジュールの機能を提供するため、各プロセスグループ上からはドメインに登録されたライフサイクルモジュールの情報を参照し、設定情報を取得しています。したがって、ドメインに登録された情報への参照の有効・無効を設定することで、プロセスグループごとにライフサイクルモジュールの有効・無効を設定することができます。
以下の図はドメイン上のライフサイクルモジュールの情報を各プロセスグループから参照する場合のイメージです。ただし、ここでは各プロセスグループを表すのにアプリケーショングループ名とプロセスグループ名を-(ハイフン)でつないだサーバ名で表しています。

参照の有効・無効設定を行うには、運用管理コマンドから以下の手順で変更します。
otxadmin> set サーバ名.application-ref.ライフサイクルモジュール名.enabled=true
または
otxadmin> set サーバ名.application-ref.ライフサイクルモジュール名.enabled=false