Fonctionnement de l'adaptateur

Les sections qui suivent décrivent comment l'adaptateur traite les requêtes d'objets métier et gère les événements.

Traitement des objets métier

Lorsqu'un courtier d'intégration envoie un objet métier à l'adaptateur pour e-mail, ce dernier traite l'objet métier et génère un e-mail.

Un objet métier e-mail doit contenir des informations de routage du courrier électronique (adresse de l'émetteur, adresse du destinataire et contenu), le type MIME des pièces jointes et les objets métier à livrer. L'objet métier peut également préciser le chemin complet des fichiers à joindre à l'e-mail. Un même objet métier peut aboutir à un e-mail contenant plusieurs objets métier et plusieurs fichiers en pièce jointe.

Pour traiter une demande d'objet métier, l'adaptateur :

  1. Extrait les informations de routage de l'objet métier de premier niveau et compose un e-mail.
  2. Traite chaque objet métier ou fichier contenu de la façon suivante :
  3. Une fois l'e-mail terminé, l'adaptateur le livre à l'aide de JavaMail.

La figure 2 illustre le traitement de l'objet métier par l'adaptateur pour e-mail. Pour obtenir des informations sur la création d'objets métier pour l'adaptateur, voir le Développement d'objets métier pour l'adaptateur.

Figure 2. Traitement de l'objet métier de l'adaptateur pour e-mail
Traitement de l'objet métier de l'adaptateur pour e-mail

Notification d'événement

Dans la notification d'événement, l'adaptateur demande si des e-mails sont présents dans les dossiers spécifiés sur le serveur de messagerie. L'adaptateur contrôle les dossiers, extrait les nouveaux messages, les convertit en objets métier à l'aide du gestionnaire de données, et envoie les objets métier au courtier d'intégration.

L'adaptateur peut interroger plusieurs emplacements. Les dossiers suivants sont requis par emplacement d'interrogation :

Les emplacements d'interrogation peuvent se situer dans différents magasins IMAP, mais ces trois dossiers, s'ils sont indiqués pour un emplacement d'interrogation, doivent être dans la même boîte aux lettres.

Les sections qui suivent décrivent le fonctionnement des événements de façon plus détaillée.

Déclenchement d'événement

Un événement déclenchant pour un adaptateur est un nouvel e-mail qui arrive dans un dossier d'interrogation. L'adaptateur contrôle dans chaque dossier d'interrogation la présence de nouveaux e-mails, selon un intervalle défini par la propriété de configuration PollFrequency.

Détection d'événement

Chaque serveur de messagerie IMAP dispose d'un magasin de messages appelé magasin IMAP. Le magasin IMAP contient une boîte aux lettres pour chacun des utilisateurs du serveur de messagerie. Une boîte aux lettres peut se composer de plusieurs dossiers, pouvant chacun contenir plusieurs e-mails ou dossiers.

Chaque dossier d'interrogation doit disposer d'un dossier d'archivage et d'un dossier d'événements échoués correspondants. Le dossier d'interrogation, le dossier d'archivage et le dossier des événements échoués sont regroupés sous l'appellation d'emplacement d'interrogation. Un administrateur doit créer les dossiers et préciser les emplacements d'interrogation dans le méta-objet de l'adaptateur.

L'adaptateur recherche les nouveaux messages dans le dossier d'interrogation d'un magasin IMAP. Il extrait alors les nouveaux messages qui s'y trouvent. L'adaptateur détermine qu'un message est nouveau en vérifiant le statut de son indicateur IMAP.

Statut d'événement

IMAP prend en charge des indicateurs qui décrivent l'état des e-mails dans une boîte aux lettres. Le mécanisme de détection des événements les utilise pour identifier les messages à extraire. Le statut d'un événement est spécifié par le dossier dans lequel le message est situé et par l'indicateur du message.

Le mécanisme d'événement utilise l'indicateur IMAP SEEN pour marquer les événements qui sont "en cours". Lors de l'interrogation, l'adaptateur contrôle les messages qui figurent dans le dossier d'interrogation, et prélève ceux qui ne sont pas marqués de l'indicateur SEEN. Ces événements sont "prêts à être interrogés". Lorsque l'adaptateur prélève un message dans le dossier d'interrogation pour le traiter, il lui attribue l'indicateur SEEN. Les événements marqués de l'indicateur SEEN sont "en cours".

Remarque :
L'adaptateur n'interroge pas les messages marqués de l'indicateur SEEN.

Une fois le traitement terminé et que toutes les pièces jointes d'un message ont été converties en objets métier et envoyées au courtier d'intégration, l'e-mail est marqué de l'indicateur FLAGGED et déplacé dans le dossier d'archivage. Les messages dont les pièces jointes ne peuvent être converties en objets métier, ceux qui ont des objets métier non souscrits ou dont les objets métier n'ont pas pu être livrés au courtier d'intégration, sont déplacés dans le dossier des événements échoués. Le tableau 1 résume les états des événements de l'adaptateur.

Tableau 1. Etats des événements
Etats des événements Etat de l'e-Mail
prêt à être interrogé Tous les messages du dossier d'interrogation et dont l'indicateur SEEN n'est pas défini.
en cours Tous les messages du dossier d'interrogation dont l'indicateur SEEN est défini.
envoyé au courtier d'interrogation Tous les messages du dossier d'archivage. Tout message de PollFolder marqué de l'indicateur FLAGGED.
Remarque :
L'adaptateur fait passer l'indicateur d'un message depuis IN_PROGRESS vers FLAGGED, une fois qu'il a été envoyé au courtier d'échange et prêt à être archivé (déplacé dans le dossier d'archivage).
objets métier non souscrits et erreurs Tous les messages du dossier des événements échoués.

Extraction des événements

Pour extraire les événements, l'adaptateur interroge chaque dossier l'un après l'autre et prélève un message dans chaque boîte. Cette stratégie d'interrogation garantit le traitement de tous les messages de tous les dossiers.

L'adaptateur procède comme suit pour traiter chacun des e-mails extraits d'un emplacement d'interrogation :

  1. Dans le dossier d'interrogation, l'adaptateur prélève un e-mail sans indicateur SEEN. Il lui attribue alors l'indicateur SEEN.
  2. L'adaptateur récupàre l'e-mail depuis le dossier d'interrogation. Toutes les pièces jointes sont traitées, quel que soit leur nombre. Il doit y avoir un seul objet métier par pièce jointe.
  3. Pour chaque pièce jointe, l'adaptateur utilise le type MIME correspondant pour déterminer quel gestionnaire de données utiliser pour convertir la pièce jointe en objet métier. L'adaptateur extrait le contenu de la pièce jointe et le transmet au gestionnaire de données. Les pièces jointes d'un e-mail peuvent avoir des formats différents. Si la pièce jointe n'a pas de type MIME, l'adaptateur ne la traite pas.
  4. Le gestionnaire de données génère un objet métier et le retourne à l'adaptateur.
  5. Si l'objet métier est souscrit, l'adaptateur le transmet au courtier d'intégration. Dans le cas contraire, l'adaptateur considère cet e-mail comme étant un événement échoué.

L'adaptateur traite toutes les pièces jointes de la même façon. Un e-mail est considéré comme un événement réussi si toutes les pièces jointes ont été converties en objets métier et transmises au courtier d'intégration. En cas de réussite, l'adaptateur marque les e-mails de l'indicateur FLAGGED, puis les conserve dans le dossier d'archivage de cet emplacement d'interrogation. L'adaptateur n'archive l'e-mail qu'une fois toutes les pièces jointes traitées.

Si une ou plusieurs pièces jointes n'ont pu être converties en objets métier, ou si les objets métier fournis par le gestionnaire de données ne sont pas souscrits, l'événement est considéré comme échoué. Dans ce cas, l'adaptateur conserve l'e-mail dans le dossier des événements échoués de cet emplacement d'interrogation.

L'adaptateur fournit un nombre d'événements par dossier inférieur ou égal à la valeur indiquée par la propriété PollQuantity de l'adaptateur. L'adaptateur ne prélève et ne traite pas d'autre e-mail tant qu'il n'en a pas terminé avec le message

Evénements échoués

Un événement est considéré comme ayant échoué dans les cas suivants :

L'adaptateur traite toutes les pièces jointes d'un message et fournit les objets métier qu'il génère au courtier d'intégration, même si le message est un événement échoué. Par exemple, prenons un e-mail contenant cinq pièces jointes. L'adaptateur traite les pièces jointes un et deux, ne parvient pas à traiter la troisième et réussi à traiter les pièces jointes quatre et cinq. L'adaptateur fournira des objets métier pour quatre des pièces jointes, mais l'ensemble du message est traité comme un événement échoué et archivé dans le dossier des événements échoués, car la pièce jointe trois n'a pas pu être traitée. L'adaptateur consigne les détails relatifs à chaque pièce jointe qu'il ne parvient pas à convertir en objet métier.

Archivage d'événement

Pour archiver les événements, l'adaptateur exige un dossier d'archivage et un dossier réservé aux événements échoués. Les événements sont conservés dans ces dossiers de la façon suivante :

Mécanisme de récupération

Un administrateur peut configurer le mécanisme de récupération de l'adaptateur, pour chaque emplacement d'interrogation précisé par la propriété de configuration PollConfigMO. La propriété PollConfigMO identifie un méta-objet qui dispose d'un attribut InDoubtEvents pour chaque emplacement d'interrogation. Cet attribut peut avoir les valeurs Reprocess, Ignore, LogError et FailOnStartUp.

En cas de panne de l'adaptateur entre les appels d'interrogation, les dossiers d'interrogation peuvent contenir des messages en cours. Ces messages sont marqués d'un indicateur SEEN et considérés comme des événements en attente de validation pour l'adaptateur. Au démarrage suivant de l'adaptateur, la procédure d'initialisation analyse tous les dossiers d'interrogation pour les transactions en attente de validation, de la façon suivante :

Avant de redémarrer l'adaptateur, l'administrateur peut visualiser chacun des dossiers d'interrogation à l'aide d'une programme client de messagerie, et déterminer comment gérer les événements en attente de validation. L'administrateur a le choix entre laisser les messages en attente de validation dans le dossier d'interrogation, réinitialiser leur indicateur SEEN ou supprimer les messages. Lorsque l'adaptateur redémarre, si des événements sont en attente de validation, il traitera les transactions en appliquant la méthode d'initialisation décrite ci-après.

Initialisation de l'adaptateur

Lorsque l'adaptateur pour e-mail démarre, la procédure est la suivante :

  1. L'adaptateur extrait la liste de souscription pour les objets métier pris en charge.
  2. Grâce aux informations du méta-objet de l'adaptateur, il crée un liste d'emplacements d'interrogation.
  3. L'adaptateur tente de se connecter à chaque emplacement d'interrogation. En cas d'échec lors de la connexion à l'un des emplacements d'interrogation, l'adaptateur ne démarre pas.
  4. L'adaptateur vérifie que tous les dossiers de chaque emplacement d'interrogation existent. L'adaptateur ne démarre pas si l'un des dossiers n'existe pas.
  5. L'adaptateur extrait la valeur de la propriété SMTP_MAILHOST depuis les propriétés de l'adaptateur. A l'aide de cette valeur, il se connecte à l'hôte de messagerie. Si la tentative échoue, l'adaptateur ne démarre pas.
  6. L'adaptateur recherche les transactions en attente de validation dans chaque dossier d'interrogation. Si l'adaptateur trouve des transactions en attente de validation, il procède à une reprise sur incident en fonction de la valeur du paramètre InDoubtEvents de l'emplacement d'interrogation. Si l'indicateur InDoubtEvents est défini sur Reprocess, l'adaptateur réinitialise l'indicateur SEEN du message. Si l'indicateur est sur FailOnStartUp, l'adaptateur s'arrête. Si l'indicateur est sur LogError, l'adaptateur consigne l'erreur et continue. Si l'indicateur InDoubtEvents est sur Ignore, l'adaptateur continue et ignore les transactions en attente de validation.

Copyright IBM Corp. 2003, 2005