Compensation service settings
Use this page to manage the compensation service. The compensation service supports server-level configuration for compensation enablement and logging.
To view this administrative console page, click
.Enable service at server startup
Specifies whether the application server attempts to start the compensation service when the server next starts up.
Information | Value |
---|---|
Default | Selected |
Range |
|
Recovery log directory
Specifies a directory path that, if set, overrides the location where the compensation service stores log files for recovery of this server.
A blank value in the server configuration is expanded by the compensation service at startup as the directory profile_root/recoveryLogs/cell_name/node_name/server_name/compensation. The variable profile_root is the home directory for the WebSphere Application Server profile used for the server.
When compensation is used, the WebSphere product stores information that is needed to perform compensation after a system failure on a physical storage device. In a higher application load, this persistence slows down performance of the application server because the application server is dependent on the operating system and the underlying storage systems.
To achieve better performance, move the compensation log files to a storage device with more physical disk drives, or preferably Redundant Array of Independent Disks (RAID) disk drives. When the log files are moved to the file systems on the RAID disks, the task of writing data to the physical media is shared across the multiple disk drives. This sharing provides more concurrent access to make compensation information persistent and provides faster access to that data from the logs. Depending upon the design of the application and storage subsystem, typical performance gains can be 10% to 100% or greater.
- CPU use remains low despite an increase in requests that can be compensated
- Transactions fail with several time outs
- The server stops and needs to be restarted
- The disk on which the server is running shows higher use
In a high availability (HA) environment, each server in a cluster must have a unique compensation log and transaction log directory, so that multiple servers do not attempt to access the same log file. Also, each server in the cluster must be able to access the transaction and compensation log directories of the other servers in the cluster.
Information | Value |
---|---|
Data type | String |
Default | profile_root/recoveryLogs/cell_name/node_name/server_name/compensation Where profile_root is the home directory for the WebSphere Application Server profile used for the server. |
Recommended | Create a file system with at least 3 to 4 disk drives grouped together in a RAID-0 configuration. Create the compensation log on this file system with the default size. When the server is running under load, check the disk input and output. If the disk input and output time is more then 5%, consider adding more physical disks to reduce the value. If the disk input and output is low, but the server load is still high, consider increasing the size of the log files. |
Recovery Log File Size
Specifies the maximum megabyte (MB) size of the recovery log file that the compensation service uses for recovery data. The default value is 5 megabytes.
The amount of data logged by the compensation service is influenced by the number of concurrently-active applications that use compensation, and the size of the application data that is provided as input to the compensation logic.
The compensation service reserves space on a physical storage device at server start for compensation recovery data. If this size is not enough for active compensation data, the log files grow dynamically until they reach the maximum size that this value specifies.
Information | Value |
---|---|
Data type | Integer |
Units | Megabytes |
Default | 5 |
Range | 1 through 2147483647 megabytes |
Although the allowed range for Recovery Log File Size is 1 through 2147483647, the maximum size that is actually possible depends on the maximum size allowed by the operating system for a mapped file.
Compensation handler retry limit
Specifies the maximum number of times that the compensation service retries a compensation handler.
This value specifies the number of times that the compensation
service calls the CompensationHandler
methods compensate()
and close()
.
Each time that the compensation handler is retried, the Compensation
handler retry interval doubles.
Set this value to -1 to retry the compensate()
and close()
methods
indefinitely. Set the value to 0 to never retry either method.
Information | Value |
---|---|
Data type | Integer |
Default | -1 |
Range | -1 or above |
Compensation handler retry interval
Specifies the time interval, in seconds, that the compensation service waits before retrying a compensation handler. Each time that the compensation handler is retried, the interval doubles.
The compensation service retries a compensation handler by recalling
the CompensationHandler
methods compensate()
and close()
if
either throws a RetryCompensationHanderException
.
Information | Value |
---|---|
Data type | Integer |
Units | Seconds |
Default | 30 |
Range | 0 or above |
Additional Properties
Under Additional Properties you can click the Custom properties link to display or change custom properties for your WebSphere Application Server compensation service.
For example, you can use this option to configure a custom property which processes a predefined list of Enterprise Java Beans for which no CoordinationContext should be sent on web service requests. To find out more about compensation service custom properties, see the related link.