Symmetrical session shutdown for LU 6.1 (SBI and BIS)
Two data flow control commands allow a symmetrical and
orderly termination for peer level LU 6.1 half sessions: stop bracket
initiation (SBI
) and bracket initiation stopped (BIS
).
SBI
is a VTAM®-expedited flow command, and BIS
is a normal flow command.
These commands
control only the normal flow requests that initiate new brackets.
They do not preclude replies that can flow within existing brackets.
Either half session can send SBI
at any time to request
the receiving half session to suppress future initiation of a bracket.
After the receiver of the SBI
reaches a point between
brackets that is acceptable for shutdown, the receiver returns the BIS
command
to the SBI
initiator. The BIS
sender
then enters a no begin-bracket
or NOBB
state, during
which that half session can receive bracket initiation requests and
may send requests or replies in the normal flow when in-brackets,
but cannot initiate a bracket on its own. The primary half session
is responsible for detecting and resolving SBI
race
conditions by maintaining indications of which half session is in
NOBB state and terminating the session if both half sessions reach
this state.
A successful completion of a shutdown sequence refers to successful entry into the NOBB state by both half sessions— that is, normal session termination.
IMS sends the SBI
command either
when the IMS /QUIESCE
command
is entered or when the quiesce option is specified on the /CHECKPOINT
command. When BIS
is
returned from the other subsystem, IMS continues
with the QUIESCE
or CHECKPOINT
command
process. If the /QUIESCE
command was entered and
a CHECKPOINT QUIESCE
is not in progress, IMS sends BIS
at the next transition
to a between-brackets state. If a CHECKPOINT QUIESCE
is
in progress when IMS receives BIS
, IMS continues to send output according
to other /CHECKPOINT
parameters (FREEZE
, PURGE
,
and DUMPQ
) and then sends BIS
when
the shutdown process is complete.
After receiving an SBI
or BIS
, IMS sends BIS
at
the next between-brackets state when a CHECKPOINT QUIESCE
is
not in progress, or at the end of the shutdown process when a CHECKPOINT
QUIESCE
is in progress.
When IMS is the primary half session, IMS checks after either sending or receiving BIS
to
ensure that both half sessions are in NOBB state. If both are, IMS resets all message counts and
terminates the session. Otherwise, IMS continues
with normal processing. When IMS is
the secondary half session, IMS waits
for the primary half session to terminate the session. If an LTERM
subpool is allocated to the session, it is deallocated (and associated
message counts are reset) prior to the session termination when both
half sessions are in NOBB state. This deallocation/termination process
allows a subsequent cold start of the session and frees any allocated
subpools for use by other sessions. This process also ensures that
no resynchronization or recovery is required when the session is restarted.
Because initiating a bracket is not allowed after the NOBB state is entered, a problem occurs when a single-bracket-chain (begin- and end-bracket) input message requires an immediate reply (such as a system or error message) that initiates a bracket. Rather than preclude end-bracket on these input messages while in NOBB state, IMS accepts and continues to process all input. When a reply occurs that would require IMS to initiate a bracket while in NOBB state, the session is terminated.
While IMS is in response mode, in conversational
mode, or waiting for a Fast Path response, subpool deallocation cannot
occur nor can BIS
be sent, because no EB has flowed
either on output or input (that is, IMS is
not between-brackets).