Issue 4252: Is support for registering an Action with multiple SignalSets needed? (ots-structs-ftf) Source: International Business Machines (Dr. Ian Robinson, ian_robinson@uk.ibm.com) Nature: Uncategorized Issue Severity: Summary: P23: "An Action may register interest in more than one SignalSet and an Activity may use more than one SignalSet during its lifetime." P50: "An Action is implicitly associated with a single Activity and should only be with that Activity. An Action may receive many different Signals from different SignalSets." The interface to register an Action with an Activity is add_action, on either the ActivityCoordinator or Current interfaces. It is defined: void add_action(in Action act, in string signal_set_name, in long priority) raises(SignalSetUnknown); If an Action is to be registered with an interest in more than one SignalSet, then it must be passed as a parameter on multiple add_action calls. Given that the specification implies that calling ActivityCoordinator.add_action(TheAction, "someSS", priority) multiple times is OK, the behaviour needs to be defined for the case where TheAction is added multiple times to the same SignalSet. In particular, what if the priority is different on multiple add_action calls? At the very least I believe a new exception - ActionAlreadyRegistered? - needs to be thrown in the case where an Action is registered multiple times with the same SignalSet. I question the need to support registering an Action with multiple SignalSets at all. I propose that this be illegal as I believe there is no need for it. The new exception is still required. Resolution: see above Revised Text: The following text, in section 2.2.1.1, should be removed: "An Action is implicitly associated with a single Activity and should only be with that Activity." There is then no inconsistency with the following statement in sections 1.2.1.5 "An Action may register interest in more than one SignalSet and an Activity may use more than one SignalSet during its lifetime." One advantage of this clarification is that interposition can be implemented by a subordinate ActivityCoordinator registering as an Action with the discrete set of its superior's SignalSets. The following statement should be added to the description of the ActivityCoordinator and Current interfaces' add_action and add_actions methods: If the specified Action is registered multiple times for the same SignalSet then it will invoked multiple times with the Signals from that SignalSet. The remove_action and remove_actions methods of the ActivityCoordinator and Current interfaces should each have an additional string parameter of signal_set_name added so that Actions registered with multiple SignalSets can be removed from specific SignalSets. The interfaces and descriptions should be changed as follows: void remove_action(in CosActivity::Action act, in string signal_set_name) raises(CosActivity::ActionNotFound, CosActivity::NoActivity); Removes the interest relationship between the specified Action and the named SignalSet. No further Signals from the named SignalSet will be sent to the specified Action. If signal_set_name is specified as an empty string, then the Action will be sent no further Signals from any SignalSet. If the Action has not previously been registered with the coordinator, then the ActionNotFound exception will be thrown. If there is no Activity associated with the current thread, then the NoActivity exception will be thrown. If the Activity has begun completion, or has completed, then the INVALID_ACTIVITY exception is thrown. CosActivity::ActionSeq remove_actions(in CosActivity::ActionSeq acts, in string signal_set_name) raises(CosActivity::NoActivity); Removes the interest relationship between the specified Actions and the named SignalSet. No further Signals from the named SignalSet will be sent to the specified Actions. If signal_set_name is specified as an empty string, then the Actions will be sent no further Signals from any SignalSet. If any of the Actions have not previously been registered with the coordinator, then it will return references to them after removing all other Actions in the sequence. Otherwise nil will be returned. If there is no Activity associated with the current thread, then the NoActivity exception will be thrown. If the Activity has begun completion, or has completed, then the INVALID_ACTIVITY exception is thrown. With regard remove_action and remove_actions on the Current and ActivityCoordinator interfaces.... void remove_action(in CosActivity::Action act, in string signal_set_name) raises(CosActivity::ActionNotFound, CosActivity::NoActivity); The NoActivity exception is only appropriate on the Current interface, not the ActivityCoordinator interface. Actions taken: April 5, 2001: received issue May 2, 2003: close dissue Discussion: Resolution: Clarify the text to show that an Action can be associated with more than one SignalSet. In addition, change IDL for remove_action that threw an inappropriate exception. End of Annotations:===== From: ian_robinson@uk.ibm.com Received: from d06mta05.portsmouth.uk.ibm.com (d06mta05_cs0 [9.180.35.3]) by d06relay02.portsmouth.uk.ibm.com (8.8.8m3/NCO v4.95) with SMTP id PAA201208; Thu, 5 Apr 2001 15:06:56 +0100 Received: by d06mta05.portsmouth.uk.ibm.com(Lotus SMTP MTA v4.6.5 (863.2 5-20-1999)) id 80256A25.004D8390 ; Thu, 5 Apr 2001 15:06:39 +0100 X-Lotus-FromDomain: IBMGB To: ots-structs-ftf@omg.org cc: issues@omg.org Message-ID: <80256A25.004D2279.00@d06mta05.portsmouth.uk.ibm.com> Date: Thu, 5 Apr 2001 14:58:13 +0100 Subject: Activity service Issue: Registering Actions with multiple SignalSets Mime-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset=us-ascii X-UIDL: 5<@e9Y/X!!`\1e9BKY!! Please open an issue for the following. The following section is taken from the Activity srevice specification orbos/2000-06-19. P23: "An Action may register interest in more than one SignalSet and an Activity may use more than one SignalSet during its lifetime." P50: "An Action is implicitly associated with a single Activity and should only be with that Activity. An Action may receive many different Signals from different SignalSets." The interface to register an Action with an Activity is add_action, on either the ActivityCoordinator or Current interfaces. It is defined: void add_action(in Action act, in string signal_set_name, in long priority) raises(SignalSetUnknown); If an Action is to be registered with an interest in more than one SignalSet, then it must be passed as a parameter on multiple add_action calls. Given that the specification implies that calling ActivityCoordinator.add_action(TheAction, "someSS", priority) multiple times is OK, the behaviour needs to be defined for the case where TheAction is added multiple times to the same SignalSet. In particular, what if the priority is different on multiple add_action calls? At the very least I believe a new exception - ActionAlreadyRegistered? - needs to be thrown in the case where an Action is registered multiple times with the same SignalSet. I question the need to support registering an Action with multiple SignalSets at all. I propose that this be illegal as I believe there is no need for it. The new exception is still required. 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 From: "Peter Furniss" To: "Ots-Structs-Ftf" Subject: issue 4252 - registering an Action with multiple SignalSets Date: Thu, 5 Apr 2001 16:13:58 +0100 Message-ID: MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0) X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Importance: Normal Content-Type: text/plain; charset="iso-8859-1" X-UIDL: &M;!!0\A!!~3Xd9jpd!! > I question the need to support registering an Action with multiple > SignalSets at all. I propose that this be illegal as I believe there > is no > need for it. The new exception is still required. To take an analogy from OTS, isn't registering with multiple SignalSets equivalent to having an object that is both a Synchronization and a Resource. That would be somewhat odd, but if Synchronization had been split into a pre-synch and post-synch (since not everything needs both), something that did need both would register as both. In Activity Service terms, I think that would be regisration in multiple SignalSets. But I agree it seems wrong to have multiple registration by the same Action in the same SignalSet. It should be one-man, one-vote :-) Peter ------------------------------------------------ Peter Furniss Choreology Ltd email: peter.furniss@choreology.com phone: +44 20 7670 1679 direct: +44 20 7670 1783 13 Austin Friars, London EC2N 2JX From: "Mark Little" To: "Peter Furniss" , "Ots-Structs-Ftf" References: Subject: Re: issue 4252 - registering an Action with multiple SignalSets Date: Fri, 6 Apr 2001 09:54:41 +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 Content-Type: text/plain; charset="iso-8859-1" X-UIDL: cRjd9;G-!!/T@!!N@Vd9 > To take an analogy from OTS, isn't registering with multiple SignalSets > equivalent to having an object that is both a Synchronization and a > Resource. That would be somewhat odd, but if Synchronization had been split > into a pre-synch and post-synch (since not everything needs both), something > that did need both would register as both. In Activity Service terms, I > think that would be regisration in multiple SignalSets. > > But I agree it seems wrong to have multiple registration by the same Action > in the same SignalSet. It should be one-man, one-vote :-) Agreed. Ian and I discussed this several weeks ago and I believe it's a legacy from an old cut-and-paste job. I certainly don't have an issue with this change (no pun intended!) Mark. ---------------------------------------------- Dr. Mark Little (mark@arjuna.com) Transactions Architect, HP Arjuna Labs Phone +44 191 2064538 Fax +44 191 2064203 X-Authentication-Warning: emerald.omg.org: hobbit.omg.org [192.67.184.3] didn't use HELO protocol Received: from d06lmsgate.uk.ibm.com (195.212.29.1) by hobbit.omg.org asmtp(1.0) id 11961; Wed, 16 May 2001 11:38:58 -0400 (EDT) Received: from d06relay01.portsmouth.uk.ibm.com (d06relay01.portsmouth.uk.ibm.com [9.166.84.147]) by d06lmsgate.uk.ibm.COM (1.0.0) with ESMTP id QAA204104; Wed, 16 May 2001 16:16:08 +0100 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.96) with SMTP id QAA225118; Wed, 16 May 2001 16:33:26 +0100 Received: by d06mta05.portsmouth.uk.ibm.com(Lotus SMTP MTA v4.6.5 (863.2 5-20-1999)) id 80256A4E.00557422 ; Wed, 16 May 2001 16:33:22 +0100 X-Lotus-FromDomain: IBMGB To: "Mark Little" cc: ots-structs-ftf@omg.org, issues@omg.org Message-ID: <80256A4E.004C84EF.00@d06mta05.portsmouth.uk.ibm.com> Date: Wed, 16 May 2001 14:53:57 +0100 Subject: Re: issue 4252 - registering an Action with multiple SignalSets Mime-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset=us-ascii X-UIDL: h*\!!$fc!!gYBe9^_f!! The discussion on the interposition issue (4250) is now evolving into a design where a subordinate registers an Action with the superior for each SignalSet used in the subordinate. For efficiency, it would be better for the same Action to be used for each SignalSet. Since we have also recognised the need (separate issue) to split the ChildLifetime SignalSet into separate SignalSets for Begin and Complete, there is now a recognised need to support the registration of a single Action with multiple SignalSets. There is still an issue to resolve which is: what behaviour is defined if Action A is registered multiple times with SignalSet S using different priorities each time? 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 "Mark Little" on 06/04/2001 09:54:41 Please respond to "Mark Little" To: "Peter Furniss" , "Ots-Structs-Ftf" cc: Subject: Re: issue 4252 - registering an Action with multiple SignalSets > To take an analogy from OTS, isn't registering with multiple SignalSets > equivalent to having an object that is both a Synchronization and a > Resource. That would be somewhat odd, but if Synchronization had been split > into a pre-synch and post-synch (since not everything needs both), something > that did need both would register as both. In Activity Service terms, I > think that would be regisration in multiple SignalSets. > > But I agree it seems wrong to have multiple registration by the same Action > in the same SignalSet. It should be one-man, one-vote :-) Agreed. Ian and I discussed this several weeks ago and I believe it's a legacy from an old cut-and-paste job. I certainly don't have an issue with this change (no pun intended!) Mark. ---------------------------------------------- Dr. Mark Little (mark@arjuna.com) Transactions Architect, HP Arjuna Labs Phone +44 191 2064538 Fax +44 191 2064203 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.96) with SMTP id QAA225118; Wed, 16 May 2001 16:33:26 +0100 Received: by d06mta05.portsmouth.uk.ibm.com(Lotus SMTP MTA v4.6.5 (863.2 5-20-1999)) id 80256A4E.00557422 ; Wed, 16 May 2001 16:33:22 +0100 X-Lotus-FromDomain: IBMGB To: "Mark Little" cc: ots-structs-ftf@omg.org, issues@omg.org Message-ID: <80256A4E.004C84EF.00@d06mta05.portsmouth.uk.ibm.com> Date: Wed, 16 May 2001 14:53:57 +0100 Subject: Re: issue 4252 - registering an Action with multiple SignalSets Mime-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset=us-ascii X-UIDL: VU1e9Xb2!!Nl~e9:^E!! The discussion on the interposition issue (4250) is now evolving into a design where a subordinate registers an Action with the superior for each SignalSet used in the subordinate. For efficiency, it would be better for the same Action to be used for each SignalSet. Since we have also recognised the need (separate issue) to split the ChildLifetime SignalSet into separate SignalSets for Begin and Complete, there is now a recognised need to support the registration of a single Action with multiple SignalSets. There is still an issue to resolve which is: what behaviour is defined if Action A is registered multiple times with SignalSet S using different priorities each time? 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 "Mark Little" on 06/04/2001 09:54:41 Please respond to "Mark Little" To: "Peter Furniss" , "Ots-Structs-Ftf" cc: Subject: Re: issue 4252 - registering an Action with multiple SignalSets > To take an analogy from OTS, isn't registering with multiple SignalSets > equivalent to having an object that is both a Synchronization and a > Resource. That would be somewhat odd, but if Synchronization had been split > into a pre-synch and post-synch (since not everything needs both), something > that did need both would register as both. In Activity Service terms, I > think that would be regisration in multiple SignalSets. > > But I agree it seems wrong to have multiple registration by the same Action > in the same SignalSet. It should be one-man, one-vote :-) Agreed. Ian and I discussed this several weeks ago and I believe it's a legacy from an old cut-and-paste job. I certainly don't have an issue with this change (no pun intended!) Mark. ---------------------------------------------- Dr. Mark Little (mark@arjuna.com) Transactions Architect, HP Arjuna Labs Phone +44 191 2064538 Fax +44 191 2064203 From: "Mark Little" To: Cc: References: <80256A4E.004C84EF.00@d06mta05.portsmouth.uk.ibm.com> Subject: Re: issue 4252 - registering an Action with multiple SignalSets Date: Fri, 18 May 2001 08:36:08 +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 Content-Type: text/plain; charset="iso-8859-1" X-UIDL: 18Ke9&+Oe9Y([d9AMS!! > There is still an issue to resolve which is: what behaviour is defined if > Action A is registered multiple times with SignalSet S using different > priorities each time? I think this is definitely a different issue and shouldn't be allowed. For interposition what we're proposing is the same Action register with *different* SignalSets. An Action registering more than once with the *same* SignalSet should be illegal (or at least undefined - though for portability reasons I'd prefer ruling it out explicitly). Mark. ---------------------------------------------- Dr. Mark Little (mark@arjuna.com) Transactions Architect, HP Arjuna Labs Phone +44 191 2064538 Fax +44 191 2064203 From: ian_robinson@uk.ibm.com Received: from d06mta05.portsmouth.uk.ibm.com (d06mta05_cs0 [9.180.35.3]) by d06relay02.portsmouth.uk.ibm.com (8.8.8m3/NCO v4.96) with SMTP id PAA226230; Mon, 21 May 2001 15:48:54 +0100 Received: by d06mta05.portsmouth.uk.ibm.com(Lotus SMTP MTA v4.6.5 (863.2 5-20-1999)) id 80256A53.00515B8B ; Mon, 21 May 2001 15:48:38 +0100 X-Lotus-FromDomain: IBMGB To: "Mark Little" cc: ots-structs-ftf@omg.org Message-ID: <80256A53.00515641.00@d06mta05.portsmouth.uk.ibm.com> Date: Mon, 21 May 2001 15:30:14 +0100 Subject: Re: issue 4252 - registering an Action with multiple SignalSets Mime-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset=us-ascii X-UIDL: j8'!!L@?e9\&G!!b on 18/05/2001 08:36:08 Please respond to "Mark Little" To: Ian Robinson/UK/IBM@IBMGB cc: ots-structs-ftf@omg.org Subject: Re: issue 4252 - registering an Action with multiple SignalSets > There is still an issue to resolve which is: what behaviour is defined if > Action A is registered multiple times with SignalSet S using different > priorities each time? I think this is definitely a different issue and shouldn't be allowed. For interposition what we're proposing is the same Action register with *different* SignalSets. An Action registering more than once with the *same* SignalSet should be illegal (or at least undefined - though for portability reasons I'd prefer ruling it out explicitly). Mark. ---------------------------------------------- Dr. Mark Little (mark@arjuna.com) Transactions Architect, HP Arjuna Labs Phone +44 191 2064538 Fax +44 191 2064203 From: "Mark Little" To: Cc: References: <80256A53.00515641.00@d06mta05.portsmouth.uk.ibm.com> Subject: Re: issue 4252 - registering an Action with multiple SignalSets Date: Tue, 22 May 2001 10:08:27 +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 Content-Type: text/plain; charset="iso-8859-1" X-UIDL: 5QCe9f&g!!n~Oe9V8Vd9 > Illegal is fine. We need a new exception, then, on add_(global_)action. How > about ActionAlreadyAdded? My temptation is to follow the OTS route and simply assume it's up to the user to ensure this. Object identity is still (as far as I know) a tricky subject in CORBA, unless we add an Action id tag to the interface. Mark. ---------------------------------------------- Dr. Mark Little (mark@arjuna.com) Transactions Architect, HP Arjuna Labs Phone +44 191 2064538 Fax +44 191 2064203 From: ian_robinson@uk.ibm.com Received: from d06mta10.portsmouth.uk.ibm.com (d06mta09_cs0 [9.180.35.6]) by d06relay02.portsmouth.uk.ibm.com (8.11.1m3/NCO v4.96) with SMTP id f5CDvJA103278; Tue, 12 Jun 2001 14:57:23 +0100 Received: by d06mta10.portsmouth.uk.ibm.com(Lotus SMTP MTA v4.6.5 (863.2 5-20-1999)) id 80256A69.004C9C00 ; Tue, 12 Jun 2001 14:56:46 +0100 X-Lotus-FromDomain: IBMGB To: "Mark Little" cc: ots-structs-ftf@omg.org Message-ID: <80256A69.00493BC2.00@d06mta10.portsmouth.uk.ibm.com> Date: Tue, 12 Jun 2001 14:05:15 +0100 Subject: Re: issue 4252 - registering an Action with multiple SignalSets Mime-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset=us-ascii X-UIDL: [b2!!3&*!!/Xk!!b!$e9 If we leave this to the user, and don't throw an exception, then it isn't illegal. If it isn't illegal, then we need to define the behaviour (for portability) in the case where an action is added multiple times for the same SignalSet with different priorities. The alternative is to define this as illegal and specify an exception that the Activity service will throw. We also need to consider the case where an action is added both as a global action and with interest in a specific SignalSet. This should either be supported (with defined behaviour for which priorities are used) or illegal (with defined exceptions) - whichever way we decide to go with this issue. With regard object identity, we could add the following method to the Action interface to facilitate this: boolean equals(in Action act); The implementation would be up to the Action (it could, for example, make use of some internal identifier). The method would return true if the target instance is the same as the parameter instance. 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 "Mark Little" on 22/05/2001 10:08:27 Please respond to "Mark Little" To: Ian Robinson/UK/IBM@IBMGB cc: ots-structs-ftf@omg.org Subject: Re: issue 4252 - registering an Action with multiple SignalSets > Illegal is fine. We need a new exception, then, on add_(global_)action. How > about ActionAlreadyAdded? My temptation is to follow the OTS route and simply assume it's up to the user to ensure this. Object identity is still (as far as I know) a tricky subject in CORBA, unless we add an Action id tag to the interface. Mark. ---------------------------------------------- Dr. Mark Little (mark@arjuna.com) Transactions Architect, HP Arjuna Labs Phone +44 191 2064538 Fax +44 191 2064203 From: "Mark Little" To: Cc: References: <80256A69.00493BC2.00@d06mta10.portsmouth.uk.ibm.com> Subject: Re: issue 4252 - registering an Action with multiple SignalSets Date: Wed, 13 Jun 2001 20:38:14 +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 Content-Type: text/plain; charset="iso-8859-1" X-UIDL: 6N)e9=V\d9D!*e99C`d9 > If we leave this to the user, and don't throw an exception, then it isn't > illegal. If we want to make it illegal then we should throw an exception if we determine that the service can detect this. Otherwise we can pass it up to the user-level as say that they must ensure an Action is not registered more than once. > If it isn't illegal, then we need to define the behaviour (for portability) > in the case where an action is added multiple times for the same SignalSet > with different priorities. I cannot see any reason why an Action should be registered with the same SignalSet. At a minimum we should say something like "an Action is implicitly associated with a single SignalSet". Whether we want to have the service enforce this is not something I am convinced about either way. > The alternative is to define this as illegal and specify an exception that > the Activity service will throw. That is *an* alternative, but there are others as I have indicated above. > We also need to consider the case where an action is added both as a global > action and with interest in a specific SignalSet. This should either be > supported (with defined behaviour for which priorities are used) or illegal > (with defined exceptions) - whichever way we decide to go with this issue. What's the benefit of having a global action also being a "specific" action? Let's just keep the discussion in terms of Actions, and the global action will just fall out of the works. > With regard object identity, we could add the following method to the > Action interface to facilitate this: > boolean equals(in Action act); > > The implementation would be up to the Action (it could, for example, make > use of some internal identifier). The method would return true if the > target instance is the same as the parameter instance. In terms of performance an portability I would prefer an action identity attribute. However, I'm still unconvinced about whether we want to enforce this rule. Mark. ---------------------------------------------- Dr. Mark Little (mark@arjuna.com) Transactions Architect, HP Arjuna Labs Phone +44 191 2064538 Fax +44 191 2064203 From: ian_robinson@uk.ibm.com Received: from d06mta10.portsmouth.uk.ibm.com (d06mta09_cs0 [9.180.35.6]) by d06relay02.portsmouth.uk.ibm.com (8.11.1m3/NCO v4.96) with SMTP id f5EDVnQ234042; Thu, 14 Jun 2001 14:31:50 +0100 Received: by d06mta10.portsmouth.uk.ibm.com(Lotus SMTP MTA v4.6.5 (863.2 5-20-1999)) id 80256A6B.004A4469 ; Thu, 14 Jun 2001 14:31:11 +0100 X-Lotus-FromDomain: IBMGB To: "Mark Little" cc: ots-structs-ftf@omg.org Message-ID: <80256A6B.004A3D9E.00@d06mta10.portsmouth.uk.ibm.com> Date: Thu, 14 Jun 2001 14:21:30 +0100 Subject: Re: issue 4252 - registering an Action with multiple SignalSets Mime-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset=us-ascii X-UIDL: G\+e97jn!!B#+e92Z'e9 > If we leave this to the user, and don't throw an exception, then it isn't > illegal. If we want to make it illegal then we should throw an exception if we determine that the service can detect this. Otherwise we can pass it up to the user-level as say that they must ensure an Action is not registered more than once. I have proposed an equals(Action) method on Action and an exception for this case in question > If it isn't illegal, then we need to define the behaviour (for portability) > in the case where an action is added multiple times for the same SignalSet > with different priorities. I cannot see any reason why an Action should be registered with the same SignalSet. At a minimum we should say something like "an Action is implicitly associated with a single SignalSet". Whether we want to have the service enforce this is not something I am convinced about either way. It would (in my opinion) be an error for an application framework to register an Action multiple times with the same SignalSet. I'm just suggesting that an Activity service implementation have a defined way of dealing with such an error. I think we've already agreed that an Action is *not* implicitly associated with a single SignalSet; for example, a subordinate Coordinator-Action registers with each superior SignalSet for which an Action is locally registered in the subordinate. > We also need to consider the case where an action is added both as a global > action and with interest in a specific SignalSet. This should either be > supported (with defined behaviour for which priorities are used) or illegal > (with defined exceptions) - whichever way we decide to go with this issue. What's the benefit of having a global action also being a "specific" action? Let's just keep the discussion in terms of Actions, and the global action will just fall out of the works. Again - it should be an error condition; the general exception proposed above can also be thrown in this case. 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 "Mark Little" on 13/06/2001 20:38:14 Please respond to "Mark Little" To: Ian Robinson/UK/IBM@IBMGB cc: ots-structs-ftf@omg.org Subject: Re: issue 4252 - registering an Action with multiple SignalSets > If we leave this to the user, and don't throw an exception, then it isn't > illegal. If we want to make it illegal then we should throw an exception if we determine that the service can detect this. Otherwise we can pass it up to the user-level as say that they must ensure an Action is not registered more than once. > If it isn't illegal, then we need to define the behaviour (for portability) > in the case where an action is added multiple times for the same SignalSet > with different priorities. I cannot see any reason why an Action should be registered with the same SignalSet. At a minimum we should say something like "an Action is implicitly associated with a single SignalSet". Whether we want to have the service enforce this is not something I am convinced about either way. > The alternative is to define this as illegal and specify an exception that > the Activity service will throw. That is *an* alternative, but there are others as I have indicated above. > We also need to consider the case where an action is added both as a global > action and with interest in a specific SignalSet. This should either be > supported (with defined behaviour for which priorities are used) or illegal > (with defined exceptions) - whichever way we decide to go with this issue. What's the benefit of having a global action also being a "specific" action? Let's just keep the discussion in terms of Actions, and the global action will just fall out of the works. > With regard object identity, we could add the following method to the > Action interface to facilitate this: > boolean equals(in Action act); > > The implementation would be up to the Action (it could, for example, make > use of some internal identifier). The method would return true if the > target instance is the same as the parameter instance. In terms of performance an portability I would prefer an action identity attribute. However, I'm still unconvinced about whether we want to enforce this rule. Mark. ---------------------------------------------- Dr. Mark Little (mark@arjuna.com) Transactions Architect, HP Arjuna Labs Phone +44 191 2064538 Fax +44 191 2064203 From: "Mark Little" To: Cc: References: <80256A6B.004A3D9E.00@d06mta10.portsmouth.uk.ibm.com> Subject: Re: issue 4252 - registering an Action with multiple SignalSets Date: Thu, 14 Jun 2001 15:09:12 +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 Content-Type: text/plain; charset="iso-8859-1" X-UIDL: >SJ!!1k8e9_`[d9*A'!! > If we want to make it illegal then we should throw an exception if we > determine that the service can detect this. Otherwise we can pass it up to > the user-level as say that they must ensure an Action is not registered > more > than once. > > I have proposed an equals(Action) method on Action and an exception > for this case in question As I indicated in my response, if we go this route then I would prefer an Id attribute for performance reasons. > It would (in my opinion) be an error for an application framework to > register an Action multiple times with the same SignalSet. I'm just > suggesting that an Activity service implementation have a defined way of > dealing with such an error. > I think we've already agreed that an Action is *not* implicitly associated > with a single SignalSet; for example, a subordinate Coordinator-Action > registers with each superior SignalSet for which an Action is locally > registered in the subordinate. We haven't agreed that at all - it's an open issue to be discussed. On this subject though, why would the same action be registered with different SignalSets? Why could I not have one action per signalset and have this delegate through to the subordinate coordinator implementation? As I said, I can't see any reason why we would want to allow the same Action to register with different signalsets. The only issue is do we take the OTS approach and simply specify the protocol in text, or be more rigorous. I'm open to debate on this. Mark. ---------------------------------------------- Dr. Mark Little (mark@arjuna.com) Transactions Architect, HP Arjuna Labs Phone +44 191 2064538 Fax +44 191 2064203 Importance: Normal Subject: Re: issue 4252 - registering an Action with multiple SignalSets To: "Mark Little" Cc: ots-structs-ftf@omg.org X-Mailer: Lotus Notes Release 5.0.5 September 22, 2000 Message-ID: From: "Ian Robinson" Date: Thu, 5 Jul 2001 11:20:26 +0100 X-MIMETrack: Serialize by Router on d06ml007/06/M/IBM(Release 5.0.6 |December 14, 2000) at 05/07/2001 11:28:31 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-UIDL: C![d9a98!!>i,!!VhSd9 If Actions are allowed to be registered with an interest in multiple SignalSets, then we should extend the behaviour of remove_action to allow them to de-register their interest in specific SignalSets. This would provide an efficient means to implement interposition. 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 4252: proposal To: ots-structs-ftf@omg.org X-Mailer: Lotus Notes Release 5.0.5 September 22, 2000 Message-ID: From: "Ian Robinson" Date: Tue, 17 Jul 2001 20:18:36 +0100 X-MIMETrack: Serialize by Router on d06ml007/06/M/IBM(Release 5.0.6 |December 14, 2000) at 18/07/2001 08:14:49 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-UIDL: 5`T!!:4#"!LII!!R&9e9 Proposal for resolution of 4252: The following text, in section 2.2.1.1, should be removed: "An Action is implicitly associated with a single Activity and should only be with that Activity." There is then no inconsistency with the following statement in sections 1.2.1.5 "An Action may register interest in more than one SignalSet and an Activity may use more than one SignalSet during its lifetime." One advantage of this clarification is that interposition can be implemented by a subordinate ActivityCoordinator registering as an Action with the discrete set of its superior's SignalSets. The following statement should be added to the description of the ActivityCoordinator and Current interfaces' add_action and add_actions methods: If the specified Action is registered multiple times for the same SignalSet then it will invoked multiple times with the Signals from that SignalSet. The remove_action and remove_actions methods of the ActivityCoordinator and Current interfaces should each have an additional string parameter of signal_set_name added so that Actions registered with multiple SignalSets can be removed from specific SignalSets. The interfaces and descriptions should be changed as follows: void remove_action(in CosActivity::Action act, in string signal_set_name) raises(CosActivity::ActionNotFound, CosActivity::NoActivity); Removes the interest relationship between the specified Action and the named SignalSet. No further Signals from the named SignalSet will be sent to the specified Action. If signal_set_name is specified as an empty string, then the Action will be sent no further Signals from any SignalSet. If the Action has not previously been registered with the coordinator, then the ActionNotFound exception will be thrown. If there is no Activity associated with the current thread, then the NoActivity exception will be thrown. If the Activity has begun completion, or has completed, then the INVALID_ACTIVITY exception is thrown. CosActivity::ActionSeq remove_actions(in CosActivity::ActionSeq acts, in string signal_set_name) raises(CosActivity::NoActivity); Removes the interest relationship between the specified Actions and the named SignalSet. No further Signals from the named SignalSet will be sent to the specified Actions. If signal_set_name is specified as an empty string, then the Actions will be sent no further Signals from any SignalSet. If any of the Actions have not previously been registered with the coordinator, then it will return references to them after removing all other Actions in the sequence. Otherwise nil will be returned. If there is no Activity associated with the current thread, then the NoActivity exception will be thrown. If the Activity has begun completion, or has completed, then the INVALID_ACTIVITY exception is thrown. 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 Received: from cheviot3.ncl.ac.uk (hobbit.omg.org [192.67.184.3]) by emerald.omg.org (8.11.0/8.9.2) with SMTP id f6I8wZL00770 for ; Wed, 18 Jul 2001 04:58:35 -0400 (EDT) Received: from cheviot.ncl.ac.uk (128.240.233.51) by hobbit.omg.org asmtp(1.0) id 14920; Wed, 18 Jul 2001 05:09:18 -0400 (EDT) Received: from tranwell (tranwell.ncl.ac.uk [128.240.150.110]) by cheviot3.ncl.ac.uk (8.10.1/8.10.1) with SMTP id f6I94C916604 for ; Wed, 18 Jul 2001 10:04:12 +0100 (BST) Message-ID: <002301c10f68$d3d854b0$6e96f080@ncl.ac.uk> 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 4252: an Action can be registered with multiple signalsets. It should not be registered with the same signalset multiple times, or a hit will be taken by the user. Identity recognised via IOR. remove_action requires a signalset parameter to determine which signalset to remove the action from. Require a method to remove an Action from *all* enlisted signalsets. Called purge_action? [Ian Robinson to write up.] Importance: Normal Subject: Issue 4252: remove_action exceptions To: ots-structs-ftf@omg.org X-Mailer: Lotus Notes Release 5.0.5 September 22, 2000 Message-ID: From: "Ian Robinson" Date: Fri, 24 Aug 2001 21:58:41 +0100 X-MIMETrack: Serialize by Router on d06ml007/06/M/IBM(Release 5.0.6 |December 14, 2000) at 27/08/2001 08:46:13 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-UIDL: 2<#"!enC!!cdR!!TMid9 With regard remove_action and remove_actions on the Current and ActivityCoordinator interfaces.... void remove_action(in CosActivity::Action act, in string signal_set_name) raises(CosActivity::ActionNotFound, CosActivity::NoActivity); The NoActivity exception is only appropriate on the Current interface, not the ActivityCoordinator interface. Ian Robinson, WebSphere Transactions Architecture IBM Hursley Lab Tel (Ext) +44-1962-818626 (Int) 7-248626 ian_robinson@uk.ibm.com From: "Mark Little" To: , "Ian Robinson" References: Subject: Re: Issue 4252: remove_action exceptions Date: Wed, 5 Sep 2001 12:22:28 +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: 3.4 (cheviot3) Content-Type: text/plain; charset="iso-8859-1" X-UIDL: g_i!!d^0e9P-*!!7^Q!! > With regard remove_action and remove_actions on the Current and > ActivityCoordinator interfaces.... > > void remove_action(in CosActivity::Action act, in string > signal_set_name) > raises(CosActivity::ActionNotFound, > CosActivity::NoActivity); > > The NoActivity exception is only appropriate on the Current > interface, not > the ActivityCoordinator interface. Agreed. I think this is a cut-and-paste problem. 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