I want to understand how TN processing rule for executing service works.
Service A(success-failure-done sequence) calls tn.receive.
Service B(success-failure-done sequence) is specified in the processing rule to be executed.
If service B fails will the control go back to service A (catch block).If not, is there a way to archive this setup.
It depends on the processing rule. If set to run synchronously, control will return to Service A from tn.receive after Service B completes. If async, then control will return to Service A from tn.receive after TN has spawned a thread to run Service B.
I have run some tests with the above setup. looks like the control moves to the next step after tn.receive Rather then going into catch block(A)
I can see the getlasterror message in the pipeline from service B
That’s right. If Service B has a try/catch block it will never throw an error even if Service A called it directly. Everything that B leaves in the pipeline will be visible within A, as long as B is invoked synchronously in the rule.