組み込み可能 EJB コンテナーの構成プロパティー
組み込み可能な Enterprise JavaBeans (EJB) コンテナーに、以下の構成プロパティーを使用します。
プロパティー | タイプ | デフォルト値 | 説明 |
---|---|---|---|
com.ibm.websphere.ejbcontainer.cacheSize | java.lang.Long | 2 053 | EJB キャッシュのバケット数。 |
com.ibm.websphere.ejbcontainer.cacheSweepInterval | java.lang.Long | 3 000 | エントリーを除去するかどうかを決定するために EJB キャッシュをスイープする際のスイープ間の時間間隔。 |
com.ibm.websphere.ejbcontainer.inactivePoolCleanupInterval | java.lang.Long | 30 000 | クリーンアップ・スレッドが、非アクティブ・プールをクリーンにする前に待機する時間 (単位はミリ秒)。 |
com.ibm.websphere.ejbcontainer.passivationDir | java.lang.String | <TempDir> | 非活性化されるステートフル Bean があるディレクトリー。ユーザーには、指定されたディレクトリーへの読み取りおよび書き込みアクセス権限が必要です。 |
com.ibm.websphere.embeddable.configFileName | java.lang.String | <CurrentWorkingDirectory> /embeddable.properties | 組み込み可能 EJB コンテナーのプロパティーが含まれたプロパティー・ファイルのファイル名。
このファイルが処理されると、各プロパティーは、あたかもプログラムで渡されたかのように、新規に作成された EJB コンテナーに渡されます。
構成ファイル内にあるすべてのプロパティーは、プログラムで渡されたプロパティーによってオーバーライドされます。
重要: このプロパティーは、コマンド行でシステム・プロパティーとして指定することもできます。
|
次の表には、データ・ソースの構成プロパティーが記載されています。 各プロパティーは個々のデータ・ソースに固有のもので、これらのプロパティーによって複数のデータ・ソースを異なる設定で構成できます。 <data_source_id> を、構成するデータ・ソースを識別する固有の語に置き換えます。一部のプロパティーは、データ・ソースごとに「必須」とリストされています。
プロパティー | タイプ | 説明 |
---|---|---|
DataSource.<data_source_id>.name | java.lang.String | 必須組み込み可能コンテナーのグローバル名前空間にあるこのデータ・ソースをコンテナーでバインドするために使用する Java™ Naming and Directory Interface (JNDI) のストリング。 このストリングは、アプリケーション内で使用される JNDI 検索ストリングに一致している必要があります。 |
DataSource<data_source_id>.className | java.lang.String | 必須データ・ソース・クラスの Java クラス名。テストの場合、app_server_root/derby/lib/derby.jar が Java 仮想マシンのクラスパスにあるときは、Apache Derby を使用できます。 Apache Derby でサポートされているデータ・ソース・クラスは、org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource と org.apache.derby.jdbc.EmbeddedXADataSource です。 |
DataSource.<data_source_id>.connectionSharing | java.lang.String | 接続を共有するためのポリシー。有効な値は、MatchOriginalRequest (デフォルト)、MatchCurrentState または None です。 MatchOriginalRequest は、接続要求が既存の接続の初めに要求された設定に一致している場合、この接続要求がその接続を共有できることを意味しています。 MatchCurrentState は、接続要求が既存の接続の現在の設定に一致している場合、この接続要求がその接続を共有できることを意味しています。 None は、複数の接続要求で同じ接続を共有しないことを意味しています。 |
DataSource.<data_source_id>.databaseName | java.lang.String | このデータ・ソースで接続するデータベースの名前。 |
DataSource.<data_source_id>.isolationLevel | java.lang.Integer | このデータ・ソースからの接続のトランザクション分離レベル。
未指定の場合、デフォルト値が JDBC ドライバーまたはデータベースによって提供されます。
有効な値は、1: Read Uncommitted (読み取りアンコミット)、2: Read Committed (読み取りコミット)、4: Repeatable Read (反復可能読み取り)、または 8: Serializable (シリアライズ可能) です。 これらの値は、java.sql.Connection 内の定数に由来し、変更される場合があります。 |
DataSource.<data_source_id>.maxIdleTime | java.lang.Integer | 接続プールで未使用の接続を閉じることができるまでに待機する秒数。 |
DataSource.<data_source_id>.maxPoolSize | java.lang.Integer | このデータ・ソースに対して作成される接続の最大数。 この同時接続最大数まで使用中になると、対象のデータ・ソースからの接続を取得するための、その後の要求は、1 つ以上の使用中の接続がプールに返されるまでブロックされます。 |
DataSource.<data_source_id>.maxStatements | java.lang.Integer | 接続プールによってキャッシュされるステートメントの最大数。 プール内の接続ごとにキャッシュできるステートメント数を求めるために、この値は maxPoolSize の値で除算されます。 値 0 を指定すると、ステートメント・キャッシングは使用不可になります。 |
DataSource.<data_source_id>.minPoolSize | java.lang.Integer | このデータ・ソースに対して接続プール内に維持する最小接続数。使用中の接続が 1 つもない場合、プール・サイズがこの設定値に達するまで、接続プールでこれらの接続を破棄する場合があります。 この設定は、負でない値でなければなりません。 |
DataSource.<data_source_id>.password | java.lang.String | データベースにアクセスする際の、指定されたユーザー のパスワード。この前にあるプロパティー同様、データベースでセキュリティーが使用可能になっていないか、または接続の作成時にユーザー名とパスワードがプログラムで提供される場合は、このプロパティーは省略できます。 |
DataSource.<data_source_id>.transactional | java.lang.Boolean | このデータ・ソースが、Java Transaction API (JTA) トランザクションに参加する必要があるかどうかを指定します。有効な値は true (デフォルト) または false です。 |
DataSource.<data_source_id>.user | java.lang.String | データベースにアクセスするためのユーザー名。このプロパティーは、データベースでセキュリティーが使用可能になっていないか、または接続の作成時にユーザー名とパスワードがプログラムで提供される場合は省略できます。 |
DataSource.<data_source_id>.<vendor_property_name _or_connection_pool_property_name> | java.lang.String | 以下のその他のプロパティーを構成することもできます。
|
DataSource.<data_source_id>.xaRecoveryPassword | java.lang.String | XA データ・ソースのみに適用します。XA リカバリーのパスワード。 |
DataSource.<data_source_id>.xaRecoveryUser | java.lang.String | XA データ・ソースのみに適用します。一部のデータベースでは、XA リカバリー用の特権を持つユーザーが必要になります。 このプロパティーを使用して、デフォルトのユーザーの代わりに XA リカバリー用のユーザー名を指定します。 |
2 つのデータ・ソースを構成する場合は、以下のプロパティーを使用します。
DataSource.ds1.name=env/jdbc/ds1
DataSource.ds1.className=org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource
DataSource.ds1.transactional=true
DataSource.ds1.createDatabase=create
DataSource.ds1.databaseName=jtest1
DataSource.ds1.user=dbuser1
DataSource.ds1.password=dbpwd1
DataSource.ds1.maxPoolSize=5
DataSource.ds2.name=env/jdbc/ds2
DataSource.ds2.className=org.apache.derby.jdbc.EmbeddedXADataSource
DataSource.ds2.connectionSharing=MatchOriginalRequest
DataSource.ds2.createDatabase=create
DataSource.ds2.databaseName=jtest2
DataSource.ds2.user=dbuser2
DataSource.ds2.password=dbpwd2
DataSource.ds2.maxPoolSize=10
DataSource.ds2.minPoolSize=1
DataSource.ds3.name=env/jdbc/ds3
DataSource.ds3.className=com.ibm.db2.jcc.DB2XADataSource
DataSource.ds3.driverType=4
DataSource.ds3.databaseName=DB2COPY1
DataSource.ds3.serverName=mydb2.test.ibm.com
DataSource.ds3.portName=50000
DataSource.ds3.user=dbuser1
DataSource.ds3.password=dbpwd1
最初のデータ・ソース ds1 は、env/jdbc/ds1 という名前の下の名前空間にバインドされ、Apache Derby データベースへの最大 5 つまでの接続に接続プーリングを提供します。 2 番目のデータ・ソースである ds2 は、env/jdbc/ds2 にある名前空間にバインドされ、Apache Derby データベースに XA 準拠の接続プーリングを提供します。
- <app> はアプリケーション名に置き換えます。
アプリケーション名はデフォルトで空ストリングです。 ただし、createEJBContainer の呼び出し時に、EJBContainer.APP_NAME プロパティーを使用してアプリケーション名を指定することができます。
- <module> はモジュール名に置き換えます。
モジュール名は、 ejb-jar.xml の <module-name> で指定するか、サフィックス「.jar」を含まない JAR ファイル名であるか、 モジュールが含まれるディレクトリーの名前です。
- <ejb> は EJB の名前に置き換えます。
EJB の名前は、ejb-jar.xml の <ejb-name> で指定するか、 アノテーション使用時に name エレメントを使用して (例えば、@Stateless(name="TestBean") など) 指定します。 EJB のアノテーションで name が指定されないと、単純クラス名 (例えば、クラス com.ibm.test.TestBean の場合には TestBean) が使用されます。
- <interceptor> はインターセプター・クラスの名前に置き換えます。
- <ref> は、リソース参照、EJB 参照、または環境エントリーの名前に置き換えます。
参照は、ejb-jar.xml で (例えば、<res-ref-name>jdbc/mydsref</res-ref-name>、 <ejb-ref-name>java:module/env/myejbref</ejb-ref-name> など) 指定できます。 あるいは、アノテーションを使用して (例えば、@Resource(name="jdbc/mydsref")、@EJB(name="java:module/env/myenvref" など) 指定することも可能です。
組み込み可能コンテナーの起動時にアプリケーション名が指定されない場合は、<app> を省略する必要があります。 ただし、区切り文字の # を使用する必要があります。例えば、Bean.#<module>#<bean>.ResourceRef.BindingName というように指定します。
プロパティー | タイプ | 説明 |
---|---|---|
Bean.<app>#<module>#<ejb>.ResourceRef.BindingName.<ref> または Interceptor.<app>#<module>#<interceptor>.ResourceRef.BindingName.<ref> | java.lang.String | リソース参照が検索または注入される場合に使用する JNDI ストリング。 これは、構成済みデータ・ソースの JNDI 名である必要があります。 |
Bean.<app>#<module>#<ejb>.EJBRef.BindingName.<ref-name> または Interceptor.<app>#<module>#<interceptor>.EJBRef.BindingName.<ref> | java.lang.String | EJB 参照が検索または注入される場合に使用する JNDI ストリング。 これは、組み込み可能 EJB コンテナー内にある EJB の java:global、java:app、または java:module の JNDI ストリングである必要があります。 |
Bean.<app>#<module>#<ejb>.EnvEntry.Value.<ref-name> または Interceptor.<app>#<module>#<interceptor>.EnvEntry.Value.<ref> | java.lang.String | 環境エントリーが検索または注入される場合に使用する値。 このプロパティーでは、env-entry-value で指定された値をオーバーライドします。 この値は、環境エントリーの型に対して有効でなければなりません。 |
Bean.<app>#<module>#<ejb>.EnvEntry.BindingName.<ref> または Interceptor.<app>#<module>#<interceptor>.EnvEntry.BindingName.<ref> | java.lang.String | 環境エントリーが検索または注入される場合に使用する JNDI ストリング。 これは、同じ組み込み可能 EJB コンテナー内にある別の環境エントリーの java:global、java:app、または java:module の JNDI ストリングである必要があります。 |
Bean.<app>#<module>#<ejb>.DataSource.BindingName.<ref> または Interceptor.<app>#<module>#<interceptor>.DataSource.BindingName.<ref> | java.lang.String | データ・ソースが検索または注入される場合に使用する JNDI ストリング。 これは、構成されたデータ・ソースの JNDI 名、または同じ組み込み可能 EJB コンテナー内にある別のデータ・ソースの java:global、java:app、または java:module の JNDI ストリングのいずれかである必要があります。 アプリケーション開発者は、データ・ソースを直接検索するのではなく、リソース参照を使用する必要があります。 アプリケーションがデータ・ソースを直接検索するようコーディングされている場合は、このプロパティーを使用して、アプリケーションに含まれているデータ・ソース定義をオーバーライドできます。 データ・ソース定義について詳しくは、インフォメーション・センターを参照してください。 |
以下のプロパティーを使用して、2 つの参照を持つ EJB 用のバインディングと 1 つの環境エントリーを持つ 1 つのインターセプターを構成します。
Bean.#TestModule#TestBean.ResourceRef.BindingName.jdbc/dsref=env/jdbc/ds1
Bean.#TestModule#TestBean.EJBRef.BindingName.ejb/Cart=java:global/CartModule/CartBean
Interceptor.#TestModule#com.ibm.example.LoggerInterceptor.EnvEntry.Value.logFile=/tmp/output.log

Bean.#TestModule#TestBean.DataSource.BindingName.java¥:module/env/TestDataSource=jdbc/MyDataSource
gotchaプロパティー | タイプ | デフォルト値 | 説明 |
---|---|---|---|
com.ibm.websphere.securityEnabled | java.lang.String | false | セキュリティー・ロールを検査するかどうかを指定します。有効な値は、false (デフォルト) または true です。 true の場合、セキュリティー・ロールが検査され、false の場合、セキュリティー・ロールは検査されません。 |
role.<role_name> | java.lang.String | 1 つ以上のユーザーに EJB ロールをマップします。<role_name> は、アノテーションの @RolesAllowed またはデプロイメント記述子の <method-permission> によって、メソッドに割り当てられるロールです。 値は、コンマで区切られた一連のユーザー名です (例えば「"bob, mary, john」)。リスト内のユーザーは、<role_name> を必要とするメソッドの実行を許可されます。 | |
role.runAs.<role_name> | java.lang.String | 1 ユーザーに 1 つの EJB ロールをマップします。<role_name> は、アノテーションの @RunAs またはデプロイメント記述子の <run-as> によって、Bean またはメソッドに割り当てられるロールです。この値は、単一のユーザー名です。ユーザー名は、Bean の実行中に Bean で必要とされる許可に対して使用されます。 | |
user.invocation | java.lang.String | Bean の呼び出し時に許可に対して使用できるユーザーを定義します。 この値は、単一のユーザー名です。コンテナーでは、対象のユーザーが、すべての実行されるメソッドの実行を許可されたロールにマップされていることが検査されます。 |
次の表には、ローカル・トランザクション内包 (LTC) の振る舞いに対する構成プロパティーが記載されています。 LTC については、『ローカル・トランザクション内包』を参照してください。 各プロパティーは、1 つの Bean に固有のものです。
組み込み可能コンテナーの起動時にアプリケーション名が指定されない場合は、<application_name> を省略する必要があります。ただし、区切り文字の # を使用する必要があります。例えば、Bean.#<module_name>#<bean_name>LocalTransaction.Resolver というように指定します。
プロパティー | タイプ | デフォルト値 | 説明 |
---|---|---|---|
Bean.<application_name>#<module_name>#<bean_name>.LocalTransaction.Resolver | java.lang.String | アプリケーション | ローカル・トランザクションの解決の役割を果たすエンティティーを指定します。 有効な値は、Application (デフォルト) または ContainerAtBoundary です。 |
Bean.<application_name>#<module_name>#<bean_name>.LocalTransaction.UnresolvedAction | java.lang.String | ロールバック | 未解決のローカル・トランザクションに対して実行されるアクションを指定します。 有効な値は、Rollback (デフォルト) または Commit です。 |
次の表には、XA の振る舞いに対する構成プロパティーが記載されています。
プロパティー | タイプ | デフォルト値 | 説明 |
---|---|---|---|
com.ibm.websphere.tx.acceptHeuristicHazard | java.lang.String | false | 最終参加者サポートをすべてのモジュールに対して使用可能にするかどうかを指定します。 デフォルト値は false です。 |
com.ibm.websphere.tx.auditRecovery | java.lang.String | true | リカバリー処理で監査メッセージを出力するかどうかを指定します。これらの監査メッセージには、リカバリー中の XA リソースと XID 処理が示されます。 監査リカバリーを指定しないと、エラーが発生しない限り、リカバリーされたトランザクション数とともに 1 つのリカバリー・メッセージが出力されるだけです。 |
com.ibm.websphere.tx.clientInactivityTimeout | java.lang.String | 0 | 各トランザクション要求間の最大所要時間を秒単位で指定します。 クライアントの非活動時間がこのタイムアウト値を超過すると、トランザクションがロールバックされます。デフォルトの設定値 0 は、制限がないことを意味します。 |
com.ibm.websphere.tx.enableLoggingForHeuristicReporting | java.lang.String | false | このプロパティーによって、ヒューリスティック・レポートのロギングが可能になります。 最終参加者サポートが使用可能になっている場合、サーバーが使用不可になると生成される可能性があるヒューリスティック結果のレポートで、追加情報がトランザクション・ログに書き込まれる必要があります。 このプロパティーが使用可能になっている場合、1 フェーズ・コミット・リソースと 2 フェーズ・コミット・リソースの両方に関係のあるすべてのトランザクションに、1 つの追加ログの書き込みが実行されます。 1 フェーズ・コミット・リソースに関係のないトランザクションには、追加レコードの書き込みは行われません。 |
com.ibm.websphere.tx.heuristicRetryLimit | java.lang.String | 0 | トランザクション・サービスでコミットやロールバックなどの完了シグナルを再試行する回数を指定します。 再試行は、リソース・マネージャーからの一時的な例外の後に実行されます。 デフォルト値の 0 は、再試行の回数に制限がないことを示します。 |
com.ibm.websphere.tx.heuristicRetryWait | java.lang.String | 0 | リソース・マネージャーからの一時的な例外の後、コミットやロールバックなどの完了シグナルを再試行する前に、トランザクション・サービスが待機する秒数を指定します。 |
com.ibm.websphere.tx.LPSHeuristicCompletion | java.lang.String | ROLLBACK (大/小文字を区別しない) |
1 フェーズ・コミット・リソースの結果が不明な場合に、最終参加者サポートのあるトランザクション内でトランザクション・サービスによって実行されるヒューリスティックな完了アクション。 値の ROLLBACK または COMMIT により、2 フェーズ・コミット・リソースがこれに応じて完了されます。 設定値の MANUAL は、トランザクション・サービスでアクションを実行せず、2 フェーズ・コミット・リソースを未確定のままにすることを意味します。 デフォルト値は ROLLBACK です。 |
com.ibm.websphere.tx.maximumTransactionTimeout | java.lang.String | 300 | トランザクションのタイムアウト値の上限を秒単位で指定します。このタイムアウト値により、他のすべてのトランザクションのタイムアウト値の上限が制限されます。 |
com.ibm.websphere.tx.totalTranLifetimeTimeout | java.lang.String | 120 | トランザクション・サービスでタイムアウトを開始するまでの、トランザクションに許可された、デフォルトの最大時間を秒単位で指定します。 このタイムアウトが発生するまでに完了処理を開始しないトランザクションは、すべてロールバックされます。 |
com.ibm.websphere.tx.tranLogDirectory | java.lang.String | profiles¥server name¥tranlog | トランザクション・サービスがリカバリー用のログ・ファイルを保管するディレクトリーの名前をこのサーバーに指定します。 |
com.ibm.websphere.tx.tranLogSize | java.lang.String | 1024 | トランザクション・ログ・ファイルのサイズをキロバイト単位で指定します。 最小ファイル・サイズは 64 KB です。デフォルト値では、ファイル・サイズが 1 MB に設定されます。 |