WS BPEL public review issues list

This file last updated 22:51 31 Oct 2006 (UTC)

This is the issues list for the public review of the WS-BPEL 2.0 specification, maintained on behalf of the OASIS Web Services Business Process Execution Language Technical Committee. This review issues list is posted as a TC document to the OASIS WSBPEL TC pages on a regular basis (if it has changed). The current edition, as a TC document, is the most recent version of the document Current WS-BPEL Review Issues List in the "Issues" folder of the WSBPEL TC document list - the uri for this document includes the document number generated by the upload process. The list editor's working copy, which will always at least as recent as the formal upload and will usually include later updates, is available at this constant URI (which can thus be used as the base for the anchors to individual issue entries of the form "IssueRNN").

Comments received on the public comment list will generally be made issues on this list - the Origin field is used to identify these issues. Members of the TC can send issue proposals to the chairs, copying the issue list editor peter@furniss.co.uk. (The Submitter field identifies the TC member submitting the issue).

The issues list used in progressing the WS-BPEL spec to public review is now closed.

If messages sent to the main TC list (wsbpel@lists.oasis-open.org) discussing an issue (including whether the issue should be accepted) have subject lines that begin Issue - <issue-id> - , or are replies to such, the archived copy of that message on the wsbpel list should be picked up by the software that revises this list and added to the Links section of the issue.

Unresolved issues (open or resolution proposed)

IssueIDTitleStatusProposed resolutionVote announcement
Issue R1keepSrcElement behavior for virtual <assign>'sresolution proposedMark Ford, 25 Oct 2006 
Issue R3Appendix H - earlier members need to be addedresolution proposedDiane Jordan, 31 Oct 2006 
Issue R16confusing description of Message Exchange Handlingresolution proposedDanny van der Rijn, 26 Oct 2006 
Issue R21Static Analysis requirement for Variable Reference Resolution, Section 12.7.1 and Appendix Bresolution proposedMonica J. Martin, 23 Oct 2006 

Proposed issues - the TC has yet to decide if these should be opened for discussion or can be dealt with summarily

IssueIDTitleStatusSubmitterOriginDate submittedDate added
Issue R24Externally referenced locally-scoped partnerLinksreceived Public comment - Jim Clunes, 16 October 200617 October 200617 Oct 2006
Issue R25wording for conflictingReceive and ambiguousReceivereceived Public comment - Marlon Dumas, 18 Oct 200618 October 200618 Oct 2006
Issue R26Default Compensation Order ConflictreceivedDieter Koenig 27 October 200630 Oct 2006
Issue R27Faults and Parallelism in Termination HandlersreceivedDieter Koenig 27 October 200630 Oct 2006

There are no resolved issues awaiting editing into spec

Issues changed or added since 22 Oct 2006

IssueIDTitleStatusIn specDate addedLast changed
Issue R1keepSrcElement behavior for virtual <assign>'sresolution proposed 4 Aug 200630 Oct 2006
Issue R2Zero or Negative Duration Valuesresolved24 Oct 200610 Sep 200625 Oct 2006
Issue R3Appendix H - earlier members need to be addedresolution proposed 10 Sep 200631 Oct 2006
Issue R8Create separate isolation domain for isolated scope's compensation handlerresolved26 Oct 200618 Sep 200631 Oct 2006
Issue R9Remove LED Comment on eventHandlers declarationresolved24 Oct 200619 Sep 200625 Oct 2006
Issue R10Definition of IMA scoperesolved24 Oct 200619 Sep 200625 Oct 2006
Issue R13BPEL partner link assignmentsresolvedno change20 Sep 200625 Oct 2006
Issue R14Reference source not found in section 12.4resolved24 Oct 200621 Sep 200625 Oct 2006
Issue R15Fix description of abnormal process completionresolved26 Oct 200626 Sep 200631 Oct 2006
Issue R16confusing description of Message Exchange Handlingresolution proposed 26 Sep 200631 Oct 2006
Issue R17Schema for abstract processes is not validresolved24 Oct 20064 Oct 200625 Oct 2006
Issue R18Uniqueness of WSDL Faults resolved26 Oct 200610 Oct 200630 Oct 2006
Issue R19Syntax-fault in example on page 168 resolved24 Oct 200611 Oct 200625 Oct 2006
Issue R20Fault handling example in Section 12.5 is incorrectresolved24 Oct 200616 Oct 200625 Oct 2006
Issue R21Static Analysis requirement for Variable Reference Resolution, Section 12.7.1 and Appendix Bresolution proposed 16 Oct 200625 Oct 2006
Issue R22<rethrow> of Fault Name and Fault Data Where Presentresolved24 Oct 200617 Oct 200625 Oct 2006
Issue R23Clarification on Schema Variable Validationresolved24 Oct 200617 Oct 200625 Oct 2006
Issue R25wording for conflictingReceive and ambiguousReceivereceived 18 Oct 200630 Oct 2006
Issue R26Default Compensation Order Conflictreceived 30 Oct 200631 Oct 2006
Issue R27Faults and Parallelism in Termination Handlersreceived 30 Oct 200631 Oct 2006

All issues, in order

IssueIDTitleStatusChange statusIn specDate addedLast changed
Issue R1keepSrcElement behavior for virtual <assign>'sresolution proposed  4 Aug 200630 Oct 2006
Issue R2Zero or Negative Duration Valuesresolvedsubstantive24 Oct 200610 Sep 200625 Oct 2006
Issue R3Appendix H - earlier members need to be addedresolution proposed  10 Sep 200631 Oct 2006
Issue R4missing namespace prefix declaration in Section 15.4.1resolvededitorial21 Sep 200615 Sep 20064 Oct 2006
Issue R5Wrong namespace in Section 13.1.2resolvededitorial21 Sep 200615 Sep 20064 Oct 2006
Issue R6TOC is messed up in PDF versionresolvededitorialNo editing required15 Sep 20064 Oct 2006
Issue R7Figure 1 truncated in XHTMLresolvededitorialNo editing required15 Sep 20064 Oct 2006
Issue R8Create separate isolation domain for isolated scope's compensation handlerresolved 26 Oct 200618 Sep 200631 Oct 2006
Issue R9Remove LED Comment on eventHandlers declarationresolvededitorial24 Oct 200619 Sep 200625 Oct 2006
Issue R10Definition of IMA scoperesolvededitorial24 Oct 200619 Sep 200625 Oct 2006
Issue R11Section 12.7 Duplicated (Two Sections)resolvededitorial21 Sep 200620 Sep 20064 Oct 2006
Issue R12Isolated Scopesresolvededitorial21 Sep 200620 Sep 20064 Oct 2006
Issue R13BPEL partner link assignmentsresolved no change20 Sep 200625 Oct 2006
Issue R14Reference source not found in section 12.4resolvededitorial24 Oct 200621 Sep 200625 Oct 2006
Issue R15Fix description of abnormal process completionresolved 26 Oct 200626 Sep 200631 Oct 2006
Issue R16confusing description of Message Exchange Handlingresolution proposed  26 Sep 200631 Oct 2006
Issue R17Schema for abstract processes is not validresolvedsubstantive24 Oct 20064 Oct 200625 Oct 2006
Issue R18Uniqueness of WSDL Faults resolvedsubstantive26 Oct 200610 Oct 200630 Oct 2006
Issue R19Syntax-fault in example on page 168 resolvededitorial24 Oct 200611 Oct 200625 Oct 2006
Issue R20Fault handling example in Section 12.5 is incorrectresolvededitorial24 Oct 200616 Oct 200625 Oct 2006
Issue R21Static Analysis requirement for Variable Reference Resolution, Section 12.7.1 and Appendix Bresolution proposed  16 Oct 200625 Oct 2006
Issue R22<rethrow> of Fault Name and Fault Data Where Presentresolvededitorial24 Oct 200617 Oct 200625 Oct 2006
Issue R23Clarification on Schema Variable Validationresolvededitorial24 Oct 200617 Oct 200625 Oct 2006
Issue R24Externally referenced locally-scoped partnerLinksreceived  17 Oct 200618 Oct 2006
Issue R25wording for conflictingReceive and ambiguousReceivereceived  18 Oct 200630 Oct 2006
Issue R26Default Compensation Order Conflictreceived  30 Oct 200631 Oct 2006
Issue R27Faults and Parallelism in Termination Handlersreceived  30 Oct 200631 Oct 2006

The colour of the issue title is determined by the status: maroon=resolution proposed (4 issues), green=resolved (19 issues), purple=received (4 issues). (Those numbers count sub-issues as separate.) According to the TC issue procedures (issues process document), the formal status values are "open" and "resolved". The "In spec" entry in resolved issues indicates that the required editting has been checked into the repository version of the text, on or before the date given. Note that such changes are NOT reflected in the fixed public review text.


Issue R1: keepSrcElement behavior for virtual <assign>'s

Status: resolution proposed
Note: This issue has been transferred from the original main list. As was received after 21 July 2006, in accordance with a TC decision, it was deferred until after the public review started.
Date added: 4 Aug 2006
Date submitted: 04 August 2006
Submitter: Mark Ford
Description:

The recent work on Issue 280 got me thinking about keepSrcElement as it relates to the virtual assigns used to describe the behavior of <fromParts>, <toParts>, and receiving into or transmitting an element variable.

Section 10.3 describes invoking with an element variable as equivalent to declaring an anonymous temporary WSDL message variable and using the element’s value to “set the value of the part”. It is reasonable to assume that the spec here is referencing the <assign> rules but it is not explicit.

Section 10.3.1 describes invoking with <toParts> as working as a single virtual <assign> using the same rules as the real <assign>. There is a normative MUST in this section which precludes the possibility of applying the keepSrcElement behavior since it is off by default on the real <copy>.

The lack of the keepSrcElement behavior for these virtual <assign>’s means that the root element of the variable being sent or received may change when it is copied to or from the WSDL message. This is definitely the behavior with <fromPart> and <toPart> and could be interpreted as being the behavior of the element variants of web service activities.
Submitter's proposal: I’d like to see the keepSrcElement behavior enabled for these virtual <assign>’s. Dieter has suggested adding “keepSrcElement” to the <fromPart> and <toPart> elements to control this behavior. I’m agreeable to this but we still need to handle the element style invokes and receives. If we want the behavior to be configurable as opposed to always enabled then perhaps we could add the keepSrcElement attribute to the web service activities as well.
Proposed resolution: Mark Ford, 25 Oct 2006
Links: Announcement, 7 Aug 2006     Mark Ford, 6 Oct 2006     Proposed resolution (Mark Ford, 25 Oct 2006)     Danny van der Rijn, 25 Oct 2006     Mark Ford, 25 Oct 2006     Danny van der Rijn, 25 Oct 2006     Mark Ford, 25 Oct 2006
Changes: 4 Aug 2006 - new issue;    16 Aug 2006 - fields: Links;    10 Sep 2006 - fields: Status, Note;    20 Sep 2006 - fields: Status;    6 Oct 2006 - fields: Links;    25 Oct 2006 - fields: Links, Status, Proposed resolution;    30 Oct 2006 - fields: Links


Issue R2: Zero or Negative Duration Values

Status: resolved
Change status: substantive
In spec: 24 Oct 2006
Date added: 10 Sep 2006
Date submitted: 07 September 2006
Submitter: Dieter Koenig
Description: The XML Schema data type "duration" allows zero or negative values (see http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#duration): "An optional preceding minus sign ('-') is allowed, to indicate a negative duration".

The WS-BPEL 2.0 specification (public review draft) is silent w.r.t. the behavior if a specified duration has a zero or negative value.
Submitter's proposal: I propose that language is added which specifies that

  1. wait and onAlarm are immediately executed if a specified duration has a zero or negative value
  2. zero or negative values are disallowed for repeatEvery
10.7. Delayed Execution - Wait Add to the end of the first paragraph: "If a specified duration value is zero or negative then the wait activity completes immediately."

11.5. Selective Event Processing – Pick Add to the end of the second bullet in the second paragraph: "If a specified duration value is zero or negative then <onAlarm> event occurs immediately. Again, the handling of race conditions is implementation dependent."

12.7.2. Alarm Events Add after the fourth sentence in the first paragraph: "If the specified duration value is zero or negative then the <onAlarm> event is executed immediately.". Add to the end of the first paragraph: "If the specified duration value is zero or negative then the standard fault bpel:invalidExpressionValue MUST be thrown."

12.7.4.1. Alarm Events Add to the end of the first paragraph: "If the specified duration value is zero or negative then the standard fault bpel:invalidExpressionValue MUST be thrown."


Resolution: Proposed in Dieter Koenig1, 26 Sep 2006, agreed conf call, 4 Oct 2006

Text as in Dieter Koenig1, 26 Sep 2006
Links: Announcement, 10 Sep 2006     Proposed resolution (Dieter Koenig1, 21 Sep 2006)     Proposed resolution (Dieter Koenig1, 26 Sep 2006)
Changes: 10 Sep 2006 - new issue;    19 Sep 2006 - fields: Links;    20 Sep 2006 - fields: Status;    21 Sep 2006 - fields: Links, Status, Proposed resolution;    26 Sep 2006 - fields: Links, Status, Proposed resolution;    4 Oct 2006 - fields: Change status, Status, Proposed resolution, Resolution;    25 Oct 2006 - fields: In spec


Issue R3: Appendix H - earlier members need to be added

Status: resolution proposed
Date added: 10 Sep 2006
Date submitted: 08 September 2006
Submitter: Diane Jordan
Description: Appendix H, listing the members of the TC during the progression of the WS-BPEL v2.0 document, needs to be corrected to pick up earlier members.

Among others, the following original BPEL4WS 1.1 authors are not listed - (checks need to be made whether they actually joined the TC)


Proposed resolution: Diane Jordan, 31 Oct 2006
Links: Announcement, 10 Sep 2006     Proposed resolution (Diane Jordan, 31 Oct 2006)
Changes: 10 Sep 2006 - new issue;    19 Sep 2006 - fields: Links;    20 Sep 2006 - fields: Status;    31 Oct 2006 - fields: Links, Status, Proposed resolution

Issue R4: missing namespace prefix declaration in Section 15.4.1

Status: resolved
Change status: editorial
In spec: 21 Sep 2006
Date added: 15 Sep 2006
Date submitted: 15 September 2006
Submitter: Mark Ford
Description: The namespace prefix “vprop” is not declared in the sample WSDL for the Auction Service.
Submitter's proposal: The prefix should be http://docs.oasis-open.org/wsbpel/2.0/varprop
Resolution: Decided conf call 20 Sep 2006 As submitter's proposal
Links: Announcement, 15 Sep 2006
Changes: 15 Sep 2006 - new issue;    19 Sep 2006 - fields: Links;    20 Sep 2006 - fields: Status, Resolution;    21 Sep 2006 - fields: In spec;    4 Oct 2006 - fields: Change status

Issue R5: Wrong namespace in Section 13.1.2

Status: resolved
Change status: editorial
In spec: 21 Sep 2006
Date added: 15 Sep 2006
Date submitted: 15 September 2006
Submitter: Mark Ford
Description: This is described as Action Item 160.

From the Action Item:

This section has a process snippet that introduces the "abstractProcessProfile" attribute. The xmlns for the process element is http://docs.oasis-open.org/wsbpel/2.0/process/executable but it should be http://docs.oasis-open.org/wsbpel/2.0/process/abstract

Resolution: Decided conf call 20 Sep 2006 As submitter's proposal
Links: Announcement, 15 Sep 2006
Changes: 15 Sep 2006 - new issue;    19 Sep 2006 - fields: Links;    20 Sep 2006 - fields: Status, Resolution;    21 Sep 2006 - fields: In spec;    4 Oct 2006 - fields: Change status

Issue R6: TOC is messed up in PDF version

Status: resolved
Change status: editorial
In spec: No editing required
Date added: 15 Sep 2006
Date submitted: 15 September 2006
Submitter: Danny van der Rijn
Description:

The highest page number that the PDF TOC refers to is '3'

The TOC should have been regenerated prior to creating the PDF.
Resolution: Decided conf call 20 Sep 2006
Sent to editors for correction

Since the correction only concerns the final production of the alternative forms of the document, no editing is required.
Links: Announcement, 15 Sep 2006
Changes: 15 Sep 2006 - new issue;    19 Sep 2006 - fields: Links;    20 Sep 2006 - fields: Status, Resolution;    21 Sep 2006 - fields: In spec, Resolution;    4 Oct 2006 - fields: Change status


Issue R7: Figure 1 truncated in XHTML

Status: resolved
Change status: editorial
In spec: No editing required
Date added: 15 Sep 2006
Date submitted: 15 September 2006
Submitter: John Evdemon
Description: Figure 1 in the XHTML version is truncated. All past HTML versions have truncated this figure too. Very strange.
Resolution: Decided conf call 20 Sep 2006
Sent to editors for correction

Since the correction only concerns the final production of the alternative forms of the document, no editing is required.
Links: Announcement, 15 Sep 2006
Changes: 15 Sep 2006 - new issue;    19 Sep 2006 - fields: Links;    20 Sep 2006 - fields: Status, Resolution;    21 Sep 2006 - fields: In spec, Resolution;    4 Oct 2006 - fields: Change status


Issue R8: Create separate isolation domain for isolated scope's compensation handler

Status: resolved
In spec: 26 Oct 2006
Date added: 18 Sep 2006
Date submitted: 18 September 2006
Submitter: Mark Ford
Description: Section 12.7 Isolated Scopes describes the compensation handler for an isolated scope as not sharing the isolation domain for its associated scope. This is correct but it fails to define whether the compensation handler has its own separate isolation domain. The result is that the compensation handler for an isolated scope is not isolated. This leads to the inconsistency where compensation handlers nested within an isolated scope will execute within an isolation domain only if called by the isolated scope’s fault or termination handler and not if called by the isolated scope’s compensation handler. This inconsistency was first raised as part III of Issue 10 but for some reason it was not part of the final proposed resolution.
Resolution: Proposed in Alex Yiu, 20 Oct 2006, agreed conf call Oct 25 2006

As the proposal in Alex Yiu, 20 Oct 2006
Links: Announcement, 18 Sep 2006     Alex Yiu, 4 Oct 2006     Mark Ford, 6 Oct 2006     Proposed resolution (Alex Yiu, 10 Oct 2006)     Proposed resolution (Alex Yiu, 18 Oct 2006)     Dieter Koenig1, 18 Oct 2006     Alex Yiu, 20 Oct 2006
Changes: 18 Sep 2006 - new issue;    19 Sep 2006 - fields: Links;    20 Sep 2006 - fields: Status;    4 Oct 2006 - fields: Links;    6 Oct 2006 - fields: Links;    11 Oct 2006 - fields: Links, Status, Proposed resolution;    18 Oct 2006 - fields: Links, Status, Proposed resolution;    21 Oct 2006 - fields: Links;    31 Oct 2006 - fields: Status, In spec, Proposed resolution, Resolution


Issue R9: Remove LED Comment on eventHandlers declaration

Status: resolved
Change status: editorial
In spec: 24 Oct 2006
Date added: 19 Sep 2006
Date submitted: 15 September 2006
Submitter: Danny van der Rijn
Description: The following is in the XSD declaration of eventHandlers

<xsd:documentation>
       Child element onAlarm needs to be a LED, because there is another
       onAlarm element defined for the pick activity.
</xsd:documentation> 

This is only interesting to XSD authors, and so probably not for the general audience.
Submitter's proposal: Remove the comment
Resolution: Proposed in Diane Jordan, 4 Oct 2006, agreed conf call 4 Oct 2006

Text as in Diane Jordan, 4 Oct 2006
Links: Announcement, 19 Sep 2006     Danny van der Rijn, 19 Sep 2006     Danny van der Rijn, 20 Sep 2006     Alex Yiu, 20 Sep 2006     Diane Jordan, 4 Oct 2006
Changes: 19 Sep 2006 - new issue;    19 Sep 2006 - fields: Links;    20 Sep 2006 - fields: Status, Links;    4 Oct 2006 - fields: Status, Change status, Resolution, Links;    25 Oct 2006 - fields: In spec


Issue R10: Definition of IMA scope

Status: resolved
Change status: editorial
In spec: 24 Oct 2006
Date added: 19 Sep 2006
Date submitted: 18 September 2006
Submitter: Alex Yiu
Description:

I would like to request to open a review issue to improve the ease of understanding of the spec. The discussion was under the thread of subject: "A possible issue concerning the definition of IMA scope" started by Ron Ten-Hove.

If the issue is passed, we would just need to refine some cross-referencing of terms and bookmark.
Submitter's proposal:

Besides 10.4.1, another relevant part of IMA and message exchange handling is in section 12.2:

12.2. Message Exchange Handling

When the primary activity and the event handlers of a <scope> complete then all Web service interactions dependent on partner links or message exchanges declared inside of the <scope> need to be completed. An orphaned IMA occurs when an IMA using a partner link or message exchange, declared in the completing <scope> or its descendants, remains open. ....

I would suggest to do a brief update in 10.1.4 from:

Further if an open IMA goes out of scope prior to being closed
to:
Further if an open IMA goes out of scope (known as an orphaned IMA) prior to being closed
from:
(see section 12. Scopes for other details of bpel:missingReply).
to:
(see section 12.2 Message Exchange Handling for other details of bpel:missingReply and orphaned IMA).

Resolution: Proposed in Alex Yiu, 22 Sep 2006, agreed conf call, 4 Oct 2006

Text as in Alex Yiu, 22 Sep 2006
Links: Ron Ten-Hove, 23 Aug 2006     Danny van der Rijn, 23 Aug 2006     Alex Yiu, 23 Aug 2006     Monica J. Martin, 23 Aug 2006     Announcement, 19 Sep 2006     proposed resolution
Changes: 19 Sep 2006 - new issue;    19 Sep 2006 - fields: Links;    20 Sep 2006 - fields: Status;    25 Sep 2006 - fields: Proposed resolution, Status, Links;    4 Oct 2006 - fields: Change status, Status, Proposed resolution, Resolution;    25 Oct 2006 - fields: In spec


Issue R11: Section 12.7 Duplicated (Two Sections)

Status: resolved
Change status: editorial
In spec: 21 Sep 2006
Date added: 20 Sep 2006
Date submitted: 20 Sep 2006
Submitter: Monica J. Martin
Description: There are actually two Sections 12.7:

12.7. Event Handlers 12.7. Isolated Scopes
Proposed resolution: Verify and correct. Also, may need to verify and update other related section reference inconsistencies. Note, this Section 12.7 numbering change may affect at a minimum:

  1. Sections subsequent to 12.7 Event Handlers
  2. All references through the specification that reference those sections in 1. including any for static analysis where applicable.

Resolution: Decided conf call 20 Sep 2006 Sent to editors for correction
Links: Announcement, 20 Sep 2006
Changes: 20 Sep 2006 - new issue;    20 Sep 2006 - fields: Status, Resolution, Links;    21 Sep 2006 - fields: In spec;    4 Oct 2006 - fields: Change status

Issue R12: Isolated Scopes

Status: resolved
Change status: editorial
In spec: 21 Sep 2006
Date added: 20 Sep 2006
Date submitted: 20 Sep 2006
Submitter: Dieter Koenig1
Description: The first paragraph of Section 12.7. reads as follows:
The isolated attribute of a scope, when set to "yes", provides control of concurrent access to shared resources: variables, partner links, and control dependency links. Its default value is "no". Such a scope is called an isolated scope.
The last two sentences suggest that a scope with the default value "no" for the isolated attribute is called an isolated scope, which is not the intention.
Submitter's proposal: Reverse the order of the last two sentences of this paragraph and revise the new last sentence.
The isolated attribute of a scope, when set to "yes", provides control of concurrent access to shared resources: variables, partner links, and control dependency links. Such a scope is called an isolated scope. The default value of the isolated attribute is "no".

Resolution: Decided conf call 20 Sep 2006 As submitter's proposal
Links: Announcement, 20 Sep 2006
Changes: 20 Sep 2006 - new issue;    20 Sep 2006 - fields: Status, Resolution, Links;    21 Sep 2006 - fields: In spec;    4 Oct 2006 - fields: Change status

Issue R13: BPEL partner link assignments

Status: resolved
In spec: no change
Date added: 20 Sep 2006
Origin: Public comment - Andi Abes, 20 Sep 2006
Date submitted: 20 September 2006
Description: I'm trying to understand the semantics of assignment to and from partner links in BPEL, and the spec left me with a few open questions.

For the purpose of discussion, I'm considering a simple "router" process (R). The one operation exposed by this process includes 2 parts:

  1. an amount (xsd:int)
  2. the EPR of the requesting process (process REQ)
This operation is one way.

Based on content in the incoming request, the router chooses a process (process B) to "forward" the request to. Process B is expected to invoke an agreed upon operation on Process REQ, using the EPR information in the message.

There are 2 possible implementations:

  1. The router process assigns from the receiving partner link to a variable (or message part) which is then relayed to process B. Process B then performs its activities and assigns this value to the a partner link which it uses to invoke an operation on REQ.
  2. REQ is responsible to assign from "myrole" on the partner link facing the router into the a message it eventually sends it.

Based on my reading of the 8/23 draft, both implementations are supported.

The questions for which I have no clear answer are:

  1. Is implementation option a) supported ?

    Assuming it is, the spec in silent on IMA activities affecting the partner link for the purpose of assign activities, and the lifetime of the partner link value.

    My expectation would be that once an IMA activity has completed, assigning from the partner link would yield the reply-to EPR.

    Would this also require the partner link variants of the Assign activity to include a messageExchange attribute.

  2. Assuming the above is valid, what would the schema type of the variable( or message part) into which the EPR is assigned be? serf:service-reference - in the case of message part, this would cause BPEL specific types to be "leaked" into the abstract WSDL. wsa:endpoint-reference - this would bind the BPEL process to a specific addressing scheme.

    In either case, it would be useful for the spec to be specific about this point (and an example would be great).

  3. Section 6.3 ("Endpoint References")states:
    The <sref:service-ref> element is not always exposed to WS-BPEL process definitions. For example, it is not exposed in an assignment from the endpoint reference of myRole of partnerLink-A to that of partnerRole of partnerLink-B. On the contrary, it is exposed in an wsbpel-specification-assignment from a messageType or element based variable through expression or from a literal <sref:service-ref>.

    Section 8.4.3 states that the following is not a valid assignment: the selection result of the from-spec is a variable of a WSDL message type and that of the to-spec is not, or vice versa (parts of variables, selections of variable parts, or endpoint references cannot be assigned to/from variables of WSDL message types directly).

    It is not clear if these to sections are contradicting.

    If assignments to/from partner links is allowed (which is explicitly stated in section 8.4), what are the valid combinations?


Resolution: Decided conf call, 18 Oct 2006

close with no change. Explanation has been provided to address the questions raised by this comment. TC doesn't see a need for further action.
Links: Announcement, 20 Sep 2006     Dieter Koenig1, 22 Sep 2006     Dieter Koenig1, 25 Sep 2006     James Pasley, 25 Sep 2006     Danny van der Rijn, 25 Sep 2006     Dieter Koenig1, 26 Sep 2006     Diane Jordan, 16 Oct 2006     Diane Jordan, 23 Oct 2006
Changes: 20 Sep 2006 - new issue;    21 Sep 2006 - fields: Links;    22 Sep 2006 - fields: Links;    25 Sep 2006 - fields: Links;    26 Sep 2006 - fields: Links;    17 Oct 2006 - fields: Links;    25 Oct 2006 - fields: Status, In spec, Resolution, Links


Issue R14: Reference source not found in section 12.4

Status: resolved
Change status: editorial
In spec: 24 Oct 2006
Date added: 21 Sep 2006
Date submitted: 21 September 2006
Submitter: Alejandro Guizar
Description: The last paragraph of section 12.4 reads:
A fault inside a termination handler MUST NOT be not propagated to the enclosing scope (see section Error! Reference source not found.). Other than that, all of the statements about fault handlers apply to termination handlers as well.

The section link should be fixed. This applies to the HTML and PDF versions. Other versions might be affected too.

There are also broken links in 11.7 and 12.5
Resolution: Proposed and agreed, conf call 4 Oct 2006

Referred to editors for fixing
Links: Announcement, 21 Sep 2006
Changes: 21 Sep 2006 - new issue;    22 Sep 2006 - fields: Links;    4 Oct 2006 - fields: Status, Change status, Resolution;    25 Oct 2006 - fields: In spec


Issue R15: Fix description of abnormal process completion

Status: resolved
In spec: 26 Oct 2006
Date added: 26 Sep 2006
Date submitted: 26 September 2006
Submitter: Mark Ford
Description: Section 5.5 contains a description of the lifecycle of a business process. This section contains some text which should have been modified as part of Issue 277. That issue removed some text which didn’t allow for a process level default fault handler to execute. The text in Section 5.5 makes a reference to that text. As it reads now, Section 5.5 implies that a process level default fault handler would not execute. The text should read that a process ends abnormally after its process level fault handler completes. There is also a new case where a process level fault handler could itself fault which would cause the process to end immediately.

Thanks to Monica for finding this inconsistency and Alex for providing some edits.
Submitter's proposal:

Change paragraph in Section 5.5 FROM:

A business process instance ends either normally or abnormally. The process ends normally when the main activity of the process completes. The process ends abnormally if either:

TO:

A business process instance ends either normally or abnormally. The process ends normally when the main activity of the process completes. The process ends abnormally if either:


Resolution: Proposed in Alex Yiu, 20 Oct 2006, amended and agreed conf call Oct 25 2006

As the proposal in Alex Yiu, 20 Oct 2006 with the amendment in Dieter Koenig1, 25 Oct 2006
Links: Alex Yiu, 4 Oct 2006     Alex Yiu, 4 Oct 2006     Danny van der Rijn, 4 Oct 2006     Danny van der Rijn, 4 Oct 2006     Announcement, 4 Oct 2006     Alex Yiu, 20 Oct 2006     Mark Ford, 20 Oct 2006     Monica J. Martin, 20 Oct 2006     Proposed resolution (Alex Yiu, 20 Oct 2006)     Proposed resolution (Dieter Koenig1, 25 Oct 2006)
Changes: 26 Sep 2006 - new issue;    4 Oct 2006 - fields: Status, Links;    6 Oct 2006 - fields: Links;    21 Oct 2006 - fields: Links, Status, Proposed resolution;    30 Oct 2006 - fields: Links, Status, Proposed resolution;    31 Oct 2006 - fields: In spec, Status, Proposed resolution, Resolution


Issue R16: confusing description of Message Exchange Handling

Status: resolution proposed
Date added: 26 Sep 2006
Date submitted: 26 September 2006
Submitter: Mark Ford
Description: Section 12.2 contains a paragraph and bullet points that define an orphaned IMA and how they should be detected and handled. I’m having a hard time understanding the 2nd bullet:

I get lost after the second sentence. What fault is the 3rd sentence referring to? If it MUST NOT be generated and thrown, then what is the point of the 4th sentence?
Proposed resolution: Danny van der Rijn, 26 Oct 2006
Links: Proposed resolution (Danny van der Rijn, 4 Oct 2006)     Announcement, 4 Oct 2006     Mark Ford, 6 Oct 2006     Danny van der Rijn, 6 Oct 2006     Mark Ford, 6 Oct 2006     Danny van der Rijn, 6 Oct 2006     Proposed resolution (Danny van der Rijn, 26 Oct 2006)
Changes: 26 Sep 2006 - new issue;    4 Oct 2006 - fields: Links, Status, Proposed resolution;    6 Oct 2006 - fields: Links;    31 Oct 2006 - fields: Proposed resolution, Links


Issue R17: Schema for abstract processes is not valid

Status: resolved
Change status: substantive
In spec: 24 Oct 2006
Date added: 4 Oct 2006
Date submitted: 29 September 2006
Submitter: Thomas Schulze
Description: The schema for abstract processes (ws-bpel_abstract_common_base.xsd) contains the complex type tOnAlarmEvent:
<xsd:complexType name="tOnAlarmEvent">
 <xsd:complexContent>
   <xsd:extension base="tExtensibleElements">
     <xsd:sequence>
       <xsd:choice>
         <xsd:sequence>
           <xsd:group ref="forOrUntilGroup" minOccurs="0"/>
           <xsd:element ref="repeatEvery" minOccurs="0"/>
         </xsd:sequence>
         <xsd:element ref="repeatEvery" minOccurs="0"/>
       </xsd:choice>
       <xsd:element ref="scope" minOccurs="0"/>
     </xsd:sequence>
   </xsd:extension>
 </xsd:complexContent>
</xsd:complexType>

This is not valid XML schema, because the content model is not deterministic. If in an instance document the first child element is <bpel:repeatEvery> it's not clear which path in the schema applies. Within the choice it can be either be the sequence path (forOrUntilGroup's minOccurs="0" allows that) or the second repeatEvery element reference path.
Submitter's proposal: The schema for abstract processes needs to be changed with the result that the content model is deterministic. I propose to replace the complex type found in the description above with the following complex type:

<xsd:complexType name="tOnAlarmEvent">
 <xsd:complexContent>
   <xsd:extension base="tExtensibleElements">
     <xsd:sequence>
       <xsd:group ref="forOrUntilGroup" minOccurs="0"/>
       <xsd:element ref="repeatEvery" minOccurs="0"/>
       <xsd:element ref="scope" minOccurs="0"/>
     </xsd:sequence>
   </xsd:extension>
 </xsd:complexContent>
</xsd:complexType> 

The copy of the schema in the appendix of the specification needs to be changed accordingly.
Resolution: Decided conf call, 18 Oct 2006

As submitter's proposal
Links: Announcement, 4 Oct 2006
Changes: 4 Oct 2006 - new issue;    6 Oct 2006 - fields: Links;    25 Oct 2006 - fields: In spec, Status, Change status, Resolution


Issue R18: Uniqueness of WSDL Faults

Status: resolved
Change status: substantive
In spec: 26 Oct 2006
Date added: 10 Oct 2006
Date submitted: 10 October 2006
Submitter: Danny van der Rijn
Description: 1) Assume I have a WSDL portType that looks like the following:
portType pT
    operation op
          input element = "a:b"
          output element = "a:c"
          fault name="fault1" element = "a:fault"
          fault name="fault2" element = "a:fault"

Most WSDL transports (e.g. SOAP) do not tranport fault names on the wire. Usually all that is transmitted is the "a:fault" element, wrapped in some information that does not include the fault name.

Yet 10.3 states that "This results in a fault identified in WS-BPEL by a QName formed by the target namespace of the corresponding port type and the fault name." We have no way of deriving, in this case, whether we're talking about foo:fault1 or foo:fault2.

Possible resolutions include

2) Can't find in the spec what the QName of a non-declared fault is.
Resolution: Amended and agreed, conf call 25 Oct 2006

Change 10.3, page 86 from

In WSDL it is possible to declare an operation that declares more than one fault using the same data type. Certain WSDL bindings do not provide enough information for the WS-BPEL process to infer which fault was intended. In this case, the WS-BPEL process MUST infer the first fault declared for the operation that matches the transmitted data. A result of this requirement is that a process may have different behavior when deployed against different bindings.
To:
In WSDL it is possible to define an operation that declares more than one fault using the same data type. Certain WSDL bindings do not provide enough information for the WS-BPEL processor to determine which fault was intended. In this case, the WS-BPEL processor MUST select the fault that: Matches the transmitted data and Occurs first in lexical order in the operation definition A result of this requirement is that a process, which uses the <catch> construct based on faultName and deals with such an operation definition, may have different behavior when deployed against different bindings.

and section 3, P. 11 change to

While WS-BPEL attempts to provide as much compatibility with WSDL 1.1 as possible there are three areas where such compatibility is not feasible. Fault naming with its restriction, as discussed later in this document (see section 10.3 Involing Web service operations)

Links: Announcement, 10 Oct 2006     Alex Yiu, 10 Oct 2006     Danny van der Rijn, 10 Oct 2006     Dieter Koenig1, 13 Oct 2006     Danny van der Rijn, 13 Oct 2006     Danny van der Rijn, 18 Oct 2006     Alex Yiu, 20 Oct 2006     Diane Jordan, 25 Oct 2006
Changes: 10 Oct 2006 - new issue;    11 Oct 2006 - fields: Links;    14 Oct 2006 - fields: Links;    25 Oct 2006 - fields: Status, Links, Proposed resolution, Change status, Resolution;    30 Oct 2006 - fields: Links, In spec

Issue R19: Syntax-fault in example on page 168

Status: resolved
Change status: editorial
In spec: 24 Oct 2006
Date added: 11 Oct 2006
Date submitted: 11 October 2006
Submitter: Simon D Moser
Description: The Process "shippingService" (on page 168 of the public review draft) has a syntax error.
<invoke partnerLink="customer"
    operation="shippingNotice"
    inputVariable="shipNotice" />
<correlations>
    <correlation set="shipOrder" pattern="request" /> </correlations> </invoke>
The problem is that the invoke-tag should *NOT* be closed ("/>") before the correlation tag opens.
Submitter's proposal: It should be like this:
<invoke partnerLink="customer"
    operation="shippingNotice"
    inputVariable="shipNotice">
    <correlations>
        <correlation set="shipOrder" pattern="request" />
    </correlations>
</invoke>

Resolution: Decided conf call, 18 Oct 2006

As submitter's proposal
Links: Announcement, 11 Oct 2006
Changes: 11 Oct 2006 - new issue;    12 Oct 2006 - fields: Links;    25 Oct 2006 - fields: Status, Change status, Resolution, In spec


Issue R20: Fault handling example in Section 12.5 is incorrect

Status: resolved
Change status: editorial
In spec: 24 Oct 2006
Date added: 16 Oct 2006
Date submitted: 16 October 2006
Submitter: Mark Ford
Description: The text that explains which fault handler is executed when a match is made via the substitutionGroup hierarchy is incorrect. The sample near the bottom of this section establishes a simple substitutionGroup hierarchy and then uses a sample scope to illustrate the concept of selecting the SG element that is closest in the hierarchy. The problem is that the text following the example incorrectly identifies “catch-logic-A based on foo:Elem4” and “catch-logic-B based on foo:Elem2” as being matched in two different scenarios. There is no “catch-logic-A” with “foo:Elem4”. There is no “catch-logic-B” with “foo:Elem2”.

I also don’t think the text below the example should reference the catch logic via xml-syntax. Change <catch>-logic-A to catch-logic-A since that is what appears in the example.
Submitter's proposal:

Change from:

For example, foo:Elem1, foo:Elem2, foo:Elem3, foo:Elem4, foo:Elem5 are all globally declared elements. Elem2 is declared with its substitutionGroup attribute referring to Elem1. The same relationship is declared between Elem3 and Elem2, and between Elem4 and Elem3, and between Elem5 and Elem4. Consider a scope with the following fault handlers:
<scope>
  <faultHandlers>
    <catch faultName="foo:BarFaultName" faultElement="foo:Elem2">
      ... catch-logic-A ...
    </catch>
    <catch faultName="foo:BarFaultName" faultElement="foo:Elem4">
      ... catch-logic-B ...
    </catch>
    <catch faultName="foo:BarFaultName">
      ... catch-logic-C ...
    </catch>
  </faultHandlers>
</scope>
If the fault data element is “foo:Elem5”, the <catch>-logic-A based on “foo:Elem4” will be matched. If fault data element is “foo:Elem3”, the <catch>-logic-B based on “foo:Elem2” will be matched. If fault data element is “foo:Elem1”, the <catch>-logic-C will be matched.
To: (my changes in bold)

For example, foo:Elem1, foo:Elem2, foo:Elem3, foo:Elem4, foo:Elem5 are all globally declared elements. Elem2 is declared with its substitutionGroup attribute referring to Elem1. The same relationship is declared between Elem3 and Elem2, and between Elem4 and Elem3, and between Elem5 and Elem4. Consider a scope with the following fault handlers:

<scope>
  <faultHandlers>
    <catch faultName="foo:BarFaultName" faultElement="foo:Elem2">
      ... catch-logic-A ...
    </catch>
    <catch faultName="foo:BarFaultName" faultElement="foo:Elem4">
      ... catch-logic-B ...
    </catch>
    <catch faultName="foo:BarFaultName">
      ... catch-logic-C ...
    </catch>
  </faultHandlers>
</scope>
If the fault data element is “foo:Elem5”, the catch-logic-B based on “foo:Elem4” will be matched. If fault data element is “foo:Elem3”, the catch-logic-A based on “foo:Elem2” will be matched. If fault data element is “foo:Elem1”, the catch-logic-C will be matched.

Resolution: Decided conf call, 18 Oct 2006

As submitter's proposal
Links: Announcement, 16 Oct 2006
Changes: 16 Oct 2006 - new issue;    17 Oct 2006 - fields: Links;    25 Oct 2006 - fields: In spec, Status, Change status, Resolution


Issue R21: Static Analysis requirement for Variable Reference Resolution, Section 12.7.1 and Appendix B

Status: resolution proposed
Date added: 16 Oct 2006
Date submitted: 16 October 2006
Submitter: Monica Martin
Description: In Section 12.7.1, static analysis requirements apply for <correlation>, <messageExchange>, and <partnerLink> for resolution to the appropriate scope. However, one static analysis requirement may have been missed for variable references.
Submitter's proposal: Add static analysis requirement in Section 12.7.1 and for Appendix B for:

The variable references are resolved to the associated scope only and MUST NOT be resolved to the ancestor scopes.

Note, this text already exists as stated in Section 12.7.1.
Proposed resolution: Monica J. Martin, 23 Oct 2006
Links: Announcement, 16 Oct 2006     Proposed resolution (Monica J. Martin, 23 Oct 2006)
Changes: 16 Oct 2006 - new issue;    17 Oct 2006 - fields: Links;    25 Oct 2006 - fields: Links, Status, Proposed resolution


Issue R22: <rethrow> of Fault Name and Fault Data Where Present

Status: resolved
Change status: editorial
In spec: 24 Oct 2006
Date added: 17 Oct 2006
Date submitted: 16 October 2006
Submitter: Monica J. Martin
Description: The semantics of <rethrow> are quite specific about fault data but no explicit mention is made about the fault name of the original fault where present. No references are found in Section 5, 10 or 12 where <rethrow> is addressed. Therefore, a minor editorial revision is suggested in Section 10.1 (i.e. in first sentence).
Submitter's proposal: Change from:
The <rethrow> activity is used in fault handlers to rethrow the fault they caught. It can be used only within a fault handler (<catch> and <catchAll>). Modifications to the fault data MUST be ignored by <rethrow>. For example, if the logic in a fault handler modifies the fault data and then call <rethrow>, the original fault data would be rethrown and not the modified fault data. Similarly if a fault is caught using the shortcut that allows message type faults with one part defined using an element to be caught by fault handlers looking for the same element type, then a <rethrow> would rethrow the original message type data (see section 12.5. Fault Handlers).
to:
The <rethrow> activity is used in fault handlers to rethrow the fault they caught, i.e. the fault name and fault data of the original fault where present. It can be used only within a fault handler (<catch> and <catchAll>). Modifications to the fault data MUST be ignored by <rethrow>. For example, if the logic in a fault handler modifies the fault data and then call <rethrow>, the original fault data would be rethrown and not the modified fault data. Similarly if a fault is caught using the shortcut that allows message type faults with one part defined using an element to be caught by fault handlers looking for the same element type, then a <rethrow> would rethrow the original message type data (see section 12.5. Fault Handlers).

Resolution: Decided conf call, 18 Oct 2006

As proposed in Monica J. Martin, 18 Oct 2006
Links: Announcement, 17 Oct 2006     Proposed resolution (Monica J. Martin, 18 Oct 2006)
Changes: 17 Oct 2006 - new issue;    18 Oct 2006 - fields: Links, Status, Resolution;    25 Oct 2006 - fields: Status, Change status, Resolution, In spec


Issue R23: Clarification on Schema Variable Validation

Status: resolved
Change status: editorial
In spec: 24 Oct 2006
Date added: 17 Oct 2006
Date submitted: 16 October 2006
Submitter: Monica J. Martin
Description: In Section 8.1, Variables, under Variable Validation, the <validate> activity and schema validation are described. However, the separation of these two concepts and the use of the latter needs editorial clarification.
Submitter's proposal: Clarify that validation of incoming and outgoing messages relates to schema validation. See attachment to message raising issue that shows the change in bold green text and paragraph break suggested.
Resolution: Decided conf call, 18 Oct 2006

As submitter's proposal
Links: referenced pdf document (document details)     Announcement, 17 Oct 2006
Changes: 17 Oct 2006 - new issue;    17 Oct 2006 - fields: Links;    18 Oct 2006 - fields: Links;    25 Oct 2006 - fields: Status, Change status, Resolution, In spec


Issue R24: Externally referenced locally-scoped partnerLinks

Status: received
Date added: 17 Oct 2006
Origin: Public comment - Jim Clunes, 16 October 2006
Date submitted: 17 October 2006
Description: Is there a standard way to refer to a locally-scoped partnerLink from outside the process? My reading of the specification is that partnerLink names need only be unique within the scope that they are defined, not necessarily unique to the entire process.

However, the last sentence of section 6.2 says:

The initial binding information of a <partnerLink> can be set as a part of business process deployment, regardless of whether it is declared on the <process> or <scope> element level.

What identifier should deployment descriptors use to reference these locally-scoped partnerLinks for the purpose of initializePartnerRole?
Links: Announcement, 17 Oct 2006     Dieter Koenig1, 18 Oct 2006     Danny van der Rijn, 18 Oct 2006
Changes: 17 Oct 2006 - new issue;    18 Oct 2006 - fields: Links


Issue R25: wording for conflictingReceive and ambiguousReceive

Status: received
Date added: 18 Oct 2006
Origin: Public comment - Marlon Dumas, 18 Oct 2006
Date submitted: 18 October 2006
Description: The following statement may need to be clarified in the spec: "If during the execution of a business process instance, two or more receive activities for the same partnerLink, operation and correlationSet(s) are simultaneously enabled, then the standard fault bpel:conflictingReceive MUST be thrown."

In this constraint, "two or more receive activities" should not be interpreted as meaning "two or more instances of the same receive activity", but instead: "two or more instances of different receive activities". Indeed, it is possible that the same "receive activity" within a scope nested in an event handler or parallel foreach, is "enabled" multiple times simultaneously, possibly once for each instance of the scope. In such cases, I am assuming that "conflictingReceive" should not be thrown (otherwise, most "receive activities" appearing in a parallel foreach or event handler would unavoidably lead to faults). Consider the following example:

<foreach ... parallel="yes" ...>
  <scope>
    <partnerLinks>
       <partnerLink name="PL1" ... />
    </partnerLinks>
    <correlationSets>
       <correlationSet name="S1" ... />+
    </correlationSets>
    <invoke name="RA1" partnerLink="PL1" ... operation="OP1" inputVariable="...">
      <correlation set="S1" initiate="yes"/>
    </invoke>
    <receive name="RA" partnerLink="PL1" ... operation="OP1" ...>
      <correlation set="S1" initiate="no"/>
    </receive>
  </scope>
</foreach>
In this example, it is likely that multiple instances of the IMA "RA" may be enabled simultaneously. But no "conflictingReceive" would be thrown.

On the other hand, the following example may lead to a "conflictingReceive", as one instance of activity "RA1" may be enabled at the same time as one instance of "RA2".

<flow>
   <receive name="RA1" partnerLink="PL1" portType="PT1" operation="OP1" ...>
     <correlation set="S1" .../>
   </receive>
   <receive name="RA2" partnerLink="PL1" portType="PT1" operation="OP1">
     <correlation set="S1" .../>
   </receive>
</flow>

The first example discussed above also illustrates that the wording in the definition of "ambiguousReceive" in Appendix A warrants some clarification. The current definition says: "Thrown when a business process instance simultaneously enables two or more IMAs for the same partnerLink, portType, operation but different correlationSets, and the correlations of multiple of these activities match an incoming request message." The above is an example where two enabled instances of the same IMA may match the same incoming message.
Links: Announcement, 18 Oct 2006     Dieter Koenig1, 26 Oct 2006
Changes: 18 Oct 2006 - new issue;    18 Oct 2006 - fields: Links;    30 Oct 2006 - fields: Links


Issue R26: Default Compensation Order Conflict

Status: received
Date added: 30 Oct 2006
Date submitted: 27 October 2006
Submitter: Dieter Koenig
Description: Consider the following hierarchy of scopes. In this example, none of the scopes is isolated, all scopes only have default fault handlers and default termination handlers, and scopes "A" and "B" have custom compensation handlers.
scope name="S0"
   flow
      scope name="S1"
         scope name="A"
            source link="fromAtoB"
         ...
      scope name="S2"
         scope name="B"
            target link="fromAtoB"
         ...
      activity name="E"
Assume a point in time where scopes "A" and "B" and "S2" have completed successfully, and scope "S1" and activity "E" are still running.

Further assume that activity "E" now throws a fault which is caught by the default fault handler of scope "S0".

  1. All running activities inside of scope "S0" are terminated, and the default termination handler of scope "S1" compensates scope "A".
  2. The default fault handler of scope "S0" then compensates scope "S2", which in turn compensates scope "B".

The observed compensation order "A then B" is caused by the sequence "first termination, then fault handling". OTOH, the required compensation order "B then A" implied by the control dependency of "B" on "A".

This is a contradiction.

Note that this situation cannot occur when the scope "S1" is an isolated scope. In this case, the link "fromAtoB" cannot leave the scope "S1" before it completes. In this case, scope "S1" always completes before scope "S2", and compensation of "A" cannot be caused by a termination handler before scope "B" is compensated.

Moreover, this conflict is irrelevant if scope "S1" OR scope "S2" only contain default compensation handlers, because in this case, no custom compensation logic can be executed in the wrong order.
Submitter's proposal: In order to avoid conflicts between the termination-handling / fault-handling sequence and the default compensation order, different strategies can be considered, for example, enforcing the absence of such conflicts during static analysis. A less restrictive approach is proposed here, which only affects the runtime behavior.

At the end of section 12.5.2, add the following paragraph:

"The default compensation order is initiated by default termination handlers and default fault handlers, and recursively carried forward by compensation handlers. The termination phase always precedes the fault handling phase (see section 12.6. Termination Handlers). This sequence must not create a conflict with the default compensation order of scopes that are in a control dependency relationship. If all of the following is true:
  1. scope "S2" has a direct peer-scope dependency on scope "S1"
  2. the scope-controlled set of activities of scope "S1" contains default termination handlers
  3. the scope-controlled set of activities of scope "S1" AND scope "S2" both contain at least one custom compensation handler then a WS-BPEL processor MUST execute these scopes as if "S2" had a control dependency on scope "S1".

Links: Announcement, 30 Oct 2006     Danny van der Rijn, 30 Oct 2006     Alex Yiu, 30 Oct 2006
Changes: 30 Oct 2006 - new issue;    30 Oct 2006 - fields: Links;    31 Oct 2006 - fields: Links

Issue R27: Faults and Parallelism in Termination Handlers

Status: received
Date added: 30 Oct 2006
Date submitted: 27 October 2006
Submitter: Dieter Koenig
Description: Consider the following examples of parallelism inside of termination handlers.

Example 1. Assume that a custom termination handler contains a parallel forEach activity or a flow activity. In either case, assume that multiple concurrent branches are active. If one branch faults, the specification does not tell whether the other branches are allowed to complete or terminated.

Example 2. Assume that a default termination handler that compensates a compensation handler instance group. If one compensation handler instance faults, the specification does not tell whether the other compensation handler instances are allowed to complete or terminated.
Submitter's proposal: Add the following to the end of section 12.6.:

"If a custom termination handler contains parallel activities and one of these activities propagates a fault then all concurrent activities in the termination handler MUST be terminated. Likewise, if a default termination handler compensates a compensation handler instance group and one of the compensation handler instances propagates a fault then the other compensation handler instances of the compensation handler instance group MUST be terminated."

Links: Announcement, 30 Oct 2006     Danny van der Rijn, 30 Oct 2006     Alex Yiu, 30 Oct 2006     Danny van der Rijn, 30 Oct 2006
Changes: 30 Oct 2006 - new issue;    30 Oct 2006 - fields: Links;    31 Oct 2006 - fields: Links

This file last updated 22:51 31 Oct 2006 (UTC)