CODE RETOUR -842

A CONNECTION TO location-name ALREADY EXISTS

Explication :

L’une des situations suivantes s’est produite :

  • Une instruction CONNECT identifie un emplacement avec lequel le processus d’application dispose d’une connexion privée, à l’aide d’un accès dirigé par le système.
  • SQLRULES(STD) est en vigueur et une instruction CONNECT identifie une connexion SQL existante.
  • Une connexion privée, utilisant un accès dirigé par le système, ne peut pas être établie en raison d’une connexion SQL existante à cet emplacement.
  • Une requête CONNECT (type 2) qui inclut la clause USER/USING identifie une connexion SQL existante.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :

La correction dépend de l’erreur, comme suit :

  • Si le nom de l’emplacement n’est pas le nom voulu, corrigez-le.
  • Si SQLRULES(STD) est en vigueur et que l’instruction CONNECT identifie une connexion SQL existante, remplacez CONNECT par SET CONNECTION ou remplacez l’option par SQLRULES(Db2).
  • Si l’instruction CONNECT identifie une connexion privée existante, détruisez cette connexion (en utilisant l’instruction RELEASE dans une unité de travail précédente) avant d’exécuter l’instruction CONNECT. Si les instructions SQL qui suivent CONNECT peuvent être exécutées à l’aide d’un accès dirigé par le système, une autre solution consiste à modifier l’application pour utiliser cette méthode.
  • Si l’accès dirigé par le système ne peut pas être utilisé, détruisez la connexion SQL en conflit (en utilisant l’instruction RELEASE dans une unité de travail précédente) avant d’exécuter l’instruction SQL qui nécessite un accès dirigé par le système. Une autre solution consiste à modifier l’application afin que seul l’accès dirigé par l’application soit utilisé.
  • Détruisez la connexion (en utilisant l’instruction RELEASE dans une précédente unité de travail) avant d’exécuter l’instruction CONNECT qui inclut la clause USER/USING.

Corrigez l’erreur dans l’application, reliez à nouveau le plan ou le package, puis soumettez à nouveau le travail.

SQLSTATE :
08002