I want to invoke a process dynamically. I have a main process and a child process. The child process is deployed on 2 servers 'server1' and 'server2' The main process is also deployed on 'server1' in the same package with the child process.

In the main process, I want to invoke the child process based on an input. If input is '1' then invoke child process from 'server1' else invoke child process from 'server2'.

However, whatever input I give, the main process always invokes child process from 'server1'.
I tried following 2 ways:
1. Setting the child process url to the child process partner link
2. Setting a service reference to the child process partner link

In both the case the result is same. I have checked the activity flow using instance management API. It shows correct path after the IF condition i.e. if input is 1, assign activity 'SetPartner1' is called and if input is 2, assign activity 'SetPartner2' is called. However, always the child process from server1 is invoked.

Please suggest what am I missing.
Attaching the BPEL files.