次の例は、プロパティを設定するためのさまざまな方法を示しています。この最初の例では、コマンド ラインによってプロパティを書き換えます。2 番目の例では、公開および既定プロパティ ファイルでプロパティを設定します。3 番目の例では、公開済み Bean のレベルでプロパティを設定変更します。4 番目の例では、コマンド ラインから Bean レベルのプロパティを設定変更します。
この例では、ejb.sessionTimeout
プロパティを書き換えます。この例では、JRUN_HOME/lib
の ejipt.properties
ファイルで ejb.sessionTimeout
が 900 (秒) に設定されていると想定します。この例では、EJB エンジンが起動したときにコマンド ラインで -Dejb.sessionTimeout=300
とパラメータを設定することによって、実行時にこの値を 300 に変更します。
> cd JRUN_HOME
> java -Dejb.sessionTimeout=300 -classpath lib/ejipt.jar allaire.ejipt.Ejipt
また、統合 J2EE サーバーの実行時に global.properties
のejb.javaargs
プロパティまたは local.properties
ファイルでコマンドライン引数を指定することによって、それらの引数を使用できます。
このコマンド ラインによって、サーバー プロパティ リストに ejb.sessionTimeout
プロパティとその値 300 が追加され、次の図に示すように ejipt.properties
ファイルから取得した値 900 を書き換えます。
公開済み Bean からEJBContext.getEnvironment().getProperty(“ejb.sessionTimeout”)
呼び出すと、プロパティ リスト チェーン内でこの値が最初に検出されるため、値 300 が返されます。
さらに、この例では container1
の ejb.sessionTimeout
を書き換え、default.properties
ファイルの値を 300 に設定します。また、deploy.properties
を使用してサーバー セッション タイムアウトを設定します。この例では、ejipt.properties
ファイルで ejb.sessionTimeout
が 900 (秒) に設定されていると想定します。
container1
の default.properties
に次のプロパティが設定されています。
ejb.sessionTimeout=1800
deploy.properties
ファイルには次のプロパティが設定されています。
ejb.sessionTimeout=300
次の図は、結果として作成されたプロパティ リストを示しています。
これにより、container1
内にあるすべての Bean の ejb.sessionTimeout
値は 1800 に設定され、それ以外のコンテナ内にある公開済み Bean の ejb.sessionTimeout
値は 300 に設定されます。
この例では、公開済み Bean のレベルでプロパティを書き換えます。ejipt.properties
ファイルでプロパティ ejb.isReentrant
が false
に設定されていると想定します
(注意 : この特定のプロパティでは、ステートフル セッション Bean とエンティティ Bean の既定の設定は false
です)。また、Looper
の名前を持つ公開済み Bean があり、その Looper が再入可能であると想定します。Looper
でこの動作を妨げないように EJB エンジンに指示するには、Looper
Bean の公開記述子内で ejb.isReentrant
を true
に設定する env-entry
を確立します。
次の図は、結果として作成されたプロパティ リストを示しています。
Looper
が公開されると、サーバーはそのプロパティ リストを作成します。プロパティ ejb.isReentrant=true
は Looper
のプロパティ リストに追加されます。これにより、EJBContext.getEnvironment().getProperty("ejb.isReenterant")
を呼び出したとき Looper
のすべてのインスタンスについて true
が返され、それ以外の Bean には false
が返されます。このメカニズムを使用して、プロパティ ファイルで定義されたか XML 記述子ファイルで定義されたかにかかわらず、プロパティを書き換えることができます。
この例では、スタンドアロン EJB エンジンから bean2
という名前の EJB のejb.sessionTimeout
を書き換えます。コマンド ラインから Bean のプロパティを書き換えるには、プロパティの前に Bean のホーム名を付けます。また、このステップでは Bean の公開記述子で設定された任意のプロパティを書き換えます。ejipt.properties
ファイルで ejb.sessionTimeout
が 900 (秒) に設定されており、bean2.properties
ファイルで次のように設定されていると想定します。
ejb.sessionTimeout=1800
スタンドアロン EJB エンジンの実行時のタイムアウト値を 300 に設定するには、スタンドアロン EJB エンジンが起動したときにコマンド ラインで-Dbean2Home.ejb.sessionTimeout=300
パラメータを設定します。この場合、bean2
はホーム名が bean2Home
で公開されると想定しています。
> cd JRUN_HOME
> java -Dbean2Home.ejb.sessionTimeout=300 -classpath lib/ejipt.jar allaire.ejipt.Ejipt
次の図は、結果として作成されたプロパティ リストを示しています。
bean2
を除くすべての Bean の ejb.sessionTimeout
値は 900 に設定され、bean2 の ejb.sessionTimeout
値は 300 に設定されます。