Scheduler configuration parameters

You can change scheduler parameters to control behavior. You can control behaviors such as expiry time, waiting time between checks for jobs, and the number of threads to allocate to an application type.

Scheduler configuration properties

The general scheduler configuration parameters in WebSphere Commerce Version 7 are stored in the WebSphere Commerce configuration file. Examples of the scheduler configuration parameters within this file are shown in the following XML sample:
<component 
  compClassName="com.ibm.commerce.scheduler.SchedulerComm" 
  enable="true" name="Scheduler"> 
  <property autoClean="off" broadcastExpireTime="1800" 
    contextSetName="Authoring" cycleTime="600" display="false"/> 
</component> 
The scheduler properties that are defined within the <properties/> element within the scheduler <component></component> element include the following properties:
autoclean
When the value of this property is set to "on", the entries within the SCHSTATUS database table that the scheduler creates are deleted when the jobs complete successfully. The entries are not deleted when the jobs fail. When this property is set to "off", these entries remain within the database table until the CleanJob command is called. The default value is "off".
broadcastExpireTime
This property sets the lifespan (in seconds) of a broadcast job.
contextSetName
The identifier of the business context set to use when a scheduler job runs.
cycleTime
Sets the maximum time (in seconds) that the schedule can idle before the scheduler checks for waiting jobs.
display
For internal usage only.
You can also set the following property for the scheduler:
transactionTimeout
Sets a timeout for the scheduler component. For example:
<component 
  compClassName="com.ibm.commerce.scheduler.SchedulerComm" 
  enable="true" name="Scheduler">
  <property autoClean="off" broadcastExpireTime="1800" transactionTimeout="600"
    conntextSetName="Authoring" cycleTime="600" display="false"/>
</component>

The scheduler transaction timeout is constrained by the value of the maximum transaction timeout that is set within the WebSphere Application Server Administration Console. Within the Administration Console, you can disable the maximum transaction timeout by specifying a value of 0. Then, set the transaction lifetime timeout to the timeout value that is used for non-scheduler requests. For more information about transaction service settings, see Transaction service settings.

Work manager for the scheduler

The work manager is used in WebSphere Commerce Version 7 for the WebSphere Commerce Scheduler, WebSphere MQ Listener, and other components, instead of creating Java threads. By using the work manager, administrators can use a consistent interface to manage these additional asynchronous processes. The WebSphere Application Server manages these additional processes, which are part of a Java Platform, Enterprise Edition application.

The WebSphere Commerce ThreadManagement component uses the factory approach to create the correct thread management implementation according to the current environment.

In WebSphere Commerce Version 7, the applicationType is replaced by the Name property of a work manager, and the maxNumofThreads is replaced by the Maximum number of threads property of a work manager.

You can modify the scheduler application types within the WebSphere Application Server Administration Console:
  1. Open the WebSphere Application Server administration console.
  2. Expand Resources > Asynchronous beans > Work manager. Click Work managers > Work manager name.
  3. In the Thread pool properties section, enter the value for the Maximum number of threads property.
  4. Save your changes.
In contrast, the scheduler application types in WebSphere Commerce Version 6 were stored in the Updating the WebSphere Commerce configuration file. Examples of the scheduler configuration parameters that were stored in this file are shown in the following XML sample:

<component compClassName="com.ibm.commerce.scheduler.SchedulerComm" enable="true" name="Scheduler">
  <property autoClean="off" broadcastExpireTime="1800" contextSetName="Authoring" cycleTime="600" display="false"> 
    <applicationType applicationName="default" maxNumofThreads="10"/> 
    <applicationType applicationName="broadcast" maxNumofThreads="10"/> 
    <applicationType applicationName="auction" maxNumofThreads="10"/> 
    <applicationType applicationName="inventory" maxNumofThreads="10"/> 
  </property>
</component>