Transaction Manager (transaction)
Configuration properties for the Transaction Manager service
Name | Type | Default | Description |
---|---|---|---|
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 | 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 |
| 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. |
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.
Name | Type | Default | Description |
---|---|---|---|
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 |
| MatchOriginalRequest | Specifies how connections are matched for sharing. |
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 |
| 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. | |
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 | 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 |
| 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 |
| 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. | |
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. |
Connection manager for a data source. If updated while the server is running, existing connections are destroyed.
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.
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.
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.
JDBC driver for a data source. If updated while the server is running, existing connections are destroyed.
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.
Data source properties for the DataDirect Connect for JDBC driver for Microsoft SQL Server.
Data source properties for the IBM DB2 for i Native JDBC driver.
Data source properties for the IBM DB2 for i Toolbox JDBC driver.
Data source properties for the IBM Data Server Driver for JDBC and SQLJ for DB2.
Data source properties for Derby Network Client JDBC driver.
Data source properties for Derby Embedded JDBC driver.
Data source properties for the Informix JDBC driver.
Data source properties for the IBM Data Server Driver for JDBC and SQLJ for Informix.
Data source properties for Microsoft SQL Server JDBC Driver.
Data source properties for Oracle JDBC driver.
Data source properties for Oracle Universal Connection Pooling.
Data source properties for PostgreSQL JDBC driver.
Data source properties for Sybase JDBC driver.
Authentication data for transaction recovery.