Transaction service settings
Specify settings for the transaction service. The transaction service is a server runtime component that can coordinate updates to multiple resource managers to ensure atomic updates of data. Transactions are started and ended by applications or the container in which the applications are deployed.
From the admin console, click...
Servers > Server Types > WebSphere application servers > server > [Container Settings] Container Services > Transaction Service
Transaction log directory
Name of a directory for this server where the transaction service stores log files for recovery. Optionally, we can specify the size of transaction log files. (ZOS) For the z/OS platform, specifies the location of the JTA Partner Log.
Set to change the transaction log file directory for an application server in one of the following situations:
- If the applications use distributed resources or XA transactions; for example, multiple databases and resources are accessed in a single transaction.
- If we configure the system for high availability of transactions. In this situation, the transaction log directory must be unique for each server in the cluster, and all servers in the cluster must be able to access the transaction log directory.
In a high availability (HA) environment, both the transaction log and the compensation log directory for each server in a cluster must be unique.
If we do not specify this directory during server configuration, the transaction service uses a default directory based on the installation directory:
app_server_root/tranlog/cell_ name/node/server
When an application that runs on the application server accesses more than one resource, the application server stores transaction information in the product directory so that it can coordinate and manage the distributed transaction correctly. When there is a higher transaction load, storing persistent information in this way can slow the performance of the application server because it depends on the operating system and the underlying storage systems. To achieve better performance, designate a new directory for the log files on a separate, physically larger, storage system.
If the application server demonstrates one or more of the following symptoms, change the transaction log directory:
- CPU use remains low despite an increase in transactions
- Transactions fail with several timeouts
- Transaction rollbacks occur with the exception "Unable to enlist transaction"
- The application server stops in the middle of a run and must be restarted
- The disk that the application server is running on shows higher use
There are the following recommendations for a storage system for the log files:
- Store log files on a redundant array of independent disks (RAID).
In RAID configurations, the task of writing data to the physical media is shared across the multiple drives. This technique yields more concurrent access to storage for persisting transaction information, and faster access to that data from the logs. Depending on the design of the application and storage subsystem, performance gains can range from 10% to 100%, or more in some cases.
- Do not store log files with the operation system I/O mode set to concurrent I/O (CIO).
When we designate a transaction log directory, ensure that the file system uses only synchronous write-through and write serialization operations. Some operating systems, such as AIX JFS2, support an optional concurrent I/O (CIO) mode, where the file system does not enforce serialization of write operations. On these systems, do not use CIO mode for application server transaction recovery log files.
To specify the size of transaction log files, include a file size setting. Using one of the following formats, where directory_name is the name of the transaction log directory and file_size is the new disk space allocation for the transaction log files, specified in KB (nK) or MB (nM). The minimum transaction log file size that we can specify is 64K. If we specify a value that is less than 64K, or we do not specify a value for the file size, the default value of 1M is used.
;file_size <!-- This format keeps the default directory -->
directory_name;file_size
dir://directory_name/directory_name;file_size
/directory_name/directory_name;file_size
For more information about transaction log sizes, see Manage transaction logging for optimum server availability.
Information Value Data type String Default Directory name: app_server_root/tranlog/cell/node/server File size: 1MB
Recommended Create a file system with at least three to four disk drives raided together in a RAID-0 configuration. Then, create the transaction log on this file system with the default size. When the server is running under load, check the disk input and output. If disk input and output time is more than 5%, consider adding more physical disks to lower the value. (ZOS)
On z/OS, this log is used for recovery of XA resources. When the application that runs on the WebSphere product accesses XA resources, the WebSphere product stores information about the resource to enable XA transaction recovery. Use the following syntax:
[location type URL tag] location_specification
- location type URL tag specifies the optional location type for the JTA Partner Log:
- The default is dir://, which specifies that the JTA Partner Log location is in a fully qualified HFS directory specified by location_specification.
- location specification specifies the location name for the JTA Partner Log:
- To specify a logstream, use the syntax logstream://HLQ
If the application server installation followed the convention of configuring logstreams to the coupling facility (CF), the logstream is named according to the syntax HLQ.server.X, where HLQ is a user-defined value between 1-8 characters specified in the installation dialog. Use this HLQ value to specify the JTA Partner Log location.
Set AUTODELETE(NO) for any logstreams.
- If the location type URL tag is dir://, use a fully qualified HFS directory for the location specification. The complete name of the directory must be unique in the WebSphere node.
The default is dir://app_server_root/tranlog/server name.
To specify the size of transaction log files, include a file size setting. Using one of the following formats, where directory_name is the name of the transaction log directory and file_size is the new disk space allocation for the transaction log files, specified in KB (nK) or MB (nM). The minimum transaction log file size that we can specify is 64K. If we specify a value that is less than 64K, or we do not specify a value for the file size, the default value of 1M is used.
dir://directory_name/directory_name;file_sizeK
/directory_name/directory_name;file_sizeK
;file_sizeK <!-- This keeps the default directory -->
Total transaction lifetime timeout
The default maximum time, in seconds, allowed for a transaction that is started on this server before the transaction service initiates timeout completion. Any transaction that does not begin completion processing before this timeout occurs is rolled back.
This timeout is used only if the application component does not set its own transaction timeout.
(ZOS) After the timeout occurs, transactions are allowed to continue running for a grace period of approximately four minutes. If the transaction is committed or rolled back during the grace period, the outcome of the transaction is always rolled back. If the transaction does not complete after the grace period, the controller abnormally ends the servant region in which the application component is running, with ABEND EC3 RSN=04130002 or 04130005.
Only the total transaction lifetime timeout and the maximum transaction timeout have grace periods. We can disable the grace periods using the DISABLE_TRANSACTION_TIMEOUT_GRACE_PERIOD custom property.
The upper limit of this timeout is constrained by the maximum transaction timeout. For example, if we set a value of 500 for the total transaction lifetime timeout, and a value of 300 for the maximum transaction timeout, transactions will time out after 300 seconds.
If we set this timeout to 0, the timeout does not apply and the value of the maximum transaction timeout is used instead.
Information Value Data type Integer Units Seconds Default 120 Range 0 to 2 147 483 647
(ZOS) Range (ZOS) (ZOS) 0 to 2 147 040
Asynchronous response timeout
Amount of time, in seconds, that the server waits for an inbound Web Services Atomic Transaction (WS-AT) protocol response before resending the previous WS-AT protocol message.
Information Value Data type Integer Units Seconds Default 30 Range 0 to 2 147 483 647
Client inactivity timeout
Maximum duration, in seconds, 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.
If we set this value to 0, there is no timeout limit.
Information Value Data type Integer Units Seconds Default 60 Range 0 to 2 147 483 647
Maximum transaction timeout
Specifies, in seconds, the 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.Maximum time to complete, in seconds, for transactions that run in this server. This value should be greater than or equal to the total transaction lifetime timeout AND greater than or equal to the application component timeout. If the maximum transaction timeout is set to a value less than either the total transaction lifetime timeout or the application component timeout, application component transactions that may require more time will timeout when the maximum transaction timeout is reached.
This timeout constrains the upper limit of all other transaction timeout periods.
Timeout setting Transactions affected Maximum transaction timeout All transactions running in this server that are not affected by the total transaction lifetime timeout or an application component timeout. These transactions include transactions imported from outside this server, such as those imported from a client. Total transaction lifetime timeout All transactions that originated in this server that are not affected by an application component timeout, in other words, the associated application component does not set its own timeout. Application component timeout Transactions specific to an application component. We cannot set this transaction timeout using the administrative console.
If the component is a container-managed bean, set this timeout in the deployment descriptor for the component. For example, we can use an assembly tool, such as the Rational Application Developer.
If the component is a bean-managed bean, set this timeout programmatically using the UserTransaction.setTransactionTimeout method.
If we set a timeout to 0, that timeout does not apply, and is effectively disabled. If we set all timeouts to 0, transactions never time out.
For example, consider the following timeout values:
In this example, transactions specific to the application component time out after 60 seconds. Other local transactions time out after 240 seconds, and any transactions that are imported from outside this server time out after 360 seconds. If we then change the application component timeout to 500, application component transactions time out after 360 seconds, the value of the maximum transaction timeout. If we set the maximum transaction timeout to 0, application component transactions time out after 500 seconds. If we remove the application component timeout, application component transactions time out after 240 seconds.
Timeout setting Value Maximum transaction timeout 360 Total transaction lifetime timeout 240 Application component timeout 60 To determine the occurrence of a timeout quickly, and to prevent further resource locking, the application server prevents further transactional work on the transactional path where the timeout condition has taken place. This applies equally to attempting to undertake work under the current transaction context and to attempting to perform work under a different transactional context.
Information Value Data type Integer Units Seconds Default 300 Range 0 to 2 147 483 647 (ZOS) Range (ZOS) 0 to 2 147 040
Heuristic retry limit
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, or if the configured asynchronous response timeout expires before all Web Services Atomic Transaction (WS-AT) partners have responded.
If the application server abandons the retries, the resource manager or remote partner is responsible for ensuring that the resource or partner branch of the transaction is completed appropriately. The application server raises (on behalf of the resource or partner) an exception that indicates a heuristic hazard. If a commit request was made, the transaction originator receives an exception on the commit operation; if the transaction is container-initiated, the container returns a remote exception or EJB exception to the EJB client.
During recovery of a subordinate server in a distributed transaction, when the number of heuristic retries is exceeded, the heuristic completion direction property specifies how the transaction is completed.
Information Value Data type Integer Default 0 Range 0 to 2 147 483 647 A value of 0 (the default) means try again indefinitely.
Heuristic retry wait
Number of seconds 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.
Information Value Data type Integer Default 0 Range 0 to 2 147 483 647 A value of 0 means that the application server determines the retry wait; the server doubles the retry wait after every 10 failed retries.
(ZOS) If we leave this value at 0, the application server still makes subsequent attempts to complete the transaction. It incrementally lengthens the wait time before each attempt, to improve system throughput.
Enable logging for heuristic reporting
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.
Enable logging for heuristic reporting. If applications are configured to allow one-phase commit resources to participate in two-phase commit transactions, reporting of heuristic outcomes that occur at application server failure requires extra information to be written to the transaction log. If enabled, one additional log write is performed 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.
Information Value Data type Check box Default Cleared Range
- Cleared
- The application server does not log "about to commit one-phase resource" events from transactions that involve a one-phase commit resource and two-phase commit resources.
- Selected
- The application server does log "about to commit one-phase resource" events from transactions that involve a one-phase commit resource and two-phase commit resources.
Heuristic completion direction
Direction 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.
The heuristic completion direction property specifies how a transaction is completed in the following situations:
- The transaction manager reports a heuristic outcome for a last participant support (LPS) resource.
- The heuristic retry limit is exceeded during the recovery of a subordinate server in a distributed transaction.
- The transaction is imported from a Java EE Connector Architecture (JCA) provider.
Applies to transactions in the situations just described.
Information Value Data type Drop-down list Default ROLLBACK Range
- COMMIT
- The application server heuristically commits the transaction.
- ROLLBACK
- The application server heuristically rolls back the transaction.
- MANUAL
- The application server depends on an administrator to manually complete or roll back transactions with heuristic outcomes.
Accept heuristic hazard
Specifies whether all applications on this server accept the possibility of a heuristic hazard occurring in a two-phase transaction containing a one-phase resource. This setting configures last participant support (LPS) for the server. Last participant support is an extension to the transaction service that enables a single one-phase resource to participate in a two-phase transaction with one or more two-phase resources.
If the Accept heuristic hazard option is not selected, configure applications individually to accept the heuristic hazard. We can configure applications either when they are assembled, or following deployment using the Last participant support extension pane.
Information Value Data type Check box Default Cleared Range
- Selected
- All applications deployed on the server accept the increased risk of a heuristic outcome.
- Cleared
- Applications must be individually configured to accept the increased risk of an heuristic outcome.
Enable file locking
Specifies whether the use of file locks is enabled when opening the transaction service recovery log.
If we enable this setting, a file lock will be obtained before accessing the transaction service recovery log files. File locking is used to ensure that, in a highly available WAS deployment, only one application server can access a particular transaction service recovery log at any one time. This setting has no effect in a standard deployment where we have not configured high availability support.
This setting requires a compatible network file system, such as Network File System (NFS) version 4, to operate correctly.
Information Value Data type Check box Default Selected
Enable transaction coordination authorization
Specifies whether the secure exchange of transaction service protocol messages is enabled.
When transaction coordination authorization is enabled, the transaction service verifies the caller is permitted to the administrator role before handling the transaction.
This setting has no effect unless we enable WAS security on the server.
Information Value Data type Check box Default Selected
Default WS-Transaction specification level
The default WS-Transaction specification level to use for outbound requests that include a Web Services Atomic Transaction (WS-AT) or Web Services Business Activity (WS-BA) coordination context.
We can choose from WS-Transaction 1.0, WS-Transaction 1.1 or WS-Transaction 1.2. For details of these specifications, see the topics about WS-AT support or WS-BA support in the application server.
The default WS-Transaction specification level is used if a level cannot be determined from the provider policy (the WS-Transaction WS-Policy assertion). This could be, for example, if the policy assertion is not available either from the WSDL of the target web service or from the WS-Transaction policy type of the client, or if the policy assertion is available but more than one specification level is applicable.
Information Value Data type Drop-down list Default 1.0
External WS-Transaction HTTP(S) URL prefix
Select or specify the external WS-Transaction HTTP(S) URL prefix.
- If we are using an intermediary node, such as an HTTP server or Proxy Server for WebSphere, to send requests that comply with the Web Services Atomic Transaction (WS-AT) or Web Services Business Activity (WS-BA) protocols.
- To configure WS-Transaction EndpointReferences to be published with non-default protocol,host or port values in their URLs. For example, when configuring inbound WS-Transaction protocol requests to flow into the application server via a forward proxy, such as the WebSphere Proxy Server, use this field to specify an SSL channel chain when global security is not enabled, or to specify a non-SSL channel when global security is enabled.
If either a specified custom prefix or a selected prefix is configured, that prefix is used. If a specified custom or selected prefix is not set, then, by default, if security is enabled, one of the application server's SSL enabled web container channel chains is automatically selected. Otherwise, a non-SSL enabled web container channel chain is automatically selected.
The setting of the transaction coordination authorization does not have an effect upon whether SSL/non-SSL is selected. For more information about the relationship between transaction coordination authorization and the WS-Transactions, see the topic Configure Web Services Transaction support in a secure environment.
If the intermediary node is not a Proxy Server, the prefix must be unique for each server.
If we are using a Proxy Server, prefixes can be the same for each server in a cluster, because the Proxy Server determines dynamically which server to forward the request to.
Select prefix
Select this option to select the external endpoint URL information to use for WS-AT and WS-BA service endpoints from the list.
Information Value Data type Drop-down list Default None
Specify custom prefix
Select this option to specify the external endpoint URL information to use for WS-AT and WS-BA service endpoints in the field.
Using one of the following formats for the prefix, where host_name and port represent the intermediary node that is an HTTP or HTTPS proxy for the server.
http://host_name:porthttps://host_name:port
Information Value Data type String Default None
Manual transactions
Number of transactions that await manual completion by an administrator.
If there are transactions awaiting manual completion, we can click the Review link to display a list of those transactions on the Transactions needing manual completion panel.
Information Value Data type Integer Default 0
Retry transactions
Number of transactions with some resources being retried.
If there are transactions with resources being retried, we can click the Review link to display a list of those transactions on the Transactions retrying resources panel.
Information Value Data type Integer Default 0
Heuristic transactions
Number of transactions that have completed heuristically.
If there are transactions that have completed heuristically, we can click the Review link to display a list of those transactions on the Transactions with heuristic outcome panel.
Information Value Data type Integer Default 0
Imported prepared transactions
Number of transactions that are imported and prepared but not yet committed.
If there are transactions that have been imported and prepared but not yet committed, we can click the Review link to display a list of those transactions on the Transactions imported and prepared panel.
Information Value Data type Integer Default 0
Additional Properties
Under Additional Properties we can click the Custom properties link to display or change custom properties for our WAS transaction service.
We use Custom properties to specify whether information messages are displayed on the administrative console and written to the SystemOut.log file upon transaction service recovery.
To find out more about WAS transaction service custom properties, see the related link.
Related:
Web services transactions, high availability, firewalls and intermediary nodes Web Services Atomic Transaction support in the application server Web Services Business Activity support in the application server Configure transaction properties for an application server Manage transaction logging for optimum server availability Configure a server to use business activity support Disable file locking Interoperating transactionally between application servers Enable WAS to use an intermediary node for web services transactions Configure Web Services Transaction support in a secure environment Use one-phase and two-phase commit resources in the same transaction Assembling an application to use one-phase and two-phase commit resources in the same transaction Storing and restoring transaction and compensation logs for high availability Transaction service custom properties Transactions needing manual completion Transactions retrying resources Transactions with heuristic outcome Transactions imported and prepared Transaction resources Last participant support extension settings Compensation service settings