WebSphere Commerce EnterpriseWebSphere Commerce Professional

Troubleshooting: Timeouts occur during task group approval

Approving a task group with large amounts of content changes might result in a transaction timeout. The resulting task group will have a status of Commit failed.

Problem

Approving a task group with a large amount of content changes associated with it, you might experience a transaction timeout exception during task group approval. The following message is displayed:

javax.transaction.TransactionRolledbackException: Transaction is ended due to timeout

Also, a message similar to the following appears in the log file:

[5/30/12 10:52:18:997 EDT] 00000048 TimeoutManage I WTRN0006W: Transaction 000001379E3714D300000001000025EDC220BF9BF4EFC4C5BDF8947554FC92D47E9F7956000001379E3714D300000001000025EDC220BF9BF4EFC4C5BDF8947554FC92D47E9F795600000001 has timed out after 300 seconds.

In Management Center, the task group you tried to approve has a status of ’Commit failed’.

Solution

Have your Administrator increase the transaction timeout for the scheduler. The value must be large enough to handle the amount of data that is part of the workspace approval. By default, scheduler jobs do not have the transaction timeout specified and thus inherit the settings of Total transaction lifetime timeout, Maximum transaction timeout, or both from the WebSphere Administration Transaction services settings.

You can increase the scheduler timeout by setting the scheduler transactionTimeout within the wc-server.xml. For example, in the following code block the scheduler timeout value is increased to 3600 seconds:

compClassName="com.ibm.commerce.scheduler.SchedulerComm"
enable="true" name="Scheduler">
<property autoClean="off" broadcastExpireTime="1800" transactionTimeout="3600"
contextSetName="Authoring" cycleTime="600" display="false">
</component>

The scheduler transactionTimeout value you use depends on the amount of data that your business users conduct under the task group.

You also need to ensure that the Maximum transaction timeout setting under WebSphere Application Server is large enough to handle the transaction timeout of the scheduler.

To allow individual scheduler jobs to override the scheduler transaction timeout without being limited to the maximum transaction timeout value and the total transaction timeout value:
  1. Open the administrative console.
  2. Click <server> > Container Settings > Container Services > Transaction Service
  3. Set Maximum transaction timeout = 0 seconds. Alternatively, set maximum transaction timeout to a value greater than or equal to the time you plan to set for the scheduler timeout.

After you set these values, restart the server. Direct your business users to log in to the Workspace Management tool as Workspace Manager or Approver. After they log in, they can reactivate the task group by selecting Return to active. The tasks become active and you can repeat the approval process by completing each task and approve the approval task again.