IBM Support

Is there a way to trigger the Schedule Agent to start processing all eligible orders while it processes new incoming orders?

Question & Answer


Question

Is there a way to trigger the Schedule Agent to start processing all eligible orders while it processes new incoming orders?

Answer

The way the Schedule Agent works is when it is triggered for first time, the getJobs picks up and schedules all eligible orders at that point in time. If the number of records to buffer is less than the total number of orders that are ready for scheduling, system picks up only the first set of orders (equal to the number of records to buffer) and places messages for each task_q_key along with another getJobs message with the last task_q_key in it.

Once the Schedule Agent completes processing the first set, it picks up the next getJobs message and picks up the task_q records > last task_q_key processed. Similarly, it picks each set until no more new task_q_keys (representing new orders) exist. Once it has processed all the orders, it passes the original trigger/getJobs message to start again from the beginning to pull all eligible orders for scheduling. During this process, orders skipped due to any check are put back into the task_q. The Schedule Agent then picks those up only when it completes one full cycle.
If there is a lag in throughput of the Schedule Agent, then the time taken to complete the cycle will be longer. As a result, there will be a delay in re-visiting old orders (that the Schedule Agent had put back into the task_q for some valid reason and pushed the available_date to a few hours later).

The question is in such a situation:
Will fixing the root cause of slowness for this agent make the Schedule Agent start processing again from the beginning? I.e. Will it pull all the eligible orders for scheduling rather than the new incoming orders? If not, how can I achieve this?
The answer to the above question is 'No'. The Schedule Agent will not start processing from the beginning automatically once the root cause is fixed. The best option to achieve this is by following these steps:
       
  1. Fix the root cause of the problem (it can be in the database, JVM, etc).
  2.    
  3. Stop the Schedule Agent (all JVMs if it is running in multiple JVMs).
  4.    
  5. Flush the JMS queue, so that all get/execute messages will be cleaned out.
  6.    
  7. Start all Schedule Agent JVMs again.

[{"Product":{"code":"SS6PEW","label":"IBM Sterling Order Management"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Component":"Not Applicable","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Historical Number

FAQ3554

Document Information

Modified date:
16 June 2018

UID

swg21517606