Issue 4411: SignalSet and participants (ots-structs-ftf) Source: University of Newcastle upon Tyne (Dr. Mark Little, m.c.little@ncl.ac.uk) Nature: Uncategorized Issue Severity: Summary: There has always been an implicit assumption "something" knows when (and if) to make references to Actions persistent during SignalSet processing. For example, if we consider the case of a two-phase commit SignalSet, then once prepare Signals have been sent and acknowledged successfully by Actions, the service needs to make those references persistent (c.f. the transaction service intentions list). However, currently there is no way for this to happen. Only the Activity Coordinator has the list of the Actions, but it doesn't (and shouldn't) understand the semantics of the Signals it sends. The SignalSet understands the semantics, but doesn't have a handle on the Actions. Somehow the SignalSet must get hold of the Actions in order to do this. What I propose is the addition of a set_coordinator method to SignalSet such that when it is registered with the Activity Coordinator (or more likely when it is about to be used) the coordinator can pass a reference to itself through. Then the SignalSet can have access to the Action list. This is also important if the SignalSet wants to make a one-phase optimisation (when there is only a single Action, for example) as it needs to know the number of Actions, not necessarily who they are. Resolution: see above Revised Text: set_activity_coordinator This method is used by the ActivityCoordinator to pass a reference to itself to the SignalSet. The SignalSet can then use this to obtain references to all registered Actions in order to satisfy persistence requirements, for example, and optimisations such as one-phase commit. For example, consider the case of a two-phase commit SignalSet: once prepare Signals have been sent and acknowledged successfully by Actions, the service needs to make those Action references persistent (c.f. the transaction service intentions list). If the SignalSet has already been asked for its first Signal, then the SignalSetActive exception will be thrown, and the coordinator reference will be ignored. Actions taken: July 12, 2001: received issue May 2, 2003: closed issue Discussion: Resolution: Add the set_activity_coordinator method to the SignalSet interface, and update the text appropriately End of Annotations:===== From: "Mark Little" To: "XOTS FTF" Cc: Subject: SignalSet and participants Date: Thu, 12 Jul 2001 13:11:13 +0100 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-Filter-Version: 2.1 (cheviot3) Content-Type: text/plain; charset="iso-8859-1" X-UIDL: (^$e9KJ*e90Tk!!+NO!! There has always been an implicit assumption "something" knows when (and if) to make references to Actions persistent during SignalSet processing. For example, if we consider the case of a two-phase commit SignalSet, then once prepare Signals have been sent and acknowledged successfully by Actions, the service needs to make those references persistent (c.f. the transaction service intentions list). However, currently there is no way for this to happen. Only the Activity Coordinator has the list of the Actions, but it doesn't (and shouldn't) understand the semantics of the Signals it sends. The SignalSet understands the semantics, but doesn't have a handle on the Actions. Somehow the SignalSet must get hold of the Actions in order to do this. What I propose is the addition of a set_coordinator method to SignalSet such that when it is registered with the Activity Coordinator (or more likely when it is about to be used) the coordinator can pass a reference to itself through. Then the SignalSet can have access to the Action list. This is also important if the SignalSet wants to make a one-phase optimisation (when there is only a single Action, for example) as it needs to know the number of Actions, not necessarily who they are. Mark. ---------------------------------------------- Dr. Mark Little Transactions Architect, HP Arjuna Labs Email: mark@arjuna.com | mark_little@hp.com Phone: +44 191 2064538 Fax : +44 191 2064203