カスタム・サービスの作成

アプリケーション・サーバーの 1 つ以上のカスタム・サービスを作成できます。 各カスタム・サービスでは、サーバーの始動とシャットダウンの際にロードおよび初期化されるクラスを定義しています。 これらのクラスのそれぞれに、com.ibm.websphere.runtime.CustomService インターフェースを 実装する必要があります。カスタム・サービスを作成後、管理コンソールを使用して、 アプリケーション・サーバーのカスタム・サービスを構成します。

このタスクについて

[z/OS]カスタム・サービスは、コントローラーではなくサーバントで実行します。 例えば、サーバーの存続期間に始動されるサーバントが複数あり、 これらのサーバントは、WLM の必要に応じて、サーバー (コントローラー) の稼働後しばらくしてから始動される場合があるため、 カスタム・サービスが各サーバントの始動中に実行します。

[z/OS]サーバーが始動およびシャットダウンしたときに実行される フック・ポイントを定義する必要がある場合は、 カスタム・サービス・クラスを作成し、次に管理コンソールを使用してカスタム・サービス・インスタンスを構成します。 アプリケーション・サーバーの始動時に、 カスタム・サービスの開始と初期化が行われます。

[AIX Solaris HP-UX Linux Windows][IBM i]サーバーまたはノード・エージェントが 始動およびシャットダウンするときに実行されるルーチンを定義するには、 カスタム・サービス・クラスを作成し、カスタム・サービス・インスタンスを構成します。 アプリケーション・サーバーまたはノード・エージェントの始動時に、 カスタム・サービスの開始と初期化が行われます。

以下に、製品カスタム・サービスの実装に適用される制約事項のリストを示します。これらの制約事項の大部分は、初期化メソッドにのみ 適用されます。
  • 初期化およびシャットダウン・メソッドは、ランタイムに制御を戻す必要があります。
  • すべてのカスタム・サービスの初期化メソッドが戻るまでは、サーバー・インスタンスに作業はディスパッチされません。
  • 初期化およびシャットダウン・メソッドは、サービスごと、およびサーバー・インスタンスを構成するオペレーティング・システム・プロセスごとに 1 度だけ呼び出されます。
  • 処理レベルの静的データの初期化 (処理を残さない) がサポートされます。
  • JDBC RMLT (リソース・マネージャー・ローカル・トランザクション) 操作のみサポートされます。メソッドが戻される前に、 すべての作業単位 (UOW) を完了する必要があります。
  • スレッドの作成はサポートされません。
  • ソケットおよび I/O (ファイル入出力を除く) の作成はサポートされません。
  • クライアント・コード、サーブレット、エンタープライズ Bean などの標準 Java™ Platform, Enterprise Edition (Java EE) コードの実行はサポートされません。
  • Java Transaction API (JTA) インターフェースは使用できません。
  • このフィーチャーは、Java EE サーバー・プロセスおよび分散汎用サーバー・プロセスでのみ使用可能です。
  • ランタイムがシャットダウンを呼び出そうとする際、プロセスの終了前にシャットダウンが呼び出される保証はありません。
  • リソースを要求する JNDI 操作はサポートされていません。

手順

  1. com.ibm.websphere.runtime.CustomService インターフェースを実装する、カスタム・サービス・クラスを開発します。
    com.ibm.websphere.runtime.CustomService インターフェースには、 初期化メソッドとシャットダウン・メソッドが組み込まれています。 アプリケーション・サーバーは、初期化メソッドを使用してカスタム・サービスにプロパティーを受け渡します。 これらのプロパティーには、以下が含まれます。
    • サービスの構成情報を含む外部ファイルの名前を指定するプロパティー。 この情報を検索するために、externalConfigURLKey プロパティーが使用できます。
    • サービス用の他のシステム管理構成データと一緒にサービス用に保管される、名前と値のペアを含むプロパティー。

    例外を作成する可能性があることを宣言する初期化メソッドとシャットダウン・メソッドの両方。 ただし、特定の例外サブクラスは定義しません。いずれかのメソッドにより例外が作成される場合、ランタイムはその例外をログに記録し、 カスタム・サービスを使用不可にし、サーバーの始動を継続します。

  2. カスタム・サービスを構成します。

    管理コンソールで、「サーバー」>「サーバー・タイプ」>「WebSphere Application Server」>server_name」とクリックして、次に、「サーバー・インフラストラクチャー」で、「カスタム・サービス」>「新規作成」をクリックします。 カスタム・サービス・インスタンスの設定ページで、 既存のアプリケーション・サーバーまたはノード・エージェントのカスタム・サービス構成を作成して、 実装するクラスの名前を指定します。 カスタム・サービス・クラスに構成ファイルが必要な場合は、 構成ファイルの完全修飾パス名を「externalConfigURL」フィールドに指定します。 このファイル名は、カスタム・サービス・クラスに渡されます。

    カスタム・サービスからネイティブ・ライブラリーを呼び出すには、 カスタム・サービスのクラスおよび JAR ファイルを見つけるのに使用されるパス名に加え、Classpath フィールドにパス名を提供します。 このプロシージャーによりパス名が拡張クラス・ローダーに追加されて、カスタム・サービスはネイティブ・ライブラリーを見つけ、正しくロードすることができます。

  3. アプリケーション・サーバーを停止してから再始動します。

    [AIX Solaris HP-UX Linux Windows][IBM i]アプリケーション・サーバー用カスタム・サービスを開発している場合、 アプリケーション・サーバーを停止してから再始動します。

    [AIX Solaris HP-UX Linux Windows][IBM i]ノード・エージェント用カスタム・サービスを開発している場合、ノード・エージェントの処理を停止してから再始動してください。 管理コンソールで「システム管理」>「ノード・エージェント」とクリックし、停止するノード・エージェントを選択して「停止」をクリックします。 ノード・エージェントを再始動するには、 再始動するノード・エージェント選択して「再始動」をクリックします。

    [z/OS]アプリケーション・サーバーを停止してから再始動します。

タスクの結果

各カスタム・サービスでは、サーバーの始動とシャットダウンの際にロードおよび初期化されるクラスを定義しています。

[AIX Solaris HP-UX Linux Windows][IBM i]サーバーまたはノード・エージェントの始動および停止時に、 カスタム・サービスのロードと初期化が行われます。

[z/OS]サーバーの始動および停止時に、 カスタム・サービスのロードと初期化が行われます。

既述のとおり、カスタム・サービス・クラスは com.ibm.websphere.runtime.CustomService インターフェースを実装する必要があります。 また、このクラスは initialize および shutdown メソッドを 実装する必要があります。 以下の例は、カスタム・サービスを実装する ServerInit クラスを宣言するコードを示しています。 このコードでは、カスタム・サービス・クラスが構成ファイルを必要とする ことを想定しています。 また、この例には、外部の構成ファイルにアクセスするコードも含まれています。 クラスが構成ファイルを必要としない場合は、 このコードの configProperties 部分を含める必要はありません。
public class ServerInit implements com.ibm.websphere.runtime.CustomService
{
/**
* The initialize method is called by the application server runtime when the
* server starts. The Properties object that the application server passes
* to this method must contain all of  the configuration information that this 
* service needs to initialize properly.
*
* @param configProperties java.util.Properties
*/
    static final java.lang.String externalConfigURLKey =
       "com.ibm.websphere.runtime.CustomService.externalConfigURLKey";
          
    static String ConfigFileName="";

    public void initialize(java.util.Properties configProperties) throws Exception
    {
        if (configProperties.getProperty(externalConfigURLKey) != null)
        {
           ConfigFileName = configProperties.getProperty(externalConfigURLKey);
        }

       // Implement rest of initialize method
    }
/**
* The shutdown method is called by the application server runtime when the
* server begins its shutdown processing.
*
    public void shutdown() throws Exception
    {
        // Implement shutdown method
    }

次のタスク

[AIX Solaris HP-UX Linux Windows][IBM i]アプリケーション・サーバーまたはノード・エージェントを調べて、 カスタム・サービスの初期化メソッドおよびシャットダウン・メソッドが意図したとおりに実行されたことを確認してください。

[z/OS]アプリケーション・サーバーを調べて、 カスタム・サービスの初期化メソッドおよびシャットダウン・メソッドが意図したとおりに実行されたことを確認してください。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=trun_customservice
ファイル名:trun_customservice.html