Issue 4258: Predefined SignalSets require predefined Outcomes (ots-structs-ftf) Source: International Business Machines (Dr. Ian Robinson, ian_robinson@uk.ibm.com) Nature: Uncategorized Issue Severity: Summary: The following section is taken from the Activity srevice specification orbos/2000-06-19. P48 "The Synchronization SignalSet has a similar role to that of Synchronization objects within the OTS, i.e., it is invoked before and after completion of the Activity. Likewise, the completion status of an Activity may be changed by the Actions registered with this SignalSet, such that the Activity?s outcome when postCompletion is called may be different to that when preCompletion was invoked. If an Action error occurs during preCompletion (e.g., the ActionError exception is thrown) then the Activity completion status will be set to CompletionStatusFailOnly." In order for an Action itself to influence the completion status of an Activity during signal processing, it must cause the SignalSet responsible for the Signal being processed to set the appropriate completion status. This is achieved through the Outcome the Action returns from the process_signal call. In the case of the predefined SignalSets, no predefined Outcomes are specified so there is no opportunity for an Action processing the preCompletion signal to influence the completion status. The object model for the Activity service does not encourage an Action to invoke methods directly on a SignalSet (such as SignalSet::set_completion_status) and Current::set_completion_status may not be called after the completion SignalSet has started producing signals. Therefore predefined Outcomes, that may be generated by Actions, are required for the predefined SignalSets and the behaviour of these predefined SignalSets, in terms of how they react to the predefined Outcomes, needs to be specified. Per the specification, there is no need for the predefined SignalSets themselves to produce an Outcome. I propose the following predefined Outcomes: "org.omg.preCompletionSuccess" and "org.omg.preCompletionFailed" that may be generated by Actions and passed to the Synchronization SignalSet via the ActivityCoordinator calling set_response. On receipt of the org.omg.preCompletionFailed Outcome during preCompletion, the Synchronization SignalSet should set its completion status to CompletionStatusFailOnly. Resolution: see above Revised Text: 1. Remove the following statement from section 2.2.1: "Pre-defined SignalSets do not return any Outcome from get_outcome." 2. The following text in the description of the pre-defined Synchronization SignalSet should be changed from: "If there are any Actions registered with it, then the Synchronization SignalSet will be called prior to using any application specific SignalSet. If an Action fails to respond to preCompletion or a failure occurs, then the completion status of the Activity is changed to CompletionStatusFailOnly." to "If there are any Actions registered with it, then the Synchronization SignalSet will be called prior to using any application specific SignalSet. The predefined Outcomes "preCompletionSuccess" and "preCompletionFailed" may be produced by an Action in response to the preCompletion signal. If an Action fails to respond to preCompletion or a failure occurs, or the Synchronization SignalSet receives the preCompletionFailed Outcome from an Action, the completion status of the Activity is changed to CompletionStatusFailOnly." 3. The following text in the description of the pre-defined ChildLifetime SignalSet should be changed from: "The ChildLifetime SignalSet is invoked by the parent when a sub-Activity is begun, and when it completes. If an Action error occurs during childBegin (e.g., the ActionError exception is thrown), then the Activity completion status will be set to CompletionStatusFailOnly." to "The ChildLifetime SignalSet is invoked by the parent when a sub-Activity is begun, and when it completes. There are no predefined Outcomes introduced by this SignalSet. If an Action error occurs during childBegin (e.g., the ActionError exception is thrown), then the Activity completion status of the child Activity will be set to CompletionStatusFailOnly." Actions taken: April 5, 2001: received issue May 2, 2003: closed issue Discussion: Resolution: Part of the proposed resolution to Issue 4250 is to define a SubordinateSignalSet interface that is used by a subordinate ActivityCoordinator on a downstream node in a distributed activity. A subordinate node may have many Actions registered with the pre-defined Synchronization SubordinateSignalSet; if one of these Actions encounters a situation during preCompletion where it needs to cause the Activity completion status to be set to CompletionStatusFailOnly in the root, then it needs to get an indication of the failure back to the root Synchronization SignalSet via its interposed ActivityCoordinator-Action. This simplest way to do this is via a pre-defined Outcome. End of Annotations:===== From: ian_robinson@uk.ibm.com Received: from d06mta05.portsmouth.uk.ibm.com (d06mta05_cs0 [9.180.35.3]) by d06relay01.portsmouth.uk.ibm.com (8.8.8m3/NCO v4.95) with SMTP id IAA23636; Fri, 6 Apr 2001 08:40:24 +0100 Received: by d06mta05.portsmouth.uk.ibm.com(Lotus SMTP MTA v4.6.5 (863.2 5-20-1999)) id 80256A26.002A24A9 ; Fri, 6 Apr 2001 08:40:18 +0100 X-Lotus-FromDomain: IBMGB To: ots-structs-ftf@omg.org cc: issues@omg.org Message-ID: <80256A26.002A112E.00@d06mta05.portsmouth.uk.ibm.com> Date: Thu, 5 Apr 2001 22:30:53 +0100 Subject: Activity service Issue: Predefined SignalSets require predefined Outcomes. Mime-Version: 1.0 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by emerald.omg.org id f367bbb17827 Content-Type: text/plain; charset=iso-8859-1 X-UIDL: X5bd9^b?!!~&T!!JU;e9 Juergen, please open an issue for the following: Predefined SignalSets require predefined Outcomes. The following section is taken from the Activity srevice specification orbos/2000-06-19. P48 "The Synchronization SignalSet has a similar role to that of Synchronization objects within the OTS, i.e., it is invoked before and after completion of the Activity. Likewise, the completion status of an Activity may be changed by the Actions registered with this SignalSet, such that the Activity?s outcome when postCompletion is called may be different to that when preCompletion was invoked. If an Action error occurs during preCompletion (e.g., the ActionError exception is thrown) then the Activity completion status will be set to CompletionStatusFailOnly." In order for an Action itself to influence the completion status of an Activity during signal processing, it must cause the SignalSet responsible for the Signal being processed to set the appropriate completion status. This is achieved through the Outcome the Action returns from the process_signal call. In the case of the predefined SignalSets, no predefined Outcomes are specified so there is no opportunity for an Action processing the preCompletion signal to influence the completion status. The object model for the Activity service does not encourage an Action to invoke methods directly on a SignalSet (such as SignalSet::set_completion_status) and Current::set_completion_status may not be called after the completion SignalSet has started producing signals. Therefore predefined Outcomes, that may be generated by Actions, are required for the predefined SignalSets and the behaviour of these predefined SignalSets, in terms of how they react to the predefined Outcomes, needs to be specified. Per the specification, there is no need for the predefined SignalSets themselves to produce an Outcome. I propose the following predefined Outcomes: "org.omg.preCompletionSuccess" and "org.omg.preCompletionFailed" that may be generated by Actions and passed to the Synchronization SignalSet via the ActivityCoordinator calling set_response. On receipt of the org.omg.preCompletionFailed Outcome during preCompletion, the Synchronization SignalSet should set its completion status to CompletionStatusFailOnly. Regards...Ian Ian Robinson, Senior Software Engineer, WebSphere Development IBM UK Laboratories, Hursley MP 189 Tel (Ext) +44-1962-818626 (Int) 7-248626 ian_robinson@uk.ibm.com Importance: Normal Subject: Issue 4258: proposal To: ots-structs-ftf@omg.org X-Mailer: Lotus Notes Release 5.0.5 September 22, 2000 Message-ID: From: "Ian Robinson" Date: Wed, 18 Jul 2001 21:54:21 +0100 X-MIMETrack: Serialize by Router on d06ml007/06/M/IBM(Release 5.0.6 |December 14, 2000) at 19/07/2001 08:40:06 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-UIDL: ,H^d93)4e9^Lg!!;Dh!! Proposal for resolution of 4258: Part of the proposed resolution to Issue 4250 is to define a SubordinateSignalSet interface that is used by a subordinate ActivityCoordinator on a downstream node in a distributed activity. A subordinate node may have many Actions registered with the pre-defined Synchronization SubordinateSignalSet; if one of these Actions encounters a situation during preCompletion where it needs to cause the Activity completion status to be set to CompletionStatusFailOnly in the root, then it needs to get an indication of the failure back to the root Synchronization SignalSet via its interposed ActivityCoordinator-Action. This simplest way to do this is via a pre-defined Outcome. I propose the following resolution to this issue. 1. Remove the following statement from section 2.2.1: "Pre-defined SignalSets do not return any Outcome from get_outcome." 2. The following text in the description of the pre-defined Synchronization SignalSet should be changed from: "If there are any Actions registered with it, then the Synchronization SignalSet will be called prior to using any application specific SignalSet. If an Action fails to respond to preCompletion or a failure occurs, then the completion status of the Activity is changed to CompletionStatusFailOnly." to "If there are any Actions registered with it, then the Synchronization SignalSet will be called prior to using any application specific SignalSet. The predefined Outcomes "preCompletionSuccess" and "preCompletionFailed" may be produced by an Action in response to the preCompletion signal. If an Action fails to respond to preCompletion or a failure occurs, or the Synchronization SignalSet receives the preCompletionFailed Outcome from an Action, the completion status of the Activity is changed to CompletionStatusFailOnly." 3. The following text in the description of the pre-defined ChildLifetime SignalSet should be changed from: "The ChildLifetime SignalSet is invoked by the parent when a sub-Activity is begun, and when it completes. If an Action error occurs during childBegin (e.g., the ActionError exception is thrown), then the Activity completion status will be set to CompletionStatusFailOnly." to "The ChildLifetime SignalSet is invoked by the parent when a sub-Activity is begun, and when it completes. There are no predefined Outcomes introduced by this SignalSet. If an Action error occurs during childBegin (e.g., the ActionError exception is thrown), then the Activity completion status of the child Activity will be set to CompletionStatusFailOnly." Ian Robinson, Senior Software Engineer, WebSphere Development IBM UK Laboratories, Hursley MP 189 Tel (Ext) +44-1962-818626 (Int) 7-248626 ian_robinson@uk.ibm.com From: "Mark Little" To: "XOTS" Subject: FTF meeting summary Date: Wed, 18 Jul 2001 10:05:44 +0100 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.2919.6600 X-MIMEOLE: Produced By Microsoft MimeOLE V5.00.2919.6600 X-Filter-Version: 2.1 (cheviot3) Content-Type: text/plain; charset="iso-8859-1" X-UIDL: *%D!!CL[d9H0jd9D]:!! Just a quick note to report on the meeting we had at Danvers. We managed to work through all of the issues that were reported prior to Danvers, though some have come up since. A brief summary of the issues we discussed, and the resolutions follows (the individuals who will write up the final proposed resolutions are also indicated). Proposal for 4258: each system signalset needs to have outcomes specified for it. [Ian Robinson to write up.]