La différence la plus évidente entre les haricots message-conduits et la session et les haricots d'entité est que les clients n'accèdent pas aux haricots message-conduits par des interfaces. Des interfaces sont décrites dans la section à la différence d'une session ou l'haricot d'entité, un haricot message-conduit a seulement une classe d'haricot. À plusieurs égards, un haricot message-conduit ressemble à un haricot apatride de session.
Les exemples d'un haricot message-conduit ne maintiennent aucune donnée ou état conversationnel pour un client spécifique.
Tous les exemples d'un haricot message-conduit sont équivalent, permettant au récipient d'EJB d'assigner un message à n'importe quel exemple message-conduit d'haricot. Le récipient peut mettre ces exemples pour permettre à des jets des messages d'être traité concurremment.
Un haricot message-conduit simple peut traiter des messages des clients multiples.
Les variables d'exemple de l'exemple message-conduit d'haricot peuvent contenir un certain état à travers la manipulation des messages de client--par exemple, un raccordement de JMS api, un raccordement ouvert de base de données, ou une référence d'objet à un objet d'haricot d'entreprise.
Quand un message arrive, le récipient appelle la méthode de l'onMessage de l'haricot message-conduit pour traiter le message. La méthode d'onMessage moule normalement le message à une des cinq types et poignées de message de JMS il selon la logique des affaires de l'application. La méthode d'onMessage peut appeler des méthodes d'aide, ou elle peut appeler une session ou un haricot d'entité pour traiter l'information dans le message ou pour la stocker dans une base de données. Un message peut être fourni à un haricot message-conduit dans un contexte de transaction, de sorte que toutes les opérations dans la méthode d'onMessage fassent partie d'une transaction simple. Si le traitement de message est roulé en arrière, le message sera livré de nouveau.
|