-
Key: OTS-8
-
Legacy Issue Number: 4254
-
Status: closed
-
Source: International Business Machines ( Dr. Ian Robinson)
-
Summary:
The following section is taken from the Activity srevice specification
orbos/2000-06-19.P51: "It is not strictly necessary for an implementation of the Activity
Service to create an ActivityCoordinator prior to distributing a context
between execution
environments in which it was begun. Each Activity may be managed by at most
one ActivityCoordinator."
The description of Current::get_coordinator() is as follows:
"Returns a reference to the current Activity?s ActivityCoordinator. This
may be nil if a coordinator has yet to be created."I believe that the act of trying to obtain the ActivityCoordinator should
cause it to be created if it doesn't exist already.
For example, it should be reasonable (on a server at least) to code:CosActivity::Current_ptr cur;
CosActivity::ActivityCooridinator_ptr coord1, coord2;
...
curt->begin();
coord1 = cur->get_coordinator();
cur->begin();
coord2 = cur->get_coordinator();
coord2->is_same_activity(coord1); // This better be false! It shouldn't
blow up, either.
cur->complete();
cur->complete();Thus, I believe get_coordinator() should never return nil.
As a second part of this issue some execution environments, for example a
lightweight client, may wish to restrict access to the Activity service
through the Current interface only. Further, some environments may wish to
limit restrict access to the Activity service to a subset of the Current
function, providing little more than the ability to begin and end an
Activity context and explicitly preventing the ability to register Actions
from the environment. For example, a client environment may not have the
capability to service inbound signals for Actions and so may not want to
allow local Action implementations to be registered. Another example is a
where recoverability of the Activity is required but a particular client
environment cannot provide this quality of service. So, I suggest that at
least the Current::get_coordinator() and add_action()/add_actions() methods
should provide an exception that can be thrown by an implementation in an
environment where use of the ActivityCoordinator or Action interfaces is
not intended. In no case would it be desirable for these methods simply to
return nil. -
Reported: OTS 1.0b1 — Thu, 5 Apr 2001 04:00 GMT
-
Disposition: Resolved — OTS 1.0
-
Disposition Summary:
see above
-
Updated: Fri, 6 Mar 2015 20:57 GMT
OTS — Activity service Issue: Behaviour of get_coordinator()
- Key: OTS-8
- OMG Task Force: Additional Structures for OTS FTF