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 Servers > Application servers > server_name > [Container Settings] Container services > Compensation service.
Specifies whether the application server attempts to start the compensation service when the server next starts up.
Default | Selected |
Range |
|
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 due to its dependency 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 RAID disk drives. When the log files are moved to the file systems on the raided disks, the task of writing data to the physical media is shared across the multiple disk drives. This sharing provides more concurrent access to persist compensation information and faster access to that data from the logs. Depending upon the design of the application and storage subsystem, performance gains can range from 10% to 100%, or even more in some cases.
This change is applicable only to the configuration where the application has compensation configured. Consider setting this property when the application server shows one or more of following signs:
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 raided 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 lower 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. |
Specifies the maximum megabyte 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 sufficient for active compensation data, then the log files grow dynamically until they reach the maximum size specified by this 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.
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().
Set this value to -1 to retry the compensate() and close() methods indefinitely. Set the value to 0 to never retry either method.
Data type | Integer |
Default | -1 |
Range | -1 or above |
Timeime interval, in seconds, that the compensation service waits before retrying a compensation handler.
The compensation service retries a compensation handler by recalling the CompensationHandler methods compensate() and close() if either throws a RetryCompensationHanderException.
Data type | Integer |
Units | Seconds |
Default | 30 |
Range | 0 or above |