|
As indicated in the preceding section, an NSPE or Notify
RU can arrive at an application program when, after having received
a positive response to a session-initiation request, the program is
awaiting the next event in the session-establishment procedure. Here are some
examples of conditions that cause an NSPE or Notify RU to be generated
and delivered to an application program: - An application program issues REQSESS, and the macroinstruction
is completed successfully (indicating that SSCP returned a positive
response to the request). The PLU then rejects the resulting CINIT
(for example, by issuing CLSDST) which causes an NSPE or Notify RU
to be sent to the application program that issued REQSESS.
- An application program issues REQSESS, and the macroinstruction
is completed successfully. The PLU is then abnormally terminated before
it can process the CINIT that resulted from the REQSESS. VTAM® sends an NSPE or Notify request unit to
the application program that issued REQSESS.
- An application program issues SIMLOGON for an LU, and the macroinstruction
is completed successfully (indicating that a CINIT for a session with
the LU is created by VTAM and
sent to the application program that issued the macroinstruction).
Before the CINIT can be processed, the VTAM operator
deactivates the LU. This causes VTAM to
send the application program an NSPE or Notify request unit.
- An application program issues SIMLOGON, and the LOGON exit routine
is entered. If CLSDST is issued, an NSPE or Notify results.
- Application program A issues CLSDST OPTCD=PASS to pass an LU to
application program B, and the macroinstruction completes successfully.
When application program B processes the resulting CINIT, it either
(1) rejects the CINIT by issuing CLSDST or (2) issues OPNDST to the
LU, but the LU rejects the BIND request by sending a request-rejected
response. In either case, VTAM sends
an NSPE or Notify request unit to application program A. The request
unit signals application program A that, even though the CLSDST OPTCD=PASS
is posted complete, the session that was requested cannot be established.
- Application program A issues CLSDST OPTCD=PASS to pass an LU to
application program B, and specifies PARMS=(THRDPTY=NOTIFY). Application
program B issues OPNDST OPTCD=ACCEPT to accept the resulting CINIT
and send BIND to the LU; OPNDST is successful. VTAM sends a Notify request unit to application
program A to indicate that the session is established successfully.
- An application program issues OPNDST OPTCD=ACQUIRE. Before the
session is completely established, the VTAM operator
issues VARY INACT,FORCE for the SLU. NSPE is sent to the application
program.
The format of the NSPE request unit is shown in Figure 1. The format of the Notify request is shown
in tables from Table 1 to Table 5.
If parallel sessions are initiated, the network-name pair
in NSPE and Notify is insufficient to determine which Initiate failed.
Notify, however, contains a user request correlation field that is
transformed by VTAM into a
user correlator, and passed in word 3 of the exit routine parameter
list. This can be used to isolate the failing Initiate. NSPE does not contain
a user request correlation field. Thus, if it is critical to determine
the failing request, SIMLOGON, rather than OPNDST OPTCD=ACQUIRE, should
be used by a PLU because Notify cannot be requested for OPNDST, but
can be requested for SIMLOGON. For further details, see SIMLOGON macroinstruction.
In general, if an NSPE or Notify is received indicating
that VTAM cannot ensure the
establishment of a requested session, either the session has not been
established or it is in the process of being terminated. Therefore,
if the application program issues TERMSESS or CLSDST referencing that
session, a return code indicating that the session does not exist
is usually (but not always) returned.
In some situations, such as the first two conditions described
in the preceding discussion, the application program can issue another
session-initiation request immediately, or can wait and issue the
request at a later time. Even if no other action is taken, the NSEXIT
exit routine should set registers 0 and 15 to 0 before returning control
to VTAM.
Figure 1. Format of a Network Services Procedure Error request
unit
Table 1. Format of a Notify request
unit (Part 1 of 5)Byte |
Contents |
Description |
---|
0-2 |
X'810620' |
Network service header (must be checked) for SSCP-LU
and for LU-SSCP. |
3-n* |
|
One NOTIFY vector described in the following |
3 4-n* |
|
Control vector key (must be checked) vector data |
|
Note: The body of
a NOTIFY Request Unit consists of one of the following NOTIFY vectors.
|
|
ILU/TLU or
third-party SSCP notification NOTIFY vector (X'03'). - ILU/TLU notification informs the sender of an INIT or TERM request
of the status of the session.
- Third-party notification informs a third-party SSCP (the SSCP
whose LU issued an INIT-OTHER) of the status of the setup procedure.
|
3 |
X'03' |
Control vector key (must be checked) |
4 |
|
Status (must be checked) The following lists the
currently supported values. |
|
X'00' |
SSCP (OLU) and SSCP (DLU) not logically connected.
No session (or session setup path if rerouting is required) exists
between them. |
|
X'01' |
Session terminated |
|
X'02' |
Session set up (In the same-domain case, +RSP
(SESSST) has been sent, or, in the cross-domain case, +RSP (CDSESSST)
has been sent or received). |
|
X'03' |
Procedure error |
5-12 |
|
PCID, a unique value used as a session identifier |
13 |
|
Reason (defined for a status field value of X'03' only) |
|
Note: The reason
byte is coded for two different uses:
- If bit 4 is 0, the reason byte is coded for a setup procedure
error.
- If bit 4 is 1, the reason byte is coded for a takedown procedure
error.
|
|
|
Setup procedure error - 0123 4567
- 1... ....
- An error occurred sending CINIT to the PLU.
- .1.. ....
- An error occurred sending BIND to the SLU.
- ..1. ....
- Session establishment was rejected at the PLU.
- ...1 ....
- Session establishment was rejected at the SLU.
- .... 0...
- A session setup procedure error occurred.
- .... .X..
- Reserved.
- .... ..1.
- Session establishment was rejected at the SSCP.
- .... ...X
- Reserved.
|
|
|
Takedown procedure error - 0123 4567
- 1... ....
- An error occurred sending CTERM to the PLU.
- .1.. ....
- An error occurred sending UNBIND to the SLU.
- ..1. ....
- Session takedown was rejected at the PLU.
- ...1 ....
- Session takedown was rejected at the SLU.
- .... 1...
- A session takedown procedure error occurred.
- .... .1..
- Session takedown was rejected at the SSCP.
- .... ..0.
- The bit combination of 11 for bits 4 and 6 is set aside for implementation
internal use and is not otherwise defined.
- .... ...X
- Reserved.
|
14-17 |
|
Sense data (defined for a status value of X'03' only)
The sense data, if applicable, is from the step in the procedure
that caused the session setup or takedown failure. For the meaning
of the sense data, refer to SNA Formats
|
*This value represents
a variable-length field. |
Table 2. Format of
a Notify request unit (Part 2 of 5)Byte |
Contents |
Description |
---|
18-m |
|
Session key for network name pair (Must be checked if the following
field is examined.) |
One of the following keys is used: |
|
|
|
X'06' |
Network name pair (The first name of the pair is a PLU, OLU,
LU1; the second name of the pair is an SLU, DLU, or LU2.) |
|
X'07' |
Network address pair (PLU and SLU, respectively) |
|
X'0C' |
User request correlation (URC) field Note: This session key
is applicable within a NOTIFY only for SSCP-LU; it is the URC carried
in the session key field (rather than the value from the URC field)
in TERM, and differs from the URC in bytes m+1 through n below.
|
|
X'15' |
Network-qualified address pair (PLU and SLU, respectively) |
|
X'1C' |
Network-qualified name pair (The first name of the pair is
a PLU, OLU, or LU1, the second name of the pair is an SLU, DLU, or
LU2.) |
m+1-n* |
|
User request correlation (URC) field |
m+1 |
|
Length, in binary, (number of characters) of the URC name |
m+2-n* |
|
URC name The LU-defined identifier specified in an INIT or
TERM request (It is used to correlate the NOTIFY to the initiating
request.) Note: The URC length is 0 for SSCP-SSCP.
|
*This value represents a variable-length field. |
Resource available NOTIFY vector (X'06') (replaces
NOTIFY vector key X'01'). It is used to inform the current
users (LUs) or actively controlling SSCPs of a resource (LU) that
another LU wishes to use the resource. It is sent by an SSCP that
supports NOTIFY NS key X'06', as specified in the CDRM (X'06')
control vector, to an SSCP with the same capabilities or to an LU
in its domain.
Table 3. Format
of a Notify request unit (Part 3 of 5)Byte |
Contents |
Description |
---|
3 |
X'06' |
Control vector key (must be checked) |
4-n* |
|
Three X'19' control vectors are used to identify the
LUs involved in the resource request: X'19' resource identifier
control vector identifying the current session partner of the requested
LU and the target LU X'19' resource identifier control vector
identifying the requested LU X'19' resource identifier control
vector identifying the requesting LU. Note: If the length of one
of the resource identifier control vectors is 0, the indicated LU
name is unavailable.
|
*This value represents a variable-length field. |
LU-LU session services capabilities NOTIFY vector (X'0C').
It is used to inform the SSCP having an active session with the sending
LU of the current LU-LU session services capabilities of that LU.
Table 4. Format of a Notify request
unit (Part 4 of 5)Byte |
Contents |
Description |
---|
3 |
X'0C' |
Control vector key (must be checked) |
4 |
|
Vector length |
5-n* |
|
Vector data |
5 |
|
Bits 0-3, PLU capability (reserved for Type 2.1 nodes): - 0123 4567
-
- 0000 ....
- PLU capability is inhibited. Sessions can be neither queued nor
started.
- 0001 ....
- PLU capability is disabled. Sessions can be queued or started.
- 0010 ....
- Reserved.
- 0011 ....
- PLU capability is enabled. Sessions can be queued or started.
|
|
|
Bits 4-7, SLU capability: - 0123 4567
-
- .... 0000
- SLU capability is inhibited. Sessions can be neither queued nor
started.
- .... 0001
- SLU capability is disabled. Sessions can be queued or started.
- .... 0010
- Reserved
- .... 0011
- SLU capability is enabled. Sessions can be queued or started.
|
6-7 |
|
LU-LU session limit (A value of 0 means that no session limit
is specified.) |
8-9 |
|
LU-LU session count: the number of LU-LU sessions for this
LU that are not reset, and for which SESSEND is sent to the SSCP |
10 |
|
Flags - 0123 4567
-
- 1... ....
- Parallel sessions capability. Parallel sessions supported
- .1.. ....
- Retired
- ..1. ....
- SESSST capability in RSP(ACTLU) (reserved in NOTIFY). SESSST RU
is sent if for an SLU
- ...1 ....
- XRF session activation (X'27') control vector support
in RSP(ACTLU) (reserved in NOTIFY and for peripheral nodes). XRF session
activation (X'27') control vector supported on BIND.
- .... 1...
- Peripheral node extended BIND support indicator (used between
a dependent LU and its BF, but otherwise reserved). Dependent LU does
support receipt of extended BINDs.
- .... .1..
- Network-qualified names support indicator in bytes k+2-m and p+2-r.
A BIND received by this LU can contain network-qualified LU names
in bytes k+2-m and p+2-r.
- .... ..1.
- Subarea node extended BIND support indicator (used between a subarea
LU or BF and its SSCP, but otherwise reserved). Subarea LU or BF(LU)
does support sending and receiving extended BIND.
- .... ...1
- Boundary function (BF) network address pair (X'15') session
key support (reserved for peripheral nodes). BF does support session
key X'25'.
Note: Boundary function support for session key X'25' cannot
be changed after RSP(ACTLU); in NOTIFY, the sender sets bit 7 to 0,
which is then ignored by the receiver.
|
11 |
|
Vector extension |
12-18 |
|
Retired |
LU-LU session services capabilities NOTIFY vector (X'0C').
It is used to inform the SSCP having an active session with the sending
LU of the current LU-LU session services capabilities of that LU.
Table 5. Format of a Notify request
unit (Part 5 of 5)Byte |
Contents |
Description |
---|
19 |
|
Additional capabilities: - 0123 4567
-
- 1... ....
- Receipt of unrecognized control vectors on CINIT supported.
- .111 ....
- Reserved
- .x11 ....
- 1
- ..xx xxxx
- Reserved
|
|