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.