[ 
https://issues.apache.org/jira/browse/ODE-730?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sean Ahn updated ODE-730:
-------------------------

    Description: 
Explanation:

1. An instance is created from a process definition. The instance gets executed 
to the point where it will invoke an external service after a <receive>.
2. A new version of the process is deployed. In the new version, the <invoke> 
is removed and so as the partner link definition.
3. A message that correlates to the instance arrives. The <receive> is executed 
and the instance invokes the external service. The definition of the partner 
links have been changed for the 'process'. The <invoke> on this instance does 
not find the parter link definition anymore.

Options:

1. All the other states of the process with a specific version, such as the 
bpel logics, are embedded to the instance when the instance is serialized. We 
can serialize the definition of the partner links with the instance.
2. When a message arrives, using the service map, we find the target process 
first. Then, it becomes too late when we correlate the process instance using 
the correlation key values. Reverse the logic here so that if the message is 
not an instance creating one, find the instance first and resove the 
process(with the right version).
3. The active processes map contains all processes(with at least one active 
process instance) by the process id(with version). When creating the 
BpelRuntimeContext, look up the active processes map and bind the 
BpelRuntimeContext with the correct process version. When an <invoke> is called 
on the instance, the correct process version will be used by the 
BpelRuntimeContext.

  was:
Explanation:

1. An instance is created from a process definition. The instance executed to 
the point where it will invoke an external service after a <receive>.
2. A new version of the process is deployed. In the new version, the <invoke> 
is removed and so as the partner link definition.
3. A message that correlates to the instance arrives. The <receive> is executed 
and the instance invokes the external service. The definition of the partner 
links have been changed for the 'process'. The <invoke> on this instance does 
not find the parter link definition anymore.

Options:

1. All the other states of the process with a specific version, such as the 
bpel logics, are embedded to the instance when the instance is serialized. We 
can serialize the definition of the partner links with the instance.
2. When a message arrives, using the service map, we find the target process 
first. Then, it becomes too late when we correlate the process instance using 
the correlation key values. Reverse the logic here so that if the message is 
not an instance creating one, find the instance first and resove the 
process(with the right version).
3. The active processes map contains all processes(with at least one active 
process instance) by the process id(with version). When creating the 
BpelRuntimeContext, look up the active processes map and bind the 
BpelRuntimeContext with the correct process version. When an <invoke> is called 
on the instance, the correct process version will be used by the 
BpelRuntimeContext.


> Respect partner role partner link definitions for instances of old process 
> revisions
> ------------------------------------------------------------------------------------
>
>                 Key: ODE-730
>                 URL: https://issues.apache.org/jira/browse/ODE-730
>             Project: ODE
>          Issue Type: Improvement
>          Components: BPEL Runtime
>            Reporter: Sean Ahn
>            Assignee: Sean Ahn
>
> Explanation:
> 1. An instance is created from a process definition. The instance gets 
> executed to the point where it will invoke an external service after a 
> <receive>.
> 2. A new version of the process is deployed. In the new version, the <invoke> 
> is removed and so as the partner link definition.
> 3. A message that correlates to the instance arrives. The <receive> is 
> executed and the instance invokes the external service. The definition of the 
> partner links have been changed for the 'process'. The <invoke> on this 
> instance does not find the parter link definition anymore.
> Options:
> 1. All the other states of the process with a specific version, such as the 
> bpel logics, are embedded to the instance when the instance is serialized. We 
> can serialize the definition of the partner links with the instance.
> 2. When a message arrives, using the service map, we find the target process 
> first. Then, it becomes too late when we correlate the process instance using 
> the correlation key values. Reverse the logic here so that if the message is 
> not an instance creating one, find the instance first and resove the 
> process(with the right version).
> 3. The active processes map contains all processes(with at least one active 
> process instance) by the process id(with version). When creating the 
> BpelRuntimeContext, look up the active processes map and bind the 
> BpelRuntimeContext with the correct process version. When an <invoke> is 
> called on the instance, the correct process version will be used by the 
> BpelRuntimeContext.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to