Un composant utilise une importation pour envoyer une requête à un service en dehors du module. Lorsqu'une erreur se produit lors du traitement de la requête, le service renvoie l'erreur à la liaison d'importation. Vous pouvez configurer la liaison d'importation pour spécifier la manière dont l'erreur doit être traitée et renvoyée au composant.
Vous pouvez configurer la liaison d'importation à l'aide de WebSphere Integration Developer.
Vous pouvez spécifier un gestionnaire de données d'erreur (ou une liaison de données) et vous pouvez également spécifier un sélecteur d'erreurs.
Gestionnaires de données d'erreur
Le service qui traite la requête envoie des informations d'erreur à la liaison d'importation sous la forme d'une exception ou un message de réponse contenant les données d'erreur.
La liaison d'importation transforme l'exception de service ou le message de réponse en une exception métier de service ou une exception d'exécution de service, comme indiqué dans la figure ci-dessous et décrit dans les sections suivantes.
Figure 1. Manière dont les informations d'erreur sont envoyées depuis le service au composant via l'importation
Vous pouvez créer un gestionnaire de données personnalisé ou une liaison de données pour gérer les erreurs.
Sélecteurs d'erreurs
Lorsque vous configurez une liaison d'importation, vous pouvez spécifier un sélecteur d'erreurs. Le sélecteur d'erreurs détermine si la réponse d'importation est une réponse réelle, une exception métier ou une erreur d'exécution. Il détermine également, à partir de l'en-tête ou du corps de la réponse, le nom de l'erreur native qui est mappé par la configuration de liaison au nom d'une erreur dans l'interface associée.
Deux types de sélecteurs d'erreurs préintégrés sont disponibles avec les importations JMS, JMS MQ, JMS
génériques, WebSphere MQ et HTTP :
Tableau 1. Sélecteurs d'erreurs préintégrésType de sélecteur d'erreurs |
Description |
Basé sur les en-têtes |
Indique si un message de réponse est une erreur métier, une exception d'exécution ou un message normal en fonction des en-têtes dans le message de réponse. |
SOAP |
Détermine si le message de réponse SOAP est une réponse normale, une erreur métier ou une exception d'exécution. |
Les exemples ci-dessous illustrent des sélecteurs d'erreurs basés sur les en-têtes et le sélecteur d'erreurs SOAP.
- Sélecteur d'erreurs basé sur les en-têtes
Si une application veut indiquer que le message entrant est une erreur métier, il doit y avoir deux en-têtes dans le message entrant pour les erreurs métier, comme indiqué ci-après :
Header name = FaultType, Header value = Business
Header name = FaultName, Header value = <user defined native fault name>
Si une application veut indiquer que le message de réponse entrant est une exception d'exécution, il doit y avoir un en-tête dans le message entrant comme indiqué ci-après :
Header name = FaultType, Header value = Runtime
- Sélecteur d'erreurs SOAP
Une erreur métier peut être envoyée dans le cadre d'un message SOAP avec l'en-tête SOAP personnalisé suivant : "CustomerAlreadyExists" est le nom de l'erreur dans ce cas.
<ibmSoap:BusinessFaultName
xmlns:ibmSoap="http://www.ibm.com/soap">CustomerAlreadyExists
<ibmSoap:BusinessFaultName>
Le sélecteur d'erreurs est facultatif. Si vous ne spécifiez aucun sélecteur d'erreurs, la liaison d'importation ne peut pas déterminer le type de réponse. En conséquence, la liaison la traite comme une réponse métier et appelle le gestionnaire de données de réponse ou la liaison de données.
Vous pouvez créer un sélecteur d'erreurs personnalisé.
Les étapes permettant de créer un sélecteur d'erreurs personnalisé sont indiquées dans la rubrique "Développement d'un sélecteur d'erreurs personnalisé" du centre de documentation de WebSphere Integration Developer.
Erreurs métier
Une erreur métier peut se produire lorsqu'il existe une erreur dans le traitement d'une requête. Par exemple, si vous envoyez une requête pour créer un client et que le client existe déjà, le service envoie une exception métier à la liaison d'importation.
Lorsqu'une exception métier est reçue par la liaison, les étapes du traitement dépendent de la configuration d'un sélecteur d'erreurs pour la liaison.
- Si aucun sélecteur d'erreurs n'a été configuré, la liaison appelle le gestionnaire de données de réponse ou la liaison de données.
- Si un sélecteur d'erreurs a été configuré, le traitement suivant se produit :
- La liaison d'importation appelle le sélecteur d'erreurs pour déterminer si la réponse est une erreur métier, une réponse métier ou une erreur d'exécution.
- Si la réponse est une erreur métier, la liaison d'importation appelle le sélecteur d'erreurs pour fournir le nom de l'erreur native.
- La liaison d'importation identifie l'erreur WSDL correspondant au nom de l'erreur native renvoyée par le sélecteur d'erreurs.
- La liaison d'importation détermine le gestionnaire de données d'erreur configuré pour cette erreur WSDL.
- La liaison d'importation appelle ce gestionnaire de données d'erreur avec les données d'erreur.
- Le gestionnaire de données d'erreur transforme les données d'erreur en un objet de données et le renvoie à la liaison d'importation.
- La liaison d'importation construit un objet d'exception métier de service avec l'objet de données et le nom de l'erreur.
- L'importation renvoie l'objet d'exception métier de service au composant.
Exceptions d'exécution
Une exception d'exécution peut se produire lorsqu'il existe un problème de communication avec le service. Le traitement d'une
exception d'exécution est identique au traitement d'une exception métier. Si un sélecteur d'erreurs a été configuré, le traitement suivant se produit :
- La liaison d'importation appelle le gestionnaire de données d'exception d'exécution approprié avec les données d'exception.
- Le gestionnaire de données d'exception d'exécution transforme les données d'exception en un objet d'exception d'exécution de service et le renvoie à la liaison d'importation.
- L'importation renvoie l'objet d'exception d'exécution de service au composant.