CPF83A1
Echec de l'invalidation de la branche de transaction XA.
Gravité 40 · Fin anormale du programme ou de la fonction
Cause
Une erreur s'est produite lorsque la branche de transaction XA portant l'identificateur de format XID &4, l'identificateur de transaction globale &5 et le qualificatif de branche &6 a été invalidée par le gestionnaire de ressources XA DB2 for IBM i avant son aboutissement normal via l'API xa_commit ou xa_rollback. Il reste &3 associations pour cette branche de transaction. S'il ne reste aucune association, les demandes XA suivantes pour cet XID vont renvoyer XAER_NOTA. Code raison pour l'invalidation : &1. Les différents codes raison possibles pour l'invalidation sont indiqués ci-après avec leur signification. 1
- Dépassement du délai d'attente pour la branche de transaction après &2 secondes. 2
- Arrêt d'une unité d'exécution alors qu'elle était associée à la branche de transaction. 3
- Arrêt d'une connexion alors qu'elle était associée à la branche de transaction. 4
- L'opérateur a forcé manuellement l'invalidation de la transaction via la commande WRKCMTDFN (Gérer définitions de validation). 5
- L'opérateur a supprimé manuellement la branche de transaction via l'option Ignorer de la commande WRKCMTDFN (Gérer définitions de validation).
Que faire
Consultez les messages précédents de l'historique du travail à l'aide de la commande DSPJOBLOG pour identifier les incidents, puis prenez les mesures appropriées. - Pour éviter que les transactions ne soient invalidées par le gestionnaire de ressources DB2 for IBM i, procédez de l'une des façons suivantes, selon le code raison d'invalidation affiché : 1
- Déterminez si le délai d'attente n'est trop court. Il se peut que ce délai ait été dépassé du fait de tentatives de modifications sur un objet verrouillé par une autre transaction ou un autre travail. Le délai d'attente pour la branche de transaction est défini par l'application via l'API xa_start_2 ou la procédure tnStartTxObject. 2
- N'arrêtez pas une unité d'exécution tant qu'il n'a pas été mis fin aux associations avec toutes les branches de transaction XA à l'aide de l'API xa_end. 3
- N'arrêtez pas une connexion tant qu'il n'a pas été mis fin aux associations avec toutes les branches de transaction XA à l'aide de la procédure tnEndTxObject. 4
- N'utilisez pas la commande WRKCMTDFN pour forcer l'invalidation. 5
- N'utilisez pas la commande WRKCMTDFN pour ignorer une branche de transaction XA.
Description technique
L'ID d'espace de verrouillage est &7. L'ID d'espace associé à l'espace de verrouillage est &8.
The lock space id is &7. The lock space associated space id is &8.
Variables du message
Quand le système envoie le message, chaque variable est remplacée par une valeur réelle : un nom d'objet, de bibliothèque, un code...
| Variable | Type | Longueur |
|---|---|---|
| &1 | *BIN |
2 |
| &2 | *BIN |
4 |
| &3 | *BIN |
4 |
| &4 | *HEX |
4 |
| &5 | *CHAR |
131 |
| &6 | *CHAR |
131 |
| &7 | *CHAR |
20 |
| &8 | *BIN |
2 |
Sur votre IBM i
Afficher la description complète du message :
DSPMSGD RANGE(CPF83A1) MSGF(QSYS/QCPFMSG)
L'intercepter dans un programme CL, quand il est envoyé comme message d'échappement :
MONMSG MSGID(CPF83A1) EXEC(DO)
/* traitement de l'erreur */
ENDDO