Partage via


Utilisation de l’adaptateur Ops

La solution de gestion des processus d'entreprise utilise l'adaptateur Ops pour gérer les rapports d'erreurs à partir de la nouvelle fonction de création de rapports d'erreurs. La solution inclut un exemple de gestionnaire pour traiter les messages de l'adaptateur, bien que vous puissiez facilement écrire le vôtre et utiliser l'adaptateur dans les autres solutions. Pour plus d’informations sur la fonctionnalité de rapport d’erreurs, consultez Utilisation du routage des messages ayant échoué.

Notes

Bien que la solution utilise l'adaptateur pour la création de rapports d'erreurs, son utilisation n'est pas limitée à la gestion des erreurs. Vous pouvez utiliser l'adaptateur dans diverses circonstances lorsque vous voulez exécuter une méthode d'objet spécifique en réponse à un message.

Traitement des rapports d'erreurs par l'adaptateur Ops

Les ports de la solution qui utilisent le rapport d’erreurs envoient finalement les messages d’erreur au port BizTalkErrors-SP . Le filtre sur le port teste l’existence de la propriété de contexte ErrorReport.ErrorType . Seuls les messages de rapport d'erreurs ont cette propriété de contexte.

Le port d’envoi BizTalkErrors-SP exécute le message d’erreur via un pipeline qui utilise un composant assembleur XML pour placer le message dans une enveloppe. Le message passe ensuite à l'adaptateur Ops.

L'enveloppe, définie par le schéma ErrorEnvelope, est marquée pour accepter tout type de message. Toutefois, « tout » signifie tout type de message défini dans le groupe BizTalk. Cela peut entraîner l'interruption des messages si la solution reçoit un message de type inconnu. Un tel message générerait une erreur et serait routé vers le port BizTalkErrors-SP . À son tour, le message génèrerait une erreur dans le composant Assembleur XML du pipeline car il ne serait pas d'un type connu. L'erreur de pipeline interrompt le message.

Notes

Pour gérer les erreurs de routage dues à des types de messages inconnus, vous devez écrire un composant de pipeline personnalisé et utiliser le composant dans un pipeline personnalisé pour le port BizTalkErrors-SP . Le composant personnalisé remplace le composant Assembleur XML. Votre composant personnalisé doit placer les propriétés ErrorReport dans l’en-tête d’enveloppe et ajouter le message au corps de l’enveloppe.

L'adaptateur Ops est un adaptateur d'envoi transactionnel unidirectionnel. Lorsque l'adaptateur traite un message, il commence par charger l'assembly spécifié, si nécessaire. L'adaptateur met des assemblys en mémoire pour éviter la surcharge liée au chargement de l'assembly à chaque appel. Il crée ensuite une instance de la classe spécifiée, puis utilise la réflexion pour obtenir l’objet dans l’assembly implémentant l’interface IOpsAIC. Si tout cela réussit, l’adaptateur appelle la méthode Initialize , puis la méthode Execute , en transmettant le message de rapport d’erreurs.

En cas d’erreur lors de l’appel de Execute, l’adaptateur resoumet le message. Si la classe spécifiée n’implémente pas l’interface IOpsAIC , ou si la classe ou l’assembly est introuvable, l’adaptateur suspend le message.

Conseil

Comme l'adaptateur utilise la réflexion, l'assembly contenant la classe doit être dans le Global Assembly Cache.

Interface IOpsAIC

L’adaptateur nécessite un objet qui implémente l’interface IOpsAIC . L'interface apparaît comme suit :

interface IOpsAIC  
{  
    void Initialize(string config);  
    void Execute(byte[] message);  
}  

L’adaptateur transmet le message d’origine sous forme de tableau d’octets à la méthode Execute .

Configuration de l'adaptateur

Vous configurez l'adaptateur comme vous le feriez pour n'importe quel autre adaptateur. Le tableau suivant décrit ses propriétés de configuration :

Nom d’affichage Description
Nom fort d'assembly .NET Nom complet de l’assembly.
Nom de la classe OpsAIC Nom de la classe dans l’assembly qui implémente l’interface IOpsAIC .
Données d'initialisation Chaîne passée en tant qu’argument à la méthode Initialize de la classe .

Notez que l'adaptateur requiert le nom complet de l'assembly. Le nom complet est le nom donné à un assembly lorsque vous l'ajoutez au Global Assembly Cache. Le nom complet est une chaîne composée du nom de l'assembly, de sa version, de sa culture et d'un jeton de clé publique. Vous pouvez voir les noms complets des assemblys à l'aide de l'outil GAC (gacutil.exe).

Pour plus d'informations sur les noms complets des assemblys, consultez « Assembly Names » (en anglais) dans le Guide du développeur .NET Framework. Pour plus d’informations sur gacutil.exe, consultez « Outil Global Assembly Cache (Gacutil.exe) » dans le Guide du développeur .NET Framework.

Vous devez fournir l'espace de noms avec le nom de classe. Par exemple, si la classe est OpsHandler dans l’espace de noms OperationsHandler , vous devez donner le nom de la classe OperationsHandler.OpsHandler.

Voir aussi

Adaptateur Ops