ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sathwik B P <sathwik...@gmail.com>
Subject Re: Dynamically invoke a child process
Date Tue, 13 Sep 2016 15:04:18 GMT
Hi,

ODE uses an optimization technique for Process to Process communication in
which the communication is designed to happen as an  object to object call
on the local machine. It doesn't go through the integration layer (axis2).
This optimization overcomes the overhead of serialization and
de-serialization of messages over the wire. Henceforth you may be
experiencing this behaviour where the child process on the same local
machine is being invoked.

If you do not want this optimization then you can override this behaviour
by adding an attribute usePeer2Peer="false" on the invoke element in
deploy.xml. The link below shows an example of it
https://github.com/apache/ode/blob/master/axis2-war/src/
test/resources/TestNoP2P/deploy.xml#L28

Note: By overriding this optimization all calls to the child process even
on the local machine will go via the integration layer.

Kindly refer the link (http://ode.apache.org/endpoint-references.html) to
pass in the EPR to the partnerlink. Apart from the first approach where a
URL string is assigned to the partnerlink, try to use any other approach in
the document.

Let is know how it goes.

There might be a bug in the first approach specified in the (
http://ode.apache.org/endpoint-references.html) link. Can you raise a JIRA
please and attach your process to it.

regards,
sathwik

On Mon, Sep 12, 2016 at 4:59 PM, Jit K <jkfrm8@gmail.com> wrote:

> Hi,
>
> 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.
>
> Thanks.
> JK
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message