開始 Bean の使用

開始 Bean には、アプリケーション開始 Bean とモジュール開始 Bean の 2 つのタイプがあります。

このタスクについて

非推奨の機能 (Deprecated feature) 非推奨の機能 (Deprecated feature): 開始 singleton セッション Bean (EJB 3.1 仕様) 機能が導入されたことで、WebSphere Application Server 専有の開始 Bean 機能は非推奨となりました。depfeat

モジュール開始 Bean は、EJB JAR ファイルの開始時にロードされるセッション Bean です。モジュール開始 Bean は、EJB モジュールが正常に開始または停止するたびに、 Java™ Platform Enterprise Edition (Java EE) アプリケーションがビジネス・ロジックを自動的に実行できるようにします。 アプリケーション開始 Bean は、アプリケーションの開始時にロードされるセッション Bean です。アプリケーション開始 Bean は、 アプリケーションが正常に開始または停止するたびに、Java EE アプリケーションがビジネス・ロジックを自動的に実行できるようにします。

開始 Bean は、 非同期 Bean 機能とともに使用すると、特に有効です。例えば、開始 Bean で、Java Message Service (JMS) を使用して既知のトピックに関するハートビート・メッセージを定期的にパブリッシュするアラーム・オブジェクトを作成できます。 これにより、クライアントまたは他のサーバー・アプリケーションは、このアプリケーションが使用可能かどうかを 判断することができます。デフォルトの JMS プロバイダーを使用している場合は、 『アプリケーションにおけるメッセージング・エンジン開始待機の有効化』の項目を参照してください。

手順

  1. アプリケーション開始 Bean の場合、ホーム・インターフェース com.ibm.websphere.startupservice.AppStartUpHome を使用して、Bean をアプリケーション開始 Bean として指定します。モジュール開始 Bean の場合、ホーム・インターフェース com.ibm.websphere.startupservice.ModStartUpHome を使用して、Bean をモジュール開始 Bean として指定します。
  2. アプリケーション開始 Bean の場合、リモート・インターフェース com.ibm.websphere.startupservice.AppStartUp を使用して、この Bean の start() メソッドおよび stop() メソッドを定義します。モジュール開始 Bean の場合、リモート・インターフェース com.ibm.websphere.startupservice.ModStartUp を使用して、この Bean の start() メソッドおよび stop() メソッドを定義します。

    開始 Bean の start() メソッドは、モジュールまたはアプリケーションの開始時に呼び出されます。これには、モジュールまたはアプリケーションの開始時に実行されるビジネス・ロジックが含まれます。

    start() メソッドはブール値を戻します。 True は、start() メソッド内のビジネス・ロジックが正常に実行したことを示します。逆に、False は、start() メソッド内のビジネス・ロジックが完了できなかったことを示します。戻り値が False の場合は、アプリケーションの開始が異常終了したことをアプリケーション・サーバーにも示します。

    開始 Bean の stop() メソッドは、モジュールまたはアプリケーションが停止すると呼び出されます。これには、モジュールまたはアプリケーションの停止時に実行されるビジネス・ロジックが含まれています。stop() メソッドによってスローされた例外のみがログに記録されます。それ以外のアクションは取られません。

    start() および stop() メソッドでは、TX_MANDATORY トランザクション属性を使用しないようにする必要があります。 start() または stop() メソッドが呼び出された場合は、グローバル・トランザクションはスレッドには存在していません。その他の TX_* 属性は使用できます。 TX_MANDATORY が使用された場合は例外がログに記録され、アプリケーションの開始は打ち切られます。

    リモート・インターフェースの start() メソッドおよび stop() メソッドは、Run-As モードを使用します。 Run-As モードは、 セキュリティー・サービスで使用されるクレデンシャル情報を指定して、さまざまなリソースに対してプリンシパルが所有するアクセス権を 判別します。セキュリティーがオンになっている場合は、 呼び出されるすべてのメソッドに Run-As モードを定義する必要があります。 この設定値のない Bean の ID は未定義です。

    start() メソッドおよび stop() メソッドは完全な Application Server プログラミング・モデルを使用できるため、これらのメソッドが実行できるコードに対する制限はありません。

  3. オプションの 環境プロパティー整数 wasStartupPriority を使用して、 同じ Java Archive (JAR) ファイル内の複数の開始 Bean の開始順序を指定します。 この環境プロパティーが検出され、 その型が正しくない場合には、アプリケーション開始は打ち切られます。 優先順位の値が指定されていない場合は、 デフォルトの優先順位である 0 が使用されます。優先順位プロパティーを指定することをお勧めします。 優先順位が指定されている Bean は、 このプロパティーを使用してソートされます。 優先順位の数値が低い Bean が最初に実行されます。同じ優先順位を持つ複数の Bean の実行順序は未定義です。 すべての優先順位は正整数でなければなりません。 Bean は、開始優先順位とは逆の順序で停止されます。モジュール開始 Bean およびアプリケーション開始 Bean の優先順位の値は相互に排他的です。すべてのモジュールは、開始として宣言されたアプリケーションより先に開始されるため、アプリケーション内のモジュール開始 Bean の start() メソッドは、どのアプリケーション開始 Bean の start() メソッドよりも先に呼び出されます。同様に、 特定の Java Archive (JAR) ファイルに関する すべてのアプリケーション開始 Bean の stop() メソッドは、 その JAR に関するどのモジュール開始 Bean の stop() メソッドよりも先に呼び出されます。
    注: コマンドまたは管理コンソールのいずれかを介して wasStartupPriority 環境プロパティー 整数を設定することはできません。この環境プロパティー整数は、管理者ではなくアプリケーション開発者によって 設定される EJB 環境項目です。 次の例に示すように、ejb-jar.xml ファイルで整数値を設定します。
    <env-entry>
      <env-entry-name>wasStartupPriority</env-entry-name>
      <env-entry-type>java.lang.Integer</env-entry-type>
      <env-entry-value>3</env-entry-value>
    </env-entry>
    他の EJB 環境項目と同様に、 各 EJB ごとに別々に wasStartupPriority 値を設定します。
  4. モジュール開始 Bean では、EJB モジュールを開始する順序は、各モジュールに関連付けられている Starting weight 値により調整できます。
  5. WebSphere® Security から開始 Bean のメソッドを呼び出すことができるユーザーを制御するには、以下のようにします。
    1. EJB モジュールに対して行うのと同じように、Start() および Stop() メソッドのメソッド許可を定義します。(『EJB モジュールのメソッド許可の定義』を参照。)
    2. 開始 Bean のメソッドに関して定義されたセキュリティー・ロールにマップされたユーザーは、 ユーザー・レジストリー内のサーバー・ユーザー ID として定義されたユーザーと同じにする必要があります。

次のタスク

開始 Bean サービス設定を表示します。

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



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