CODE RETOUR -939

ROLLBACK REQUIRED DUE TO UNREQUESTED ROLLBACK OF A REMOTE SERVER

Explication :
Un commit dynamique a été exécuté avant l’exécution de cette requête. Le serveur distant auquel l’application a été CONNECTée lors du COMMIT dynamique validée avec succès. Cependant, au moins un autre serveur distant (qui était en lecture seule) a annulé sa partie de l’unité de travail distribuée lors de la validation dynamique.

Pour s’assurer qu’une application qui utilise des cursor-hold (curseurs de maintien) du curseur ne suppose pas à tort que la position du curseur est conservée sur un serveur distant qui a été annulé, l’application doit effectuer une opération d’annulation.

Les communications sont toujours établies avec tous les serveurs distants.

Action du système :
Dans les environnements IMS et CICS, toutes les instructions SQL sont rejetées jusqu’à ce que la restauration se produise. Dans les autres environnements, toutes les instructions SQL autres qu’un ROLLBACK statique sont rejetées jusqu’à ce qu’un ROLLBACK statique soit exécuté.

Réponse du programmeur :
Émettez la demande appropriée (en fonction de l’environnement) pour provoquer une restauration. Rétablissez le positionnement du curseur et poursuivez l’application avec la première requête ayant reçu le SQLCODE -939.

SQLERRP contient le nom du module qui a détecté l’échec précédent et placé l’application dans l’état must-abort.

SQLSTATE :
51021