Transaction Manager (transaction)

Configuration properties for the Transaction Manager service

NameTypeDefaultDescription

OnePCOptimization

boolean

true

Specifies whether the transaction manager optimizes when all resources but one vote read only.

acceptHeuristicHazard

boolean

true

Specifies whether all applications on this server accept the possibility of a heuristic hazard occurring in a two-phase transaction that contains a one-phase resource.

clientInactivityTimeout

A period of time with second precision

60s

Maximum duration between transactional requests from a remote client. Any period of client inactivity that exceeds this timeout results in the transaction being rolled back in this application server. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), or seconds (s). For example, specify 30 seconds as 30s. You can include multiple values in a single entry. For example, 1m30s is equivalent to 90 seconds.

dataSourceRef

A reference to top level dataSource element (string).

This is an optional property. By default the transaction service stores its recovery logs in a file. As an alternative it is possible to store the logs in an RDBMS. This is achieved by setting this property which defines a non-transactional data source where the transaction logs will be stored.

defaultMaxShutdownDelay

A period of time with second precision

2s

Default maximum shutdown delay. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), or seconds (s). For example, specify 30 seconds as 30s. You can include multiple values in a single entry. For example, 1m30s is equivalent to 90 seconds.

enableLogRetries

boolean

false

When recovery logs are stored in an RDBMS table, this property allows SQL operations that fail to be retried.

enableLoggingForHeuristicReporting

boolean

false

Specifies whether the application server logs about-to-commit-one-phase-resource events from transactions that involve both a one-phase commit resource and two-phase commit resources.

heuristicRetryInterval

A period of time with second precision

60s

Amount of time that the application server waits before retrying a completion signal, such as commit or rollback, after a transient exception from a resource manager or remote partner. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), or seconds (s). For example, specify 30 seconds as 30s. You can include multiple values in a single entry. For example, 1m30s is equivalent to 90 seconds.

heuristicRetryLimit

int

0

The number of times that the application server retries a completion signal, such as commit or rollback. Retries occur after a transient exception from a resource manager or remote partner.

heuristicRetryWait

A period of time with second precision

60s

Amount of time that the application server waits before retrying a completion signal, such as commit or rollback, after a transient exception from a resource manager or remote partner. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), or seconds (s). For example, specify 30 seconds as 30s. You can include multiple values in a single entry. For example, 1m30s is equivalent to 90 seconds.

leaseCheckInterval

A period of time with second precision

60s

The interval after which the lease check strategy is implemented. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), or seconds (s). For example, specify 30 seconds as 30s. You can include multiple values in a single entry. For example, 1m30s is equivalent to 90 seconds.

leaseLength

A period of time with second precision

60s

The length of time before a recovery log lease expires. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), or seconds (s). For example, specify 30 seconds as 30s. You can include multiple values in a single entry. For example, 1m30s is equivalent to 90 seconds.

leaseRenewalThreshold

int
Min: 1
Max: 100

90

The percentage of the duration of the recovery log lease that passes before the lease is renewed

logRetryInterval

int

10

Specifies the interval in seconds between attempts to recover from a transient error accessing the transaction service logs.

logRetryLimit

int

180

Specifies the maximum number of attempts to recover from a transient error accessing the transaction service logs for an unrecoverable error condition.

lpsHeuristicCompletion

  • COMMIT

  • MANUAL

  • ROLLBACK

ROLLBACK

Specifies the direction that is used to complete a transaction that has a heuristic outcome; either the application server commits or rolls back the transaction, or depends on manual completion by the administrator. Allowed values are: COMMIT, ROLLBACK and MANUAL

propogatedOrBMTTranLifetimeTimeout

A period of time with second precision

0

Upper limit of the transaction timeout for transactions that run in this server. This value should be greater than or equal to the value specified for the total transaction timeout. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), or seconds (s). For example, specify 30 seconds as 30s. You can include multiple values in a single entry. For example, 1m30s is equivalent to 90 seconds.

recoverOnStartup

boolean

false

Specifies whether the server should begin transaction recovery at server startup.

recoveryGroup

string

Name of the recovery group that this server belongs too. Members of a recovery group can recover the transaction logs of other servers in the group.

recoveryIdentity

string

Unique identity of this server for transaction peer recovery.

shutdownOnLogFailure

boolean

true

Specifies whether the transaction manager will stop an application server that is part of a recoveryGroup if an unrecoverable error occurs accessing its own transaction service logs.

timeoutGracePeriodEnabled

boolean

false

Specifies whether there is a delay between a transaction timeout and the abnormal ending of the servant region that was running the transaction.

totalTranLifetimeTimeout

A period of time with second precision

120s

Default maximum time allowed for transactions started on this server to complete. Any such transactions that do not complete before this timeout occurs are rolled back. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), or seconds (s). For example, specify 30 seconds as 30s. You can include multiple values in a single entry. For example, 1m30s is equivalent to 90 seconds.

transactionLogDBTableSuffix

string

When recovery logs are stored in an RDBMS table, this property allows the table name to be post-pended with a string to make it unique for this Server.

transactionLogDirectory

string

${server.output.dir}/tranlog/

A directory for this server where the transaction service stores log files for recovery.

transactionLogSize

int

1024

Specifies the size of transaction log files in Kilobytes.

waitForRecovery

boolean

false

Specifies whether the server should wait for transaction recovery to complete before accepting new transactional work.

transaction > dataSource

This is an optional property. By default the transaction service stores its recovery logs in a file. As an alternative it is possible to store the logs in an RDBMS. This is achieved by setting this property which defines a non-transactional data source where the transaction logs will be stored.

NameTypeDefaultDescription

connectionManagerRef

A reference to top level connectionManager element (string).

Connection manager for a data source. If updated while the server is running, existing connections are destroyed.

connectionSharing

  • MatchCurrentState

  • MatchOriginalRequest

MatchOriginalRequest

Specifies how connections are matched for sharing.
MatchCurrentState
When sharing connections, match based on the current state of the connection. If updated while the server is running, the update is applied with each first connection handle in a transaction.
MatchOriginalRequest
When sharing connections, match based on the original connection request.

containerAuthDataRef

A reference to top level authData element (string).

Default authentication data for container managed authentication that applies when bindings do not specify an authentication-alias for a resource reference with res-auth=CONTAINER. If updated while the server is running, the change is applied with new connection requests; in-use connections are not impacted.

isolationLevel

  • TRANSACTION_NONE

  • TRANSACTION_READ_COMMITTED

  • TRANSACTION_READ_UNCOMMITTED

  • TRANSACTION_REPEATABLE_READ

  • TRANSACTION_SERIALIZABLE

  • TRANSACTION_SNAPSHOT

Default transaction isolation level. If unspecified and the database is identified as DB2, Derby, Informix, Microsoft SQL Server or Sybase, TRANSACTION_REPEATABLE_READ is used. If unspecified for other databases, TRANSACTION_READ_COMMITTED is used. If updated while the server is running, the update is applied with new connection requests; in-use connections are not impacted.
TRANSACTION_NONE
Indicates that the JDBC driver does not support transactions.
TRANSACTION_READ_COMMITTED
Dirty reads are prevented; non-repeatable reads and phantom reads can occur.
TRANSACTION_READ_UNCOMMITTED
Dirty reads, non-repeatable reads and phantom reads can occur.
TRANSACTION_REPEATABLE_READ
Dirty reads and non-repeatable reads are prevented; phantom reads can occur.
TRANSACTION_SERIALIZABLE
Dirty reads, non-repeatable reads and phantom reads are prevented.
TRANSACTION_SNAPSHOT
Snapshot isolation for Microsoft SQL Server JDBC Driver and DataDirect Connect for JDBC driver.

jaasLoginContextEntryRef

A reference to top level jaasLoginContextEntry element (string).

JAAS login context entry for authentication. If updated while the server is running, the update is applied with new connection requests; in-use connections are not impacted.

jdbcDriverRef

A reference to top level jdbcDriver element (string).

JDBC driver for a data source. If updated while the server is running, existing connections are destroyed.

jndiName

string

JNDI name for a data source. If updated while the server is running, existing connections are destroyed.

statementCacheSize

int
Min: 0

10

Maximum number of cached statements per connection. If updated while the server is running, the statement cache is resized upon next use. To set this option, complete the following prerequisites: Review either the application code or an SQL trace that you gather from the database or database driver for all unique prepared statements. Ensure that the cache size is larger than the number of statements.

transactional

boolean

true

Enable participation in transactions that are managed by the application server. If updated while the server is running, existing connections are destroyed.

type

  • java.sql.Driver

  • javax.sql.ConnectionPoolDataSource

  • javax.sql.DataSource

  • javax.sql.XADataSource

Type of data source. If updated while the server is running, existing connections are destroyed.

Advanced Properties

beginTranForResultSetScrollingAPIs

boolean

true

Attempt transaction enlistment when result set scrolling interfaces are used.

beginTranForVendorAPIs

boolean

true

Attempt transaction enlistment when vendor interfaces are used.

commitOrRollbackOnCleanup

  • commit

  • rollback

Determines how to clean up connections that might be in a database unit of work (AutoCommit=false) when the connection is closed or returned to the pool.
commit
Clean up the connection by committing.
rollback
Clean up the connection by rolling back.

enableConnectionCasting

boolean

false

Indicates that connections obtained from the data source should be castable to interface classes that the JDBC vendor connection implementation implements. Enabling this option incurs additional overhead on each getConnection operation. If vendor JDBC interfaces are needed less frequently, it might be more efficient to leave this option disabled and use Connection.unwrap(interface) only where it is needed. If updated while the server is running, the update is applied with new connection requests; in-use connections are not impacted.

onConnect

string

SQL command to execute once on each new connection that is established to the database. The SQL statement applies only to newly created connections, not to existing connections that are reused from the connection pool. If updated while the server is running, existing connections are destroyed.

queryTimeout

A period of time with second precision

Default query timeout for SQL statements. In a JTA transaction, syncQueryTimeoutWithTransactionTimeout can override this default. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), or seconds (s). For example, specify 30 seconds as 30s. You can include multiple values in a single entry. For example, 1m30s is equivalent to 90 seconds.

recoveryAuthDataRef

A reference to top level authData element (string).

Authentication data for transaction recovery.

supplementalJDBCTrace

boolean

Supplements the JDBC driver trace that is logged when JDBC driver trace is enabled in bootstrap.properties. JDBC driver trace specifications include: com.ibm.ws.database.logwriter, com.ibm.ws.db2.logwriter, com.ibm.ws.derby.logwriter, com.ibm.ws.informix.logwriter, com.ibm.ws.oracle.logwriter, com.ibm.ws.sqlserver.logwriter, com.ibm.ws.sybase.logwriter. If updated while the server is running, existing connections are destroyed.

syncQueryTimeoutWithTransactionTimeout

boolean

false

Use the time remaining (if any) in a JTA transaction as the default query timeout for SQL statements.

validationTimeout

A period of time with second precision

When specified, pooled connections are validated before being reused from the connection pool. The validation timeout is also used when the connection manager validates connections in response to a stale connection for PurgePolicy=ValidateAllConnections. The full amount of the validation timeout applies to each connection that is validated, which is done via the Connection.isValid(timeout) JDBC API operation. A value of 0 means that connections are validated without applying any timeout. Validation timeout requires a JDBC driver that complies with the JDBC 4.0 specification or higher. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), or seconds (s). For example, specify 30 seconds as 30s. You can include multiple values in a single entry. For example, 1m30s is equivalent to 90 seconds.

Expand
transaction > dataSource > connectionManager

Connection manager for a data source. If updated while the server is running, existing connections are destroyed.

Expand
transaction > dataSource > containerAuthData

Default authentication data for container managed authentication that applies when bindings do not specify an authentication-alias for a resource reference with res-auth=CONTAINER. If updated while the server is running, the change is applied with new connection requests; in-use connections are not impacted.

Expand
transaction > dataSource > identifyException

Identify a specific SQL error code or SQL state on a SQLException. This enables the server to take appropriate action based on the error condition. For example, closing a stale connection instead of returning it to the connection pool.

Expand
transaction > dataSource > jaasLoginContextEntry

JAAS login context entry for authentication. If updated while the server is running, the update is applied with new connection requests; in-use connections are not impacted.

Expand
transaction > dataSource > jdbcDriver

JDBC driver for a data source. If updated while the server is running, existing connections are destroyed.

Expand
transaction > dataSource > jdbcDriver > library

Expand
transaction > dataSource > jdbcDriver > library > file

Expand
transaction > dataSource > jdbcDriver > library > fileset

Expand
transaction > dataSource > jdbcDriver > library > folder

Expand
transaction > dataSource > properties

List of JDBC vendor properties for the data source. For example, databaseName="dbname" serverName="localhost" portNumber="50000". Use this generic properties list when no vendor-specific properties list type is available for your JDBC driver. Do not specify multiple properties elements under a data source. Instead, place all property name-value pairs on a single properties or properties.{JDBC_VENDOR_TYPE} element.

Expand
transaction > dataSource > properties.datadirect.sqlserver

Data source properties for the DataDirect Connect for JDBC driver for Microsoft SQL Server.

Expand
transaction > dataSource > properties.db2.i.native

Data source properties for the IBM DB2 for i Native JDBC driver.

Expand
transaction > dataSource > properties.db2.i.toolbox

Data source properties for the IBM DB2 for i Toolbox JDBC driver.

Expand
transaction > dataSource > properties.db2.jcc

Data source properties for the IBM Data Server Driver for JDBC and SQLJ for DB2.

Expand
transaction > dataSource > properties.derby.client

Data source properties for Derby Network Client JDBC driver.

Expand
transaction > dataSource > properties.derby.embedded

Data source properties for Derby Embedded JDBC driver.

Expand
transaction > dataSource > properties.informix

Data source properties for the Informix JDBC driver.

Expand
transaction > dataSource > properties.informix.jcc

Data source properties for the IBM Data Server Driver for JDBC and SQLJ for Informix.

Expand
transaction > dataSource > properties.microsoft.sqlserver

Data source properties for Microsoft SQL Server JDBC Driver.

Expand
transaction > dataSource > properties.oracle

Data source properties for Oracle JDBC driver.

Expand
transaction > dataSource > properties.oracle.ucp

Data source properties for Oracle Universal Connection Pooling.

Expand
transaction > dataSource > properties.postgresql

Data source properties for PostgreSQL JDBC driver.

Expand
transaction > dataSource > properties.sybase

Data source properties for Sybase JDBC driver.

Expand
transaction > dataSource > recoveryAuthData

Authentication data for transaction recovery.