CNOS
Le verbe CNOS (Modifier le nombre de sessions) établit des limites de session APPC LU 6.2.
La structure suivante décrit le bloc de contrôle de verbe utilisé par le verbe CNOS .
Syntaxe
typedef struct cnos {
unsigned short opcode;
unsigned char reserv2[2];
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned char key[8];
unsigned char lu_alias[8];
unsigned char plu_alias[8];
unsigned char fqplu_name[17];
unsigned char reserv3;
unsigned char mode_name[8];
unsigned int mode_name_select:1;
unsigned int set_negotiable:1;
unsigned int reserv4:6;
unsigned int reserv5:8;
unsigned short plu_mode_sess_lim;
unsigned short min_conwinners_source;
unsigned short min_conwinners_target;
unsigned short auto_act;
unsigned int drain_target:1;
unsigned int drain_source:1;
unsigned int responsible:1;
unsigned int reserv6:5;
unsigned int reserv7:8;
} CNOS;
Membres
opcode
Paramètre fourni. Spécifie le code d’opération de verbe, AP_CNOS.
reserv2
Champ réservé.
primary_rc
Paramètre retourné. Spécifie le code de retour principal défini par APPC à l’achèvement du verbe. Les codes de retour valides dépendent du verbe APPC émis. Pour connaître les codes d’erreur valides de ce verbe, consultez Codes de retour.
secondary_rc
Paramètre retourné. Spécifie le code de retour secondaire défini par APPC à l’achèvement du verbe. Les codes de retour valides dépendent du verbe APPC émis. Pour connaître les codes d’erreur valides de ce verbe, consultez Codes de retour.
key
Paramètre fourni. Spécifie le master ou la clé de service en ASCII, si la fonctionnalité de verrouillage de clé a été sécurisée.
lu_alias
Paramètre fourni. Fournit le nom ASCII de 8 octets utilisé localement pour la lu.
plu_alias
Paramètre fourni. Fournit le nom ASCII de 8 octets utilisé localement pour la lu partenaire.
fqplu_name
Paramètre fourni. Fournit le nom de l’unité logique partenaire (LU) dans EBCDIC (type A) quand aucun nom de plu_alias n’est défini au niveau du nœud local et que l’unité logique partenaire se trouve sur un autre nœud.
mode_name
Paramètre fourni. Spécifie le nom du mode EBCDIC (type A) à utiliser lorsque la valeur de mode_name_select est AP_ONE.
mode_name_select
Paramètre fourni. Spécifie la sélection de nom de mode pour laquelle votre programme définit ou réinitialise les limites de session et les polarités gagnantes des conflits. Les valeurs autorisées sont AP_ALL ou AP_ONE.
set_negotiable
Paramètre fourni. Spécifie si APPC doit modifier le paramètre actuel de la limite maximale de session négociable. Les valeurs autorisées sont AP_YES et AP_NO.
reserv4
Champ réservé 6 bits.
reserv5
Champ réservé 8 bits.
plu_mode_sess_lim
Paramètre fourni. Spécifie la limite de session lorsque la valeur de set_negotiable est OUI. Les valeurs autorisées sont comprises entre 0 et 32767.
min_conwinners_source
Paramètre fourni. Spécifie le nombre de sessions dont l’unité logique est garantie comme étant le gagnant de la contention. Les valeurs autorisées sont comprises entre 0 et 32767.
min_conwinners_target
Paramètre fourni. Spécifie le nombre minimal de sessions dont l’unité logique cible est garantie comme étant le gagnant de la contention. Les valeurs autorisées sont comprises entre 0 et 32767.
auto_act
Paramètre fourni. Spécifie le nombre de sessions locales gagnantes de conflit d’unités logiques pour qu’APPC s’active automatiquement. Les valeurs autorisées sont comprises entre 0 et 32767. Consultez la section Remarques de cette rubrique avant d’utiliser ce paramètre.
drain_target
Paramètre fourni. Spécifie si l’unité logique cible peut vider ses demandes d’allocation en attente (sortantes). Les valeurs autorisées sont AP_YES et AP_NO.
drain_source
Paramètre fourni. Spécifie si l’unité logique source peut vider ses demandes d’allocation en attente (sortantes). Les valeurs autorisées sont AP_YES et AP_NO.
Responsable
Paramètre fourni. Spécifie quelle unité logique est responsable de la désactivation des sessions à la suite de la réinitialisation de la limite de session pour les connexions de session parallèle. Les valeurs autorisées sont AP_SOURCE et AP_TARGET.
reserv6
Champ réservé 5 bits.
reserv7
Champ réservé 8 bits.
Codes de retour
AP_OK
Code de retour principal ; indique que le verbe s’est exécuté correctement.
AP_CNOS_ACCEPTED
Code de retour secondaire ; APPC accepte les limites de session et la responsabilité spécifiées.
AP_CNOS_NEGOTIATED
Code de retour secondaire ; APPC accepte les limites de session et la responsabilité comme négociables par l’unité logique partenaire. Les valeurs qui peuvent être négociées sont les suivantes :
plu_mode_session_limit
min_conwinners_source
min_conwinners_target
Responsable
drain_target
AP_ALLOCATION_ERROR
Code de retour principal ; APPC n’a pas pu allouer une conversation. L’état de la conversation est défini sur RESET.
Ce code peut être retourné par le biais d’un verbe émis après ALLOCATE ou MC_ALLOCATE.
AP_ALLOCATION_FAILURE_NO_RETRY
Code de retour secondaire ; la conversation ne peut pas être allouée en raison d’une condition permanente, telle qu’une erreur de configuration ou une erreur de protocole de session. Pour déterminer l’erreur, l’administrateur système doit examiner le fichier journal des erreurs. Ne réessayez pas l’allocation tant que l’erreur n’a pas été corrigée.
AP_ALLOCATION_FAILURE_RETRY
Code de retour secondaire ; La conversation n’a pas pu être allouée en raison d’une condition temporaire, telle qu’un échec de liaison. La raison de l’échec est consignée dans le journal des erreurs système. Réessayez l’allocation.
AP_CNOS_LOCAL_RACE_REJECT
Code de retour principal ; APPC traite actuellement un verbe CNOS émis par une unité logique locale.
AP_CNOS_PARTNER_LU_REJECT
Code de retour principal ; l’unité logique partenaire a rejeté une demande CNOS de la lu locale.
AP_CNOS_MODE_CLOSED
Code de retour secondaire ; L’unité logique locale ne peut pas négocier une limite de session différente de zéro, car la limite maximale de session locale au niveau de l’unité logique partenaire est égale à zéro.
AP_CNOS_MODE_NAME_REJECT
Code de retour secondaire ; la lu partenaire ne reconnaît pas le nom du mode spécifié.
AP_CNOS_COMMAND_RACE_REJECT
Code de retour secondaire ; l’unité logique locale traite actuellement un verbe CNOS émis par l’unité logique partenaire.
AP_COMM_SUBSYSTEM_ABENDED
Code de retour principal ; indique l’une des situations suivantes :
Le nœud utilisé par cette conversation a rencontré un abandon (ABEND).
La connexion entre le programme de transaction (TP) et le nœud PU 2.1 a été interrompue (erreur de réseau local).
Le SnaBase sur l’ordinateur TPs a rencontré un ABEND.
L’administrateur système doit examiner le journal des erreurs pour déterminer la raison de l’abandon.
AP_COMM_SUBSYSTEM_NOT_LOADED
Code de retour principal ; indique qu’il n’a pas été possible de charger un composant requis ou d’y mettre fin lors du traitement du verbe. Par conséquent, la communication n’a pas pu être établie. Contactez l’administrateur système pour mettre en place une action corrective.
AP_INVALID_KEY
Code de retour principal ; la clé fournie était incorrecte.
AP_INVALID_VERB_SEGMENT
Code de retour principal ; indique que le bloc de contrôle de verbe s’étend au-delà de la fin du segment de données.
AP_PARAMETER_CHECK
Code de retour principal ; le verbe n’a pas été exécuté en raison d’une erreur de paramètre.
AP_ALL_MODE_MUST_RESET
Code de retour secondaire ; APPC n’autorise pas une limite de session différente de zéro lorsque le paramètre mode_name_select indique AP_ALL.
AP_AUTOACT_EXCEEDS_SESSLIM
Code de retour secondaire ; sur le verbe CNOS , la valeur de auto_act est supérieure à la valeur de plu_mode_sess_lim.
AP_BAD_LU_ALIAS
Code de retour secondaire ; APPC ne trouve pas le lu_alias spécifié parmi ceux définis.
AP_BAD_PARTNER_LU_ALIAS
Code de retour secondaire ; APPC n’a pas reconnu le plu_alias fourni.
AP_BAD_SNASVCMG_LIMITS
Code de retour secondaire ; votre programme a spécifié des paramètres non valides pour plu_mode_sess_lim, min_conwinners_source ou min_conwinners_target lorsque mode_name a été fourni.
AP_CHANGE_SRC_DRAINS
Code de retour secondaire ; APPC n’autorise pas mode_name_select (ONE) et drain_source (OUI) quand drain_source (NON) est actuellement en vigueur pour le mode spécifié.
AP_CNOS_IMPLICIT_PARALLEL
Code de retour secondaire ; APPC n’autorise pas un programme à modifier la limite de session pour un mode autre que le mode SNASVCMG pour le modèle partenaire implicite lorsque le modèle spécifie des sessions parallèles. (Le terme « modèle » est utilisé, car la plupart des valeurs réelles ne sont pas encore remplies.)
AP_CPSVCMG_MODE_NOT_ALLOWED
Code de retour secondaire ; Le mode nommé CPSVCMG ne peut pas être spécifié en tant que mode_name sur le verbe de session de désactivation.
AP_EXCEEDS_MAX_ALLOWED
Code de retour secondaire ; votre programme a émis un verbe CNOS , spécifiant un nombre plu_mode_sess_lim et un set_negotiable (AP_NO).
AP_MIN_GT_TOTAL
Code de retour secondaire ; la somme des min_conwinners_source et min_conwinners_target spécifie un nombre supérieur à plu_mode_sess_lim.
AP_MODE_CLOSED
Code de retour secondaire ; L’unité logique locale ne peut pas négocier une limite de session différente de zéro, car la limite maximale de session locale au niveau de l’unité logique partenaire est égale à zéro.
AP_RESET_SNA_DRAINS
Code de retour secondaire ; SNASVCMG ne prend pas en charge les valeurs des paramètres de drainage.
AP_SINGLE_NOT_SRC_RESP
Code de retour secondaire ; pour un verbe CNOS à session unique, APPC autorise uniquement la lu locale (source) à être responsable de la désactivation des sessions.
AP_STACK_TOO_SMALL
Code de retour principal ; indique que la taille de la pile de l’application est trop petite pour exécuter le verbe. Augmentez la taille de pile de votre application.
AP_STATE_CHECK
Code de retour principal ; le verbe n’a pas été exécuté, car il a été émis dans un état non valide.
AP_CANT_RAISE_LIMITS
Code de retour secondaire ; APPC ne permet pas de définir des limites de session sur une valeur différente de zéro, sauf si les limites sont actuellement égales à zéro.
AP_LU_DETACHED
Code de retour secondaire ; une commande a réinitialisé la définition de l’unité logique locale avant que CNOS ne tente de spécifier la lu.
AP_SNASVCMG_RESET_NOT_ALLOWED
Code de retour secondaire ; votre programme local a tenté d’émettre le verbe CNOS pour le mode nommé SNASVCMG, en spécifiant une limite de session de zéro.
AP_UNEXPECTED_DOS_ERROR
Code de retour principal ; le système d’exploitation a retourné une erreur à APPC lors du traitement d’un verbe APPC à partir du TP local. Le code de retour du système d’exploitation a été retourné via secondary_rc. Il apparaît dans l’ordre Intel avec permutation d’octets. Si le problème persiste, consultez l’administrateur système.
Notes
CNOS identifie une unité logique par un alias seul. Si le même alias d’unité logique locale est utilisé plusieurs fois dans un domaine (à des fins de sauvegarde ou à d’autres fins) et que cet alias de lu est spécifié via CNOS, le verbe peut circuler vers une unité logique différente de celle prévue.
Si le CNOS n’est pas émis pour définir la limite de session en mode avant qu’un programme n’émet son premier appel d’allocation APPC ALLOCATE, MC_ALLOCATE, SEND_CONVERSATION ou MC_SEND_CONVERSATION ou CPI-C (Common Programming Interface for Communications) pour une lu et un mode partenaires donnés, APPC génère en interne une limite de session à l’aide de la valeur de la définition du mode.
Lors de la définition des limites d’une connexion de session parallèle, les deux unités logiques négocient les limites de session en mode, les paramètres de drainage et les valeurs de responsabilité. APPC met à jour ces paramètres dans CNOS pour refléter les paramètres convenus par les deux unités logiques lors de la négociation. Votre programme peut émettre display pour obtenir les valeurs négociées pour la limite de session en mode.
Aucune négociation CNOS ne se produit lors de la définition des limites d’une session unique (autrement dit, les deux unités logiques ne négocient pas les paramètres de drainage ou les valeurs de responsabilité). Par conséquent, coordonnez les paramètres de définition de mode entre les LU partenaires à l’aide d’une connexion à session unique en définissant un mode de session unique sur chaque nœud.
Dans le cadre de la configuration des limites initiales, CNOS définit également le nombre garanti (c’est-à-dire le nombre minimal) de sessions contention-gagnant et perdant de contention, et définit le nombre d’activations automatiques pour les sessions contention-gagnant de l’uc source. L’action de CNOS affecte normalement uniquement le groupe de sessions avec le nom de mode spécifié entre la lu source et la lu cible. Un seul CNOS peut également réinitialiser les limites de session de tous les modes pour une unité logique partenaire.
APPC applique la limite de session du nouveau mode et les polarités gagnantes de contention jusqu’à ce qu’un côté ou l’autre les modifie en émettant un verbe CNOS suivant. La transaction CNOS est invisible au niveau de l’API de la lu cible, quelle que soit la lu cible. Les résultats de la transaction CNOS peuvent être obtenus à l’aide de DISPLAY.