2009-08-05 24 views
0

J'ai un problème intermittent lors de l'appel d'une procédure stockée iSeries (composée de divers programmes RPG CL &). L'erreur est la suivante: -Erreur de contrôle d'engagement sur l'appel de procédure iSeries

Commitment definition *N not valid for open of QAOSSI12 
    Error occurred while opening file QAOSSI12. 

Comme mentionné, le problème ne se produit pas toujours mais se produit davantage lors du test de charge de la procédure.

Je sais que l'information est vague mais toutes les idées ont apprécié !!

+0

Comment faites-vous le test de chargement? De l'extérieur (par exemple un appel JDBC), ou de l'intérieur (par exemple un appel direct depuis la procédure). Dans le dernier cas, vérifiez si vous utilisez des groupes d'activation nommés. Comme l'écrit Danny T, vérifiez votre portée. – robertnl

Répondre

0

Si cela est CPF4326 d'erreur, le texte du message donne les possibilités suivantes:

  • Membre QAOSSI12 a été ouvert pour le contrôle de l'engagement lorsque l'engagement définition * N n'a pas été actif.
  • Des modifications non validées sont en attente pour le membre QAOSSI12 pour une définition d'engagement autre que * N.
  • Le programme appelant utilise la définition d'engagement * N qui a une portée de * ACTGRP, alors que le programme spécifié pour ouvrir le fichier en utilisant ascope de * JOB.

Ces situations sont-elles possibles dans votre cas?

0

Nous avons obtenu CPF4326 et la solution qui semble fonctionner est d'ajouter "transaction isolation = none" à notre URL jdbc. Nous n'essayons pas d'utiliser les transactions de toute façon, il n'y a donc aucun avantage à les activer. Nous soupçonnons également que quelque chose dans iBATIS essaye d'annuler la transaction en cas d'erreur, même si nous ne faisons rien d'explicite en ce qui concerne le contrôle des engagements.