Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le verbe MC_SEND_ERROR informe le programme de transaction partenaire (TP) que le TP local a rencontré une erreur au niveau de l’application.
La structure suivante décrit le bloc de contrôle de verbe (VCB) utilisé par le verbe MC_SEND_ERROR .
Syntaxe
struct mc_send_error {
unsigned short opcode;
unsigned char opext;
unsigned char reserv2;
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned char tp_id[8];
unsigned long conv_id;
unsigned char rts_rcvd;
unsigned char err_type;
unsigned char err_dir;
unsigned char reserv4;
unsigned char reserv5[2];
unsigned char reserv6[4];
};
Membres
Opcode
Paramètre fourni. Spécifie le code de l’opération de verbe, AP_M_SEND_ERROR.
opext
Paramètre fourni. Spécifie l’extension d’opération de verbe, AP_MAPPED_CONVERSATION.
réserver2
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 varient en fonction du verbe APPC émis. Consultez les codes de retour pour obtenir des codes d’erreur valides pour ce verbe.
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 varient en fonction du verbe APPC émis. Consultez les codes de retour pour obtenir des codes d’erreur valides pour ce verbe.
tp_id
Paramètre fourni. Identifie le TP local.
La valeur de ce paramètre est retournée par TP_STARTED dans l’appel du TP ou par RECEIVE_ALLOCATE dans le TP appelé.
conv_id
Paramètre fourni. Fournit l’identificateur de conversation. La valeur de ce paramètre est retournée par MC_ALLOCATEdans l’appel du TP ou par RECEIVE_ALLOCATE dans le TP appelé.
rts_rcvd
Paramètre retourné. Indique si le tp partenaire a émis MC_REQUEST_TO_SEND. Les valeurs possibles sont les suivantes :
AP_YES indique que le tp partenaire a émis MC_REQUEST_TO_SEND, qui demande que le TP local modifie la conversation en état RECEIVE. Pour passer à l’état RECEIVE, le tp local peut utiliser MC_PREPARE_TO_RECEIVE, MC_RECEIVE_AND_WAIT ou MC_RECEIVE_AND_POST.
AP_NO indique que le tp partenaire n’a pas émis MC_REQUEST_TO_SEND.
err_type
Pour une conversation mappée, ce paramètre est fourni si le point de synchronisation est pris en charge. Les valeurs valides sont les suivantes :AP_PROG
AP_BACKOUT_NO_RESYNC
AP_BACKOUT_RESYNC
err_dir
Paramètre fourni. Indique si l’erreur se trouve avec les données qui viennent d’être reçues ou avec les données sur le point d’être envoyées. Utilisez ce paramètre uniquement lorsque la conversation est dans SEND_PENDING’état. Le paramètre est ignoré sinon. Les valeurs autorisées suivantes sont les suivantes :AP_RCV_DIR_ERROR indique que le TP a émis MC_SEND_ERROR après avoir détecté une erreur associée aux données juste reçues.
AP_SEND_DIR_ERROR indique que le TP a émis MC_SEND_ERROR après avoir détecté une erreur associée aux données qu’il allait envoyer. Par exemple, le TP a rencontré une erreur lors de la lecture de données à partir du lecteur de disque.
réserver3
Champ réservé.
Codes de retour
AP_OK
Code de retour principal ; le verbe exécuté avec succès.
AP_PARAMETER_CHECK
Code de retour principal ; le verbe n’a pas été exécuté en raison d’une erreur de paramètre.
AP_BAD_CONV_ID
Code de retour secondaire ; la valeur de conv_id ne correspondait pas à un identificateur de conversation affecté par APPC.
AP_BAD_TP_ID
Code de retour secondaire ; la valeur de tp_id ne correspondait pas à un identificateur TP attribué par APPC.
AP_BAD_ERROR_DIRECTION
Code de retour secondaire ; le err_dir spécifié n’a pas été reconnu par APPC.
AP_SEND_ERROR_BAD_TYPE
Code de retour secondaire ; la valeur de err_type n’était pas valide.
AP_SEND_ERROR_LOG_LL_WRONG
Code de retour secondaire ; le champ LL de la variable GDS du journal des erreurs ne correspondait pas à la longueur réelle des données.
Les codes de retour suivants peuvent être générés lorsque MC_SEND_ERROR est émis dans n’importe quel état autorisé :
AP_COMM_SUBSYSTEM_ABENDED
Code de retour principal ; indique l’une des conditions suivantes :
Le nœud utilisé par cette conversation a rencontré un ABEND.
La connexion entre le tp et le nœud PU 2.1 a été interrompue (erreur LAN).
Le SnaBase sur l’ordinateur du TP a rencontré un ABEND.
L’administrateur système doit examiner le journal des erreurs pour déterminer la raison de l’ABEND.
AP_COMM_SUBSYSTEM_NOT_LOADED
Code de retour principal ; un composant requis n’a pas pu être chargé ou s’est arrêté lors du traitement du verbe. Ainsi, la communication n’a pas pu avoir lieu. Contactez l’administrateur système pour obtenir une action corrective.Lorsque ce code de retour est utilisé avec MC_ALLOCATE, il peut indiquer qu’aucun système de communication n’est trouvé pour prendre en charge l’unité logique locale (LU). (Par exemple, l’alias lu local spécifié avec TP_STARTED est incorrect ou n’a pas été configuré.) Notez que si lu_alias ou mode_name est inférieur à huit caractères, vous devez vous assurer que ces champs sont remplis d’espaces à droite. Cette erreur est retournée si ces paramètres ne sont pas remplis d’espaces, car il n’existe aucun nœud disponible qui peut satisfaire la demande de MC_ALLOCATE .
Lorsque MC_ALLOCATE produit ce code de retour pour un système client Microsoft Host Integration Server configuré avec plusieurs nœuds, il existe deux codes de retour secondaires comme suit :
0xF0000001
Code de retour secondaire ; aucun nœud n’a été démarré.
0xF0000002
Code de retour secondaire ; au moins un nœud a été démarré, mais l’unité logique locale (lorsque TP_STARTED est émise) n’est pas configurée sur des nœuds actifs. Le problème peut être l’un des suivants :
Le nœud avec l’unité logique locale n’est pas démarré.
L’unité logique locale n’est pas configurée.
AP_CONV_FAILURE_NO_RETRY
Code de retour principal ; la conversation a été arrêtée en raison d’une condition permanente, telle qu’une erreur de protocole de session. L’administrateur système doit examiner le journal des erreurs système pour déterminer la cause de l’erreur. Ne réessayez pas la conversation tant que l’erreur n’a pas été corrigée.AP_CONV_FAILURE_RETRY
Code de retour principal ; la conversation a été arrêtée en raison d’une erreur temporaire. Redémarrez le TP pour voir si le problème se produit à nouveau. Si c’est le cas, l’administrateur système doit examiner le journal des erreurs pour déterminer la cause de l’erreur.AP_CONVERSATION_TYPE_MIXED
Code de retour principal ; le TP a émis des verbes de conversation de base et mappés. Un seul type peut être émis dans une seule conversation.AP_INVALID_VERB_SEGMENT
Code de retour principal ; le VCB s’étend au-delà de la fin du segment de données.AP_STACK_TOO_SMALL
Code de retour principal ; la taille de la pile de l’application est trop petite pour exécuter le verbe. Augmentez la taille de la pile de votre application.AP_CONV_BUSY
Code de retour principal ; il ne peut y avoir qu’un seul verbe de conversation en suspens à la fois sur n’importe quelle conversation. Cela peut se produire si le TP local a plusieurs threads et que plusieurs threads émettent des appels APPC à l’aide de la même conv_id.AP_THREAD_BLOCKING
Code de retour principal ; le thread appelant est déjà dans un appel bloquant.AP_UNEXPECTED_DOS_ERROR
Code de retour principal ; le système d’exploitation a retourné une erreur à APPC lors du traitement d’un appel APPC à partir du TP local. Le code de retour du système d’exploitation est retourné via le secondary_rc. Il apparaît dans l’ordre d’échange d’octets Intel. Si le problème persiste, consultez l’administrateur système.Les codes de retour suivants peuvent être générés uniquement si MC_SEND_ERROR est émis dans l’état SEND :
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 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’une défaillance de lien. La raison de l’échec est journalisée dans le journal des erreurs système. Réessayez l’allocation.
AP_CONVERSATION_TYPE_MISMATCH
Code de retour secondaire ; l’unité logique partenaire ou tp ne prend pas en charge le type de conversation (de base ou mappé) spécifié dans la demande d’allocation.
AP_PIP_NOT_ALLOWED
Code de retour secondaire ; la demande d’allocation spécifiée des données PIP, mais le tp partenaire n’a pas besoin de ces données, ou l’unité logique du partenaire ne le prend pas en charge.
AP_PIP_NOT_SPECIFIED_CORRECTLY
Code de retour secondaire ; le tp partenaire requiert des données PIP, mais la demande d’allocation spécifiée n’a pas de données PIP ou un nombre incorrect de paramètres.
AP_SECURITY_NOT_VALID
Code de retour secondaire ; l’identificateur de l’utilisateur ou le mot de passe spécifié dans la demande d’allocation n’a pas été accepté par l’unité logique partenaire.
AP_SYNC_LEVEL_NOT_SUPPORTED
Code de retour secondaire ; le tp partenaire ne prend pas en charge le sync_level (AP_NONE ou AP_CONFIRM_SYNC_LEVEL) spécifié dans la demande d’allocation, ou le sync_level n’a pas été reconnu.
AP_TP_NAME_NOT_RECOGNIZED
Code de retour secondaire ; l’unité logique partenaire ne reconnaît pas le nom tp spécifié dans la demande d’allocation.
AP_TRANS_PGM_NOT_AVAIL_NO_RETRY
Code de retour secondaire ; l’unité logique distante a rejeté la demande d’allocation, car elle n’a pas pu démarrer le tp partenaire demandé. La condition est permanente. La raison de l’erreur peut être journalisée sur le nœud distant. Ne réessayez pas l’allocation tant que l’erreur n’a pas été corrigée.
AP_TRANS_PGM_NOT_AVAIL_RETRY
Code de retour secondaire ; l’unité logique distante a rejeté la demande d’allocation, car elle n’a pas pu démarrer le tp partenaire demandé. La condition peut être temporaire, telle qu’un délai d’attente. La raison de l’erreur peut être journalisée sur le nœud distant. Réessayez l’allocation.
AP_PROG_ERROR_PURGING
Code de retour principal ; dans l’état RECEIVE, PENDING, PENDING_POST, CONFIRM, CONFIRM_SEND ou CONFIRM_DEALLOCATE, le TP partenaire a émis MC_SEND_ERROR. Les données envoyées, mais qui ne sont pas encore reçues, sont vidées.AP_DEALLOC_ABEND
Code de retour principal ; la conversation a été libérée pour l’une des raisons suivantes :Le tp partenaire a émis MC_DEALLOCATE avec dealloc_type défini sur AP_ABEND .
Le tp partenaire a rencontré un ABEND, ce qui a provoqué l’envoi d’une demande de MC_DEALLOCATE .
Le code de retour suivant ne peut être généré que si MC_SEND_ERROR est émis dans l’état RECEIVE :
AP_DEALLOC_NORMAL
Code de retour principal ; ce code de retour n’indique pas d’erreur.Le tp partenaire a émis MC_DEALLOCATE avec dealloc_type défini sur l’une des options suivantes :
AP_FLUSH
AP_SYNC_LEVEL avec le niveau de synchronisation de la conversation spécifié comme AP_NONE
Remarques
La conversation peut être dans n’importe quel état, à l’exception de RESET lorsque le TP émet ce verbe. L’état de conversation doit être SEND_PENDING si err_dir est utilisé.
Le TP local envoie immédiatement la notification d’erreur au tp partenaire ; elle ne contient pas les informations dans la mémoire tampon d’envoi de l’unité logique locale.
Lors de l’exécution réussie de ce verbe, la conversation est en état SEND pour le TP local et dans l’état RECEIVE pour le TP partenaire.
Le nouvel état est déterminé par primary_rc. Les modifications d’état possibles sont résumées dans le tableau suivant.
| primary_rc | Nouvel état |
|---|---|
| AP_OK | ENVOYER |
| AP_ALLOCATION_ERROR | RÉINITIALISER |
| AP_CONV_FAILURE_RETRY | RÉINITIALISER |
| AP_CONV_FAILURE_NO_RETRY | RÉINITIALISER |
| AP_DEALLOC_ABEND | RÉINITIALISER |
| AP_DEALLOC_ABEND_PROG | RÉINITIALISER |
| AP_DEALLOC_ABEND_SVC | RÉINITIALISER |
| AP_DEALLOC_ABEND_TIMER | RÉINITIALISER |
| AP_DEALLOC_NORMAL | RÉINITIALISER |
| AP_PROG_ERROR_PURGING | RECEVOIR |
| AP_SVC_ERROR_PURGING | RECEVOIR |
Si la conversation est dans l’état RECEIVE lorsque le TP émet MC_SEND_ERROR, les données entrantes sont vidées par APPC. Ces données incluent :
Données envoyées par MC_SEND_DATA.
Retourner des indicateurs de code.
Demandes de confirmation.
Demandes de désallocation.
APPC ne vide pas un indicateur de demande à envoyer entrant. APPC remplace les indicateurs de code de retour entrant purgés par d’autres codes de retour. Le code de retour principal AP_OK remplace les indicateurs de code de retour purgés suivants :
AP_PROG_ERROR_NO_TRUNC
AP_PROG_ERROR_PURGING
AP_PROG_ERROR_TRUNC
AP_SVC_ERROR_NO_TRUNC
AP_SVC_ERROR_PURGING
AP_SVC_ERROR_TRUNC
Le code de retour principal AP_DEALLOC_NORMAL remplace les indicateurs de code de retour purgés suivants :
AP_ALLOCATION_ERROR
AP_ALLOCATION_FAILURE_NO_RETRY
AP_ALLOCATION_FAILURE_RETRY
AP_CONVERSATION_TYPE_MISMATCH
AP_DEALLOC_ABEND
AP_DEALLOC_ABEND_PROG
AP_DEALLOC_ABEND_SVC
AP_DEALLOC_ABEND_TIMER
AP_PIP_NOT_ALLOWED
AP_PIP_NOT_SPECIFIED_CORRECTLY
AP_SECURITY_NOT_VALID
AP_SYNC_LEVEL_NOT_SUPPORTED
AP_TP_NAME_NOT_RECOGNIZED
AP_TRANS_PGM_NOT_AVAIL_NO_RETRY
AP_TRANS_PGM_NOT_AVAIL_RETRY
Lorsque la conversation est dans SEND_PENDING état, APPC signale les codes de retour suivants au TP partenaire en fonction de la valeur dans err_dir :
AP_PROG_ERROR_PURGING
Le TP local a émis MC_SEND_ERROR avec RECEIVE comme err_dir.AP_PROG_ERROR_NO_TRUNC
Le TP local a émis MC_SEND_ERROR avec SEND comme err_dir.