2009-12-09 4 views
0

J'ai une application dans VB.NET qui génère quelques erreurs -301 dans DB2 sur une instruction update utilisant une connexion ADO.NET.Détection d'une erreur DB2 -301 dans .NET

Il semble que DB2 signale l'occurrence de cette erreur, puis corrige toutes les données incorrectes et les soumet à nouveau. Cette fixation et re-soumission vient avec les frais généraux supplémentaires et à son tour en dollars réels et en cents parce que c'est le mainframe DB2.

Existe-t-il un moyen de détecter cette erreur -301 d'une manière ou d'une autre? Je ne suis pas capable de recréer le problème. Je sais seulement que cela se produit parce que DB2 signale que l'erreur s'est produite, mais parce que j'utilise une requête paramétrée et en raison de la configuration de DB2 je ne suis pas capable de déterminer les valeurs des paramètres.

À ce stade, je pense que mon meilleur pari est de sérialiser les entrées que je reçois et ensuite les écrire en XML et quand mon DBA est capable de me dire quand une erreur se produit, je vais prendre le fichier, puis retraiter dans un environnement de test un par un. C'est-à-dire, à moins qu'il y ait quelque chose que je puisse vérifier, comme un code de retour, puis envoyer un message d'erreur avec une sérialisation de l'instance d'objet incriminée.

Répondre

0

Que DB2 corrige et soumet à nouveau l'instruction semble très étrange!
Peut-être y a-t-il une couche supplémentaire entre votre programme et DB2 qui fait cela?

Vous pouvez demander à votre administrateur de base de données de vous envoyer l'erreur avec le numéro de position et l'instruction de mise à jour afin que vous puissiez voir host-variable est le problème.
La variable est probablement utilisée dans certaines fonctions SQL. Votre DBA devrait être capable de dire quels types de données sont autorisés.

Voici un lien vers la description e de l'erreur (si vous ne l'avez pas): http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db29.doc.codes/n301.htm

Ma réponse est pas tout à fait ce que vous avez demandé, mais je ne pense pas que cela puisse être plus près.

Cordialement
        Sigersted

1

La raison de DB2 -301 erreur est Input host variable or argument not valid.

Plus de détails sur les erreurs DB2 mentionnées dans ce article.