Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette section contient un ensemble de questions et réponses conçues pour vous aider à résoudre les problèmes d’exécution avec vos orchestrations.
Pourquoi reçois-je des erreurs d'abonnement intermittentes lors de l'envoi à une orchestration enfant qui vient tout juste d'être démarrée par le parent ?
L’erreur d’abonnement « impossible de trouver l’abonnement » est le résultat d’une condition de concurrence. Une condition de concurrence se produit lorsque le résultat d’un processus dépend de l’ordre particulier dans lequel le processus a lieu. Dans ce cas, la condition se produit lorsque l’orchestration enfant n’a pas été démarrée à temps pour recevoir le message envoyé par le parent.
Pour éviter ce problème, l’orchestration enfant peut renvoyer un message au parent lorsqu’elle a été démarrée et est prête à recevoir un message. De cette façon, l’orchestration parente qui l’a démarrée sait qu’il y a un récepteur avant d’envoyer un message.
Pourquoi obtenir des erreurs quand j’attache un port d’envoi dynamique à un port logique ?
Un port dynamique n’est pas conçu pour hériter de tous les attributs et caractéristiques du port qui lui est attribué. Un port dynamique obtient une adresse uniquement ; il n’hérite pas des autres informations associées au port logique.
Par exemple, si vous attachez un port d’envoi dynamique à un port logique avec notification de remise = Transmis, le runtime ne remet pas de notification de remise. Le runtime XLANGs écoute uniquement une notification de remise si le port a été configuré de cette façon de façon statique.
Remarque
Dans les XLANG, les ports se comportent uniquement comme ils ont été configurés statiquement.
Quand j’essaie d’exécuter mon application après avoir déployé une orchestration avec des composants personnalisés, pourquoi obtiens-je l’erreur « Nom du fichier ou de l’assembly ou l’une de ses dépendances introuvables » ?
Cette erreur signifie généralement que le moteur d’orchestration BizTalk ne peut pas localiser le composant personnalisé. Vous devez installer tous les assemblys inclus dans une application BizTalk dans le Global Assembly Cache de l’ordinateur qui héberge l’application.
Une erreur « Propriété de contexte AssemblyName n’était pas valide » se produit lors de l’envoi d’un document à un service Web via une orchestration
Problème
L’envoi d’un document à un service Web via une orchestration entraîne une erreur « Propriété de contexte AssemblyName non valide ».
La cause
L’application BizTalk a été conçue à l’origine à l’aide d’une approche de « messagerie » sans orchestration intermédiaire. Ce type de solution utilise un filtre de port d’envoi pour lier le port de réception et le port d’envoi afin que le document soit transmis au port d’envoi lors de la réception. Plus tard, la solution a été modifiée pour inclure une orchestration liée au port d’envoi.
Résolution
Supprimez le filtre sur le port d’envoi. Si vous appliquez un filtre à un port d’envoi lié à une orchestration, les messages contournent souvent l’orchestration et provoquent l’erreur de propriété de contexte.
Une exception « WrongBodyPartException » se produit lors de la gestion d’un message MIME multipart dans une orchestration
Problème
La réception d’un message MIME multipart dans une orchestration entraîne une exception WrongBodyPartException .
La cause
Cette erreur peut se produire si l’ordre des parties est spécifié de manière incorrecte ou si les messages ne sont pas conformes aux positions des parties que vous avez spécifiées. Par exemple, si vous spécifiez que la troisième partie est une partie de corps, mais que les messages arrivent avec une partie d’en-tête à la troisième position.
Résolution
Vérifiez que le paramètre d’index de partie du corps est correct, puis vérifiez que tous les messages arrivant via l’adaptateur sont cohérents avec le paramètre. Vous pouvez inspecter le contenu des messages MIME qui échouent à l'intérieur d'une orchestration en arrêtant cette dernière (tout en la conservant enregistrée) ; cela forcera la publication du message afin que vous puissiez l'examiner à l'aide de la console d'administration et vérifier l'ordre des parties.
Impossible de localiser l'élément du message MIME multipart
Problème
Les tentatives de récupération d'une partie de message MIME avec une valeur d'index supérieure à 0 entraînent le runtime de BizTalk Server à générer une erreur semblable à "impossible de trouver un message à plusieurs parties avec index = <valeur>".
La cause
Les causes les plus courantes de cette erreur sont les suivantes :
Le message MIME comporte moins de parties que prévu.
Le message MIME n’a pas pu être entièrement analysé.
Résolution
Vous pouvez résoudre ce problème en vous assurant que votre code récupère uniquement les parties de message qui se trouvent dans la plage attendue à partir de la source du message. Dans le cas d’un problème d’analyse, vous devez vérifier que le message MIME d’origine est structurellement sain et correctement construit. Si vous attendez des problèmes d’analyse occasionnels, vérifiez que votre orchestration a des gestionnaires d’exceptions appropriés.
Vous recevez une erreur « L’adaptateur d’envoi FILE ne peut pas ouvrir le fichier pour l’écriture » lors de l’envoi à l’aide d’un port d’envoi dynamique
Problème
Vous recevez une erreur « L’adaptateur d’envoi FILE ne peut pas ouvrir le nom de fichier<> pour l’écriture » dans le journal des événements BizTalk Server lors de l’envoi à l’aide d’un port d’envoi dynamique.
Ce problème se produit lorsque le BTS. La propriété OutBoundTransportLocation est définie dans une expression d’orchestration et le transport de fichiers est spécifié, par exemple les expressions suivantes provoquent cette erreur au moment de l’exécution :
Message2=Message1;
Message2(BTS.OutboundTransportLocation) = "file:///c:/test/out";
MySendPort(Microsoft.XLANGs.BaseTypes.Address)=Message2(BTS.OutboundTransportLocation);
-Ou-
Message2=Message1;
Message2(BTS.OutboundTransportLocation) = "file://mymachine/test/out";
MySendPort(Microsoft.XLANGs.BaseTypes.Address)=Message2(BTS.OutboundTransportLocation);
La cause
Ce problème se produit parce qu’au moment de l’exécution, le moteur d’orchestration supprime le texte « file:// » de l’URL spécifiée. Ainsi, en utilisant les exemples ci-dessus, « file:///c:/test/out » est évalué comme \c :\test\out et « file://mymachine/test/out » est évalué comme mymachine\test\out.
Résolution
Lors de la spécification de l’URL de la propriété BTS.OutBoundTransportLocation dans une expression, ajoutez ou supprimez des caractères « / » si nécessaire. En utilisant les exemples ci-dessus, la propriété BTS.OutBoundTransportLocation doit être définie comme « file://c:/test/out », qui s'évaluera à c:\test\out ou « file:////mymachine/test/out », qui s'évaluera à \\mymachine\test\out.