Use the following configuration properties for the embeddable
Enterprise JavaBeans (EJB)
container.
Table 1. Embeddable
EJB container configuration properties. Use the properties
for embeddable EJB container configurations.
Property |
Type |
Default value |
Description |
com.ibm.websphere.ejbcontainer.cacheSize |
java.lang.Long |
2 053 |
Number of buckets for the EJB cache. |
com.ibm.websphere.ejbcontainer.cacheSweepInterval |
java.lang.Long |
3 000 |
Time between sweeps of the EJB cache to determine
whether to remove entries. |
com.ibm.websphere.ejbcontainer.inactivePoolCleanupInterval |
java.lang.Long |
30 000 |
Time in milliseconds for the clean up thread
to wait before cleaning the inactive pool. |
com.ibm.websphere.ejbcontainer.passivationDir |
java.lang.String |
<TempDir> |
Directory to passivate stateful beans in. The
user must have read and write access to the specified directory. |
com.ibm.websphere.embeddable.configFileName |
java.lang.String |
<CurrentWorkingDirectory> /embeddable.properties |
File name of a properties file containing embeddable
EJB container properties. When this file is processed, each property
is passed to the newly created EJB container as if they were passed
in programmatically. Any properties in the configuration file are
overridden by properties passed in programmatically.
Attention: It is also possible to specify
this property as a system property on the command line.
|
The following table contains configuration properties
for data sources. Each property is specific to an individual data
source which allows you to configure multiple data sources with different
settings. Replace <data_source_id> with a unique
term that identifies the data source to be configured. Some properties
are listed as required for each data source.
Table 2. Embeddable EJB container
configuration properties for Java Database
Connectivity (JDBC) data sources. Use the embeddable
EJB container configuration properties for JDBC data sources.
Property |
Type |
Description |
DataSource.<data_source_id>.name |
java.lang.String |
Required. The Java Naming
and Directory Interface (JNDI) string that the container uses to bind
this data source in the global namespace of the embeddable container.
This string must match the JNDI lookup string used in the application. |
DataSource<data_source_id>.className |
java.lang.String |
Required. The Java class
name of the data source class. For testing, Apache Derby can be used
if app_server_root/derby/lib/derby.jar is
on the Java Virtual Machine
classpath. The supported data source classes for Apache Derby are
org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource and org.apache.derby.jdbc.EmbeddedXADataSource. |
DataSource.<data_source_id>.connectionSharing |
java.lang.String |
The policy for sharing connections. Valid values
are MatchOriginalRequest (default), MatchCurrentState or None. MatchOriginalRequest means
that a connection request might share if it matches the originally
requested settings of an existing connection. MatchCurrentState means
that a connection request might share if it matches the current settings
of an existing connection. None means that multiple
connection requests do not share the same connection. |
DataSource.<data_source_id>.databaseName |
java.lang.String |
The name of the database that this data source connects to. |
DataSource.<data_source_id>.isolationLevel |
java.lang.Integer |
The transaction isolation level for connections
from this data source. If unspecified, the default is provided by
the JDBC driver or database. Valid values are 1 for
Read Uncommitted, 2 for Read Committed, 4 for
Repeatable Read, or 8 for Serializable. These values
come from constants in java.sql.Connection and are subject to change.
|
DataSource.<data_source_id>.maxIdleTime |
java.lang.Integer |
The number of seconds after which the connection
pool can close an unused connection. |
DataSource.<data_source_id>.maxPoolSize |
java.lang.Integer |
The maximum number of connections that are created
for this data source. After this number of simultaneous connections
are in use, future requests to get a connection from this data source
are blocked until one or more of the in-use connections have been
returned to the pool. |
DataSource.<data_source_id>.maxStatements |
java.lang.Integer |
The maximum number of statements cached by the
connection pool. This value is divided by the maxPoolSize value
to determine the number of statements that can be cached for each
connection in the pool. A value of 0 disables statement
caching. |
DataSource.<data_source_id>.minPoolSize |
java.lang.Integer |
The minimum number of connections to keep in
the connection pool for this data source. If no connections are in
use, the connection pool might discard connections until the pool
size reaches this setting. This setting must be non-negative. |
DataSource.<data_source_id>.password |
java.lang.String |
Password for the given user when accessing
the database. Like the preceding property, this property can be omitted
if the database does not have security enabled or if the user name
and password are provided programmatically when creating the connection. |
DataSource.<data_source_id>.transactional |
java.lang.Boolean |
Whether this data source must be enlisted in Java Transaction API (JTA) transactions.
Valid values are true (default) or false. |
DataSource.<data_source_id>.user |
java.lang.String |
User name for accessing the database. This property can be
omitted if the database does not have security enabled or if the user
name and password are provided programmatically when creating the
connection. |
DataSource.<data_source_id>.<vendor_property_name
_or_connection_pool_property_name> |
java.lang.String |
You can also configure other properties:
- Vendor-specific data source properties, such as serverName and portNumber
- WebSphere® Application
Server data source properties, such as userDefinedErrorMap and validateNewConnection
- WebSphere Application
Server connection pooling properties, such as connectionTimeout and purgePolicy
|
DataSource.<data_source_id>.xaRecoveryPassword |
java.lang.String |
Applies to XA data sources only. Password for
XA recovery. |
DataSource.<data_source_id>.xaRecoveryUser |
java.lang.String |
Applies to XA data sources only. Some databases require a user
with special privileges for XA recovery. Use this property to specify
a user name for XA recovery instead of the default user. |
Use the following properties to configure two data sources.
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
The first data source,
ds1, is bound in the namespace under the name, env/jdbc/ds1, and provides
connection pooling for up to five connections to an Apache Derby database.
The second data source, ds2, is bound in the namespace at env/jdbc/ds2
and provides XA-compliant connection pooling to an Apache Derby database.
The following table contains configuration properties
for EJB bindings. For each property, replace <app> with
the application name, <module> with the module
name, <ejb> with the name of the EJB, <interceptor> with
the name of an interceptor class, and <ref> with
the name of the resource reference, EJB reference, or environment
entry.
If an application name is not specified
when launching the embeddable container, the <app> must
be omitted. However, you must use the # delimiter. For example, Bean.#<module>#<bean>.ResourceRef.BindingName.
Table 3. Embeddable
EJB container configuration properties for reference bindings. Use the embeddable EJB container configuration properties for
reference bindings.
Property |
Type |
Description |
Bean.<app>#<module>#<ejb>.ResourceRef.BindingName.<ref> or
Interceptor.<app>#<module>#<interceptor>.ResourceRef.BindingName.<ref>
|
java.lang.String |
The JNDI string to use when the resource reference is looked
up or injected. This must be the JNDI name of a configured data source. |
Bean.<app>#<module>#<ejb>.EJBRef.BindingName.<ref-name> or
Interceptor.<app>#<module>#<interceptor>.EJBRef.BindingName.<ref>
|
java.lang.String |
The JNDI string to use when the EJB reference is looked up
or injected. This must be the java:global, java:app, or java:module
JNDI string of an EJB in the embeddable EJB container. |
Bean.<app>#<module>#<ejb>.EnvEntry.Value.<ref-name> or
Interceptor.<app>#<module>#<interceptor>.EnvEntry.Value.<ref>
|
java.lang.String |
The value to use when the environment entry is looked up or
injected. This property overrides the value specified by env-entry-value.
The value must be valid for the type of the environment entry. |
Bean.<app>#<module>#<ejb>.EnvEntry.BindingName.<ref> or
Interceptor.<app>#<module>#<interceptor>.EnvEntry.BindingName.<ref>
|
java.lang.String |
The JNDI string to use when the environment entry is looked
up or injected. This must be the java:global, java:app, or java:module
JNDI string of another environment entry in the same embeddable EJB
container. |
Bean.<app>#<module>#<ejb>.DataSource.BindingName.<ref> or
Interceptor.<app>#<module>#<interceptor>.DataSource.BindingName.<ref> |
java.lang.String |
The JNDI string to use when the data source
is looked up or injected. This must either be the JNDI name of a configured
data source or the java:global, java:app, or java:module JNDI string
of another data source in the same embeddable EJB container. Application
developers should use resource references rather than looking up a
data source directly. If an application is coded to look up data sources
directly, you can use this property to override data source definitions
included in the application. See the information center for more information
about data source definitions. |
Use the following properties
to configure the bindings for an EJB with two references and an interceptor
with an environment entry:
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
newfeat Avoid trouble: Use the following properties
to override java:module/env/TestDataSource that is defined in an EJB
named TestBean in an EJB module named TestModule, with jdbc/MyDataSource
that is defined in embeddable properties:
Bean.#TestModule#TestBean.DataSource.BindingName.java\:module/env/TestDataSource=jdbc/MyDataSource
gotcha
Table 4. Embeddable EJB
container configuration properties for security. Use
the embeddable EJB container configuration properties for security.
Property |
Type |
Default value |
Description |
com.ibm.websphere.securityEnabled |
java.lang.String |
false |
Determines whether security roles are checked. Valid values
are false (default) or true. If true, then security roles are checked;
if false, then security roles are not checked. |
role.<role_name> |
java.lang.String |
|
Maps an EJB role to one or more users. The <role_name>
is a role assigned to a method, either through the annotation @RolesAllowed
or through the deployment descriptor <method-permission>. The
value is a string of comma-delimited user names, for example "bob,
mary, john". The users in the list are allowed to run methods that
require the <role_name>. |
role.runAs.<role_name> |
java.lang.String |
|
Maps one EJB role to one user. The <role_name> is a
role assigned to a bean or method, either through the annotation @RunAs
or through the deployment descriptor <run-as>. The value is
a single user name. The user name is used for any authorization that
is required by the bean while it is running. |
user.invocation |
java.lang.String |
|
Defines the user that might be used for authorization when
the bean is invoked. The value is a single user name. The container
checks that this user is mapped to a role that is allowed to run any
executed method. |
The following table contains configuration properties
for the Local Transaction Containment (LTC) behavior. For an explanation
of LTC, read about local transaction containment. Each property is
specific to a bean.
If an application name is not specified
when launching the embeddable container, the <application_name> must
be omitted. However, you must use the # delimiter. For example, Bean.#<module_name>#<bean_name>LocalTransaction.Resolver.
Table 5. Embeddable EJB container configuration
properties for Local Transaction Containment. Use the
embeddable EJB container configuration properties for Local Transaction
Containment.
Property |
Type |
Default value |
Description |
Bean.<application_name>#<module_name>#<bean_name>.LocalTransaction.Resolver |
java.lang.String |
Application |
Determines the entity that is responsible for local transaction
resolution. Valid values are Application (default) or ContainerAtBoundary. |
Bean.<application_name>#<module_name>#<bean_name>.LocalTransaction.UnresolvedAction |
java.lang.String |
Rollback |
Determines the action taken for unresolved local transactions.
Valid values are Rollback (default) or Commit. |
The following table contains configuration properties for
XA behavior.
Table 6. Embeddable EJB configuration properties for XA. Use
the embeddable EJB configuration properties for XA.
Property |
Type |
Default value |
Description |
com.ibm.websphere.tx.acceptHeuristicHazard |
java.lang.String |
false |
Specifies whether last participant support is enabled for all
modules. The default value is false. |
com.ibm.websphere.tx.auditRecovery |
java.lang.String |
true |
Specifies whether recovery processing outputs audit messages,
which indicate XA resource and XID processing during recovery. When
no audit recovery is specified, only a single recovery message is
output along with the number of transactions that are recovered, unless
an error occurs. |
com.ibm.websphere.tx.clientInactivityTimeout |
java.lang.String |
0 |
Specifies the maximum duration, in seconds, between transactional
requests. Any period of client inactivity that exceeds this timeout
value results in the transaction being rolled back. The default setting, 0,
means that no limit exists. |
com.ibm.websphere.tx.enableLoggingForHeuristicReporting |
java.lang.String |
false |
This property enables logging for heuristic reporting. If last
participant support is enabled, reporting of heuristic outcomes that
might occur when the server becomes unavailable requires additional
information to be written to the transaction log. If enabled, one
additional log write is completed for any transaction that involves
both one-phase and two-phase commit resources. No additional records
are written for transactions that do not involve a one-phase commit
resource. |
com.ibm.websphere.tx.heuristicRetryLimit |
java.lang.String |
0 |
Specifies the number of times that the transaction service
retries a completion signal such as commit or rollback. Retries occur
after a transient exception from a resource manager. The default value, 0,
indicates no limit to the number of retries. |
com.ibm.websphere.tx.heuristicRetryWait |
java.lang.String |
0 |
Specifies the number of seconds that the transaction service
waits before retrying a completion signal, such as commit or rollback,
after a transient exception from a resource manager. |
com.ibm.websphere.tx.LPSHeuristicCompletion |
java.lang.String |
ROLLBACK (case insensitive)
|
The heuristic completion action to be taken
by the transaction service in a transaction with last participant
support when the outcome of the one-phase commit resource is unknown.
The values ROLLBACK or COMMIT cause the two-phase commit resources
to be completed accordingly. The setting, MANUAL, means that the transaction
service takes no action and leave the two-phase commit resources in-doubt.
The default value is ROLLBACK. |
com.ibm.websphere.tx.maximumTransactionTimeout |
java.lang.String |
300 |
Specifies, in seconds, the upper limit of the transaction timeout
value. This timeout value constrains the upper limit of all other
transaction timeout values. |
com.ibm.websphere.tx.totalTranLifetimeTimeout |
java.lang.String |
120 |
Specifies the default maximum time, in seconds, allowed for
a transaction before the transaction service initiates timeout. Any
transaction that does not begin completion processing before this
timeout occurs is rolled back. |
com.ibm.websphere.tx.tranLogDirectory |
java.lang.String |
profiles\server name\tranlog |
Specifies the name of a directory for this server where the
transaction service stores log files for recovery. |
com.ibm.websphere.tx.tranLogSize |
java.lang.String |
1024 |
Specifies the size, in kilobytes, of transaction log files.
The minimum file size is 64KB. The default value sets the file size
to 1MB. |