Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Microsoft BizTalk Server Discussion :

Catch exception et warning


Sujet :

Microsoft BizTalk Server

  1. #1
    Membre expérimenté
    Catch exception et warning
    Bonjour,

    Je me retrouve confronter à un petit soucis.

    J'ai une interface simple. Cette interface récupère un fichier XML, le mappe à SAP, et loggue le retour SAP. Jusque là pas de soucis.

    Toutes mes actions sont dans un try catch, pas de soucis.

    Cependant, lorsque la connexion à SAP échoue, ca passe en warning. Biztalk refait ces 3 essais (configurer par défaut), ca passe en erreur.

    Par contre, jamais je ne passe dans le catch, et donc j'ai jamais de retour de LOG dans le cas d'une erreur. Les lignes apparaissent donc directement dans l'event viewer, ce qui n'est pas terrible.

    Quelqu'un sait comment gérer le catch avec cette histoire de warning / error ?

    Merci d'avance
    Règle N° 1 : Si tout va bien, ne touchez à rien.

  2. #2
    Membre à l'essai
    Salut,

    Les blocs try-catch interceptent les erreurs uniquement au sein des orchestrations (par exemple si tu valides les messages reçus vis-à-vis de leurs schémas). Les erreurs sur les send ports interviennent en dehors des orchestrations, mêmes si ces dernières peuvent déclencher l’exécution d'un port d'envoi, y compris si le binding est direct.

    L'écriture dans l'event log ne pourra pas être contournée si un pipeline ou un adaptateur lève une exception, par contre tu peux activer le routage pour les messages en erreur : Using Failed Message Routing
    Je n'ai pas encore utilisé cette technique mais je l'envisage pour la gestion des erreurs au niveau global (tous types de flux confondus).

    Si tu veux créer un log personnel (DB, fichier, mail, etc.) je pencherai pour une orchestration avec les conditions de filtres adéquates (par exemple le nom du port d'envoi supervisé si l'orchestration lui est dédiée) sur la receive shape qui déclenche l'activation.

  3. #3
    Membre expérimenté
    Merci pour la réponse.

    Finalement, j'ai trouvé une propriété sur les 'Send ports' qui permettrait de générer un objet de type DeliveredExceptionFailed. Il faut ainsi isoler le send port en question dans un try catch et récupérer cet objet dans le catch. Le send port doit être configurer à 0 tentatives (afin que l'error soit générée direct et pas un warning pendant x essais).
    Règle N° 1 : Si tout va bien, ne touchez à rien.

###raw>template_hook.ano_emploi###