If fact, there is a different logging behaviour in post-processing of Java jobs and Shell jobs:

The log output of spooler_task_after() is written to the task log.
In addition the log output of spooler_task_after is written to the order log depending on the type of job you use.

  • Using spooler_task_after() in a monitor of a Shell Job you see log output of_spooler_task_after() in the order log.
  • Using spooler_task_after() in a monitor of a Java Job you see no log output of spooler_task_after() in the order log.

This behaviour is due to the different processing behaviour of tasks in Java jobs and in Shell jobs:

  • A task of a Java job in a job chain can handle more than one order.
    • In a Java job a task is active until the job's idle_timeout is reached and no further order is incoming.
    • If the idle_timeout is not reached and a new order is arriving then a new spooler_process() method is executed in the same task.
    • This is due to performance optimization, because a Java task is bound to one JVM instance.
  • A task in a Shell job is bound to the shell script. When the script ends the task also ends.
    • The order step ends after spooler_process_after() method. After that the order is set to the next state.
    • Therefore an order is known in a process step but not in the task.
    • It is known as an inconsistent behaviour that the output of a shell job's spooler_taks_after() method is visible in the order log.
  • In Java jobs and in Shell jobs you can use spooler_process_after() for order related post-processing.
  • For both job types the log output of spooler_process_after() is written to the order log.