[
https://issues.apache.org/jira/browse/ODE-262?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12650760#action_12650760
]
Karthick Sankarachary commented on ODE-262:
-------------------------------------------
There's no language in the BPEL spec that explicitly prohibits the initiation
of multiple instances of a process through duplicate messages. In fact, all of
the standard BPEL faults that relate to inbound message activities (IMAs),
including the <receive> activity, are thrown in the context of a process
instance that's already instantiated. Hence, if you were to send the "init"
message below two or more times, you will end with two or more instances of the
process, despite the fact that they all carry the same name (i.e., "foo") .
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:counter="http://example.com/bpel/counter">
<Header/>
<Body>
<counter:init>
<name>foo</name>
</counter:init>
</Body>
</Envelope>
An "upcoming messages" that is targeted at a non-initiating receive will be
correlated against a running instance. The decision as to which receive the
message is targeted at is made based, in part, on the operation name it
contains. For example, the message below will be sent to the "get" <receive>
activity, which is non-initiating, and hence correlatable:
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:counter="http://example.com/bpel/counter">
<Header/>
<Body>
<counter:get>
<name>foo</name>
</counter:get>
</Body>
</Envelope>
Having said that, it would be nice to be able to say that, at any given point
in time, the correlation is unique across all instances of the process. To that
end, how about if we add an extension attribute (called "unique" below) in the
correlation of the initiating receive?
<correlations>
<correlation set="name" initiate="yes" unique="yes"/>
</correlations>
> Duplicated correlation set values is accepted and creates a second instance
> instead of throwing an exception
> ------------------------------------------------------------------------------------------------------------
>
> Key: ODE-262
> URL: https://issues.apache.org/jira/browse/ODE-262
> Project: ODE
> Issue Type: Bug
> Components: BPEL Runtime
> Affects Versions: 1.1.1
> Environment: Apache ODE 1.1.1 or 1.2
> Tomcat
> The counter example of infoq.
> Reporter: Amin Anjomshoaa
> Assignee: Karthick Sankarachary
> Fix For: 2.0
>
> Original Estimate: 1h
> Remaining Estimate: 1h
>
> The classical counter example of infoq
> (http://www.infoq.com/articles/paul-brown-ode) can be used. Sending the
> "init" message for the second (third, fourth, ... ) time with the value "foo"
> will create a new instance. I was expecting a CorrelationViolation exception
> when the second init message is arriving.
> All upcoming messages are then correlated with the last instance only.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.