OTS 1.0 NO IDEA Avatar
  1. OMG Issue

OTS — Order of processing during Activity completion.

  • Key: OTS-21
  • Legacy Issue Number: 4346
  • Status: closed  
  • Source: International Business Machines ( Dr. Ian Robinson)
  • Summary:

    In order to write a portable application or application framework that uses
    the Activity service, and in order for Activity service implementations to
    fully interoperate, the ordering and semantics of completion processing
    need to be more explictly defined than is presently the case.
    I describe below what is intended and implied by the current specification,
    but which I believe needs to be more explictly stated to avoid
    implementations applying different interpretations.

    1. Current::complete_with_status(cs) is called
    2. This drives ActivityCoordinator::complete_activity(completion_ss_name,
    cs). This may be a remote call and there is a separate issue as to whether
    context is propagated on this; it depends on the ActivityPolicyValue of the
    ActivityCoordinator.
    3. The preComplete synchronization signal is distributed. Activity context
    must be available on the thread when the Actions process this signal.
    4. The completion signals are distributed to registered Actions. The
    presence or not of Activity context with these flows is not defined. I
    don't think the presence of Activity context hurts and is consistent with
    the behaviour during synchronization preComplete. OTS is a little different
    because Synchronization is a TO (OTSPolicy=ADAPTS) whereas Resource is not
    (OTSPolicy=FORBIDS). One advantage of keeping the context available during
    completion processing is that the PropertyGroups are available.
    5. The childComplete processing occurs in any parent Activity. Logically,
    the parent coordinator process_signal_set method is called and the
    SignalSet implementation gets the information it needs from the current
    Activity (which is the completing activity, still active on the thread) to
    build the ActivityInformation structure.
    6. The context is logically suspended. Any PropertyGroups are called with
    suspended() and then with completed().
    7. The postComplete synchronization signal is sent.
    8. Any remaining Activity service objects for the completing Activity are
    cleaned up.
    9. The call returns to the client.

    In some respects, it would be better if (5) and (6) could be reversed but
    this cannot be the case if the child activity context needs to be on the
    thread for the parent to perform the childComplete processing.

  • Reported: OTS 1.0b1 — Fri, 15 Jun 2001 04:00 GMT
  • Disposition: Resolved — OTS 1.0
  • Disposition Summary:

    Change the text so it make things clearer

  • Updated: Fri, 6 Mar 2015 20:57 GMT