Products | Versions |
---|---|
TIBCO ActiveMatrix BusinessWorks | - |
Not Applicable | - |
Question: According to the ActiveMatrix BusinessWorks version 6.x documentation, a sub-processes can be invoked as an inline or non-inline processes. For non-inline sub process calls, a new job is created which is executed in a new thread. An on-inline invocation is similar to the "spawn" option in ActiveMatrix BusinessWorks version 5.x. With the configuration above, it is expected that the execution of the main process continues in parallel with the called non-inline subprocess. When the sub process is configured with request and response, the main process still waits for the non-inline sub process to finish.
This is expected behavior.
Basically, when TIBCO ActiveMatrix BusinessWorks developers wants to make sub process call, either called sub process returns the response which they can use in caller i.e. in parent process or called sub process just accepts the input and continue the further processing without getting back to parent process.
So, while calling the sub processes which returns response, parent or caller process has to wait for child's completion. In order to achieve this, we have provided option to call the sub process in "Inline" way. On the other hand, sub process which returns nothing, caller or parent process does not wait for child's completion, "Non-inline" process call helps to achieve this.
Moving to the question above, if sub process is called in 'Non-inline' way i.e. sub process should be executed on separate thread, ideally main process should not wait for sub process to complete its execution, the main process' and called process' execution should go in parallel, this is not happening as said above.
The reason is, while calling the sub process in 'Non-Inline' way, developers were still expecting the output from sub process. Since their sub process was designed to respond with output, caller will surely wait irrespective of inline or non-inline option. To have the parallel execution of both caller and called process with 'Non-inline' option, design the sub process which just accept the input and does not return any output i.e. one way operation.