3.3.4.5.2 Primary

If the teardownType parameter is not TT_PROBLEM, and the sRank parameter is SRANK_PRIMARY, the caller MUST be a primary partner, and the callee MUST be a secondary partner.

The secondary partner MUST:

  • Set the state of the session object associated with the context handle to Teardown.

  • Free the context handle associated with the session by setting the contextHandle parameter to NULL.

  • Return S_OK from the method.

In addition, it MUST start the Session Teardown timer associated with that session object if it has not already been started, and attempt to call the TearDown method on the primary partner. When the call completes, regardless of whether it was successful or not, or when the Session Teardown timer expires, the secondary partner MUST close the binding handle of the session object, cancel the Session Teardown timer, and remove the session object from the session table. (See [C706].) Once this has been done, the level-two protocol MUST be notified that a forced teardown has occurred, and provide the level-two protocol with the session object.

The secondary partner SHOULD choose to perform these actions asynchronously.