Horizon CNOS connections

From m204wiki
Jump to navigation Jump to search

CNOS overview

SNA LU 6.2 supports single-session and parallel-session connections. A parallel-session LU can have multiple concurrently active sessions with a given partner LU. A single-session LU cannot activate another session until the current session is deactivated. SNA CNOS verbs dynamically control the number, activation, and deactivation of parallel sessions between two LUs.

CNOS has no meaning for the TCP/IP protocol, and therefore the features in this appendix are not applicable for connections using a TCP/IP protocol.

This section provides an overview of CNOS terminology and basic operation.

CNOS terminology

Each CNOS command has a source and a target. The source LU is the LU that issues the CNOS request. The target LU is the LU that receives the CNOS request and issues the CNOS reply.

CNOS requests are issued only over control sessions. There are two control sessions for each pair of partner LUs. These sessions are dedicated to regulating the remaining conversational sessions bound between the LU partners. A conversational session is a session used for conversations between user applications.

A CNOS command can apply to all sessions existing between two logical units or just those in a particular mode. A mode is a subset of the sessions between two LUs. All sessions in a mode, by definition, have a common logmode name and common session characteristics.

A logmode names a SNA Communications Server (formerly VTAM) table entry that contains predefined session characteristics that SNA Communications Server uses to establish sessions between two logical units. The CNOS partners' common session characteristics include request unit size, access security, trusted logins, and support for LU 6.2 and the CNOS protocol.

A mode is identified to the LU partners by a mode name which must be unique to the LU it subdefines.

The session limit is the maximum number of concurrent sessions that can exist between two LUs using the same mode.

CNOS session control

The three basic CNOS verbs are INITIALIZE, RESET, and CHANGE:

  • INITIALIZE_SESSION_LIMIT changes the session limit from zero to a nonzero number.
  • RESET_SESSION_LIMIT changes the session limit to zero.
  • CHANGE_SESSION_LIMIT increases or decreases the session limits

Setting session limits

When a CNOS INITIALIZE verb sets a session limit it specifies:

  • Source requested maximum session count
  • Guaranteed number of source contention winners
  • Guaranteed number of target contention winners

Source contention winners means the number of sessions the source has reserved for itself. Target contention winners means the number of sessions the source is willing to reserve for the target.

The target may negotiate these values to meet its requirements and uses several negotiation rules to do so. The target replies to the source with values for the bulleted items above and will indicate whether the values returned have been negotiated.

Deactivating sessions

A CNOS RESET verb specifies:

  • Whether the source or target is responsible for session deactivation.
  • Whether the reset applies to one or all modes between the local and remote LU.

When one resets the session limit, one of the two LUs must deactivate the sessions between them to make the active session count equal to zero. The RESPONSIBLE parameter of RESET designates who is responsible for deactivating the required number of sessions.

Sessions are deactivated in an orderly manner:

  • Conversations are allowed to finish.
  • The responsible LU indicates that it will send no new conversation requests by sending a BIS (Bracket Initiation Stop) request.
  • The target of this request acknowledges and concurs by sending a BIS reply.
  • The responsible LU asks SNA Communications Server to deactivate the session by sending an UNBIND request.

Changing session limits

When a CNOS CHANGE verb increases or decreases session limits, it specifies the same parameters (session count and contention winners) as INITIALIZE. If sessions need to be deactivated to meet the new session limits, CHANGE (like RESET) specifies the node responsible for session deactivation and the modes affected.

CNOS minimum support

Horizon provides the CNOS minimum support set, which includes the components listed below:

  • A control-operator transaction program that can issue the CNOS minimum support set verbs
  • Presentation services for the control operator program
  • Two control sessions for every CNOS LU pair
  • The CNOS service transaction program

Minimum support verbs

The CNOS minimum support verbs include the control operator, LU definition, and display verbs shown in <A HREF="Apxe.htm#0_56526" CLASS="XRef">See CNOS verbs with equivalent Model 204 commands</A>. The table also shows the Model 204 commands (presentation) for those verbs:

CNOS verbs with equivalent Model 204 commands

CNOS verb Meaning for Model 204 Model 204 command
INITIALIZE_SESSION_LIMIT (send support) Horizon initiates CNOS communications with a partner LU START SESSIONGROUP
INITIALIZE_SESSION_LIMIT(receive support) Horizon responds to a remote LU's CNOS_INITIALIZE request --
RESET_SESSION_LIMIT (send support) Horizon shuts down conversation traffic STOP SESSIONGROUP
RESET_SESSION_LIMIT
(receive support)
Horizon responds to a remote LU's CNOS RESET request --
RESET_SESSION_LIMIT
MODENAME(ALL)
Horizon lets all conversations for all sessiongroups with a remote to finish, unbinds the sessions, and frees the sessiongroups STOP REMOTE
CHANGE_SESSION_LIMIT
(receive support)
Horizon responds to a remote LU's CHANGE_SESSION_LIMITrequest --
DEFINE_TP Defines Horizon process DEFINE PROCESS
DEFINE_LOCAL_LU Defines Horizon link DEFINE LINK
DEFINE_REMOTE_LU Defines Horizon remote DEFINE REMOTE
DEFINE_MODE Defines Horizon sessiongroup DEFINE SESSIONGROUP
DISPLAY_TP Shows Horizon CNOS process usage MONITOR PROCESS
DISPLAY_LOCAL_LU Shows Horizon CNOS link usage MONITOR LINK
DISPLAY_REMOTE_LU Shows Horizon CNOS remote usage MONITOR REMOTE
DISPLAY_MODE Shows Horizon sessiongroup usage MONITOR SESSIONGROUP

Optional verb

Model 204 also provides send support for CHANGE_SESSION_LIMIT, allowing Model 204 user to initiate execution of MODIFY SESSIONGROUP. This functionality is not required as part of the CNOS minimum support set.

Managing the Horizon CNOS network

Setting up Horizon CNOS support requires modifications to the basic Horizon network entity definitions, two CNOS-specific entity definitions, and two SNA Communications Server mode table entry definitions.

Horizon network control commands are modified to apply to CNOS entities and include some functionality not available to non-CNOS Horizon.

Defining CNOS network entities to Model 204

You need to define two CNOS-only network entities, and you need to follow the CNOS-specific syntax for the three basic Horizon network entities.

Remotes and sessiongroups

The following Model 204 intersystem entities are unique to and required for Horizon links with CNOS sessions:

Intersystem entity Description
Remote Identifies the remote LU and specifies the local link to which the remote node connects and the login security for the link.
Sessiongroup A group of sessions with the same network properties (from a common remote and link) and the same session characteristics (from a common SNA Communications Server logmode entry).

You request CNOS support by including a remote entity and one or more sessiongroup entity definitions with your link, processgroup, and process definitions.

Links, processgroups, and processes

The basic Horizon entity definitions are documented on the following wiki command pages:

Defining CNOS support to SNA Communications Server

SNA Communications Server network definition for Horizon CNOS differs from non-CNOS only in the SNA Communications Server mode table entry requirements. Horizon CNOS connections require two mode entries:

  • One entry for the characteristics of the CNOS control sessions
  • One or more entries for the characteristics of the CNOS conversation sessions

Coding the SNA Communications Server APPL definition

Follow the directions in Chapter 3 for non-CNOS APPL definitions.

Coding the mode table entries

Define a mode entry whose entry name and LOGMODE parameter value is SNASVCMG. You can use the SNASVCMG entry in the default mode table supplied by IBM.

Define one or more mode entries for the CNOS conversation sessions. Make sure each entry has an entry name and LOGMODE parameter value that matches the value of the MODENAME parameter of a DEFINE SESSIONGROUP command.

For each conversation session entry, follow the parameter recommendations in the logon mode table for non-CNOS connections, with one exception:

Specify PSERVIC=X'060200000000000000102300'

Handling CNOS errors

Rejecting a CNOS connection

If you issue an inbound request for an existing process that does not seem (according to the definitions) to have a logical connection with the CNOS connection over which the connection request has come, Model 204 issues the following message:

M204.2837: NO LOGICAL CONNECTION BETWEEN PROCESS %C AND REMOTEID %C

Typical CNOS connection errors

Typically, Model 204 informs you of errors involving the CNOS connection by issuing the 2260 error message that follows. The message suits a variety of error situations by substituting one of multiple qualifying phrases according to the error characteristics.

M204.2260: CONNECTION [INITIALIZATION | CHANGE OF SESSION LIMITS | RESET | RESET OF ALL MODENAMES] WITH [partner-LU] [COMPLETED SUCCESSFULLY | DID NOT COMPLETE] - [qualifier], SOURCE WAS [originating-LU]

Where:

Argument Means...
CONNECTION INITIALIZATION COMPLETED SUCCESSFULLY Initial intersystem handshake is completed and user procedures can run over the connection.
CONNECTION CHANGE OF SESSION LIMITS COMPLETED SUCCESSFLLY By request of one partner, the capacity of the intersystem connection was increased or decreased.
CONNECTION RESET COMPLETED SUCCESSFULLY

One partner is draining the conversational sessions between the two partners that belong to the relevant SESSIONGROUP.

All sessions will be terminated when the drain completes.

You must reinitialize the connection to begin another user conversation.

CONNECTION RESET OF ALL MODENAMES COMPLETED SUCCESSFULLY

One partner is draining all service and all conversational session for each of the SESSIONGROUPs between the two partners.

All sessions will be terminated when the drain completes.

You must reinitialize the connection to begin another user conversation.

partner-LU

Specifies the name of the conversation partner program. It is the same name used in the DEFINE PROCESS command for the server process at the remote node.

qualifier

One of the phrases explained in Message 2260 qualifiers

originating-LU Specifies the name of the source program. It is the same name used in the DEFINE PROCESS command for the local server.

Note: Periodically check that the connection is being set up and shut down as planned.

Message 2260 qualifiers

Qualifying phrase Meaning
ACCEPT END / INIT END FAILED An internal error has occurred.
COMMAND RACE DETECTED Another CNOS command was in progress when you submitted your START SESSIONGROUP or STOP SESSIONGROUP or STOP REMOTE. Please try again.
ERROR UNLOCKING SGRD A serious internal error has occurred.
MODENAME IN USE BY A PGRD The MODENAME value in your sessiongroup definition has already been allocated to a processgroup owned by the same link.
MODENAME IN USE BY AN SGRD The MODENAME value in your sessiongroup definition has already been allocated to a processgroup owned by the same remote.
MODENAME NOT DEFINED The target of the CNOS request could not find a sessiongroup and remote definition that matched the source's START SESSIONGROUP or STOP SESSIONGROUP or STOP REMOTE.
NEGOTIATED The target negotiated the source's CNOS request.
NOT NEGOTIATED The target accepted the CNOS request as it was and did not attempt to change it.
OPEN PROCESS FAILED An internal error has occurred.
PROTOCOL VIOLATION DETECTED The CNOS source or target has committed a protocol error (for example, requesting more winners than maximum sessions, not specifying a mode name on a set or reset command, trying to negotiate a reset command, etc.). See "Parallel Session Support" in the SNA Format and Protocol Reference.
RECEIVE FAILED An internal error has occurred.
REMOTE NOT DEFINED The named remote has no remote entity definition.
REMOTEID IN USE BY A PGRD The REMOTEID specified in the remote entity definition was previously allocated to a non-CNOS processgroup. A non-CNOS processgroup may not share a REMOTEID with a remote unless they are owned by different links.
REMOTEID IN USE BY AN RMTD The REMOTEID specified in the remote entity definition was previously allocated to another remote owned by the same link.
RMTD CHAINING ERROR A serious internal error has occurred.
RMTD LINK NOT DEFINED Model 204 is unable to find an entity definition for the link named in the remote entity definition.
RMTD NOT INIT GCORE FAILED Model 204 is unable to get the storage necessary to initialize a remote control block.
RMTD NOT INIT RESET RQ RECVD A STOP REMOTE has been received for a remote that was already stopped or was never initialized (none of its sessiongroups was ever started)
SEE PREVIOUS MESSAGE A bug has occurred. See the previous bug message.
SEND FAILED An internal error has occurred.
SESSION LIMIT AT 0 The target has refused the source's request because its session limit is already zero.
SESSIONGROUP ALREADY STOPPED Model 204 received a STOP SESSIONGROUP request for a sessiongroup that was already stopped (by a previous STOP SESSIONGROUP or STOP REMOTE).
SESSIONGROUP NOT DEFINED

A. The named sessiongroup has no entity definition.

B. The named sessiongroup has no corresponding definition at the remote node that matches the sessiongroup's REMOTEID and MODENAME values.

SGRD CHAINING ERROR A serious internal error has occurred.
SGRD IN LOCK DENIED STATE A command race occurred and your request was the loser. Please try again.
SGRD LOCK BY SOURCE A command race occurred and your request was the loser. Please try again.
SGRD LOCKED BY TARGET A command race occurred and your request was the loser. Please try again.
SGRD NOT INIT GCORE FAILURE Model 204 is unable to allocate the storage needed to initialize the SGRD.
SNASVCMG CHAINING ERROR A serious internal error has occurred.
SNASVCMG IN USE BY A PGRD A serious internal error has occurred.
SNASVCMG NOT DEFINED A serious internal error has occurred.
SNASVCMG NOT INIT- GCORE FAIL Model 204 is unable to allocate the storage needed to initialize the SGRD for SNASVCMG.
SNASVCMG NOT INIT- RESET RECV A serious internal error has occurred.