Déploiement de beans gérés par message pour la connexion à un adaptateur de ressources JCA
Vous pouvez vous connecter à un adaptateur de ressources JCA à l'aide de beans gérés par message.
Pourquoi et quand exécuter cette tâche
Lorsque vous déployez une application de beans gérés par message dans Liberty, vous devez effectuer des étapes de configuration dans le fichier server.xml pour permettre à chaque bean géré par message de recevoir des messages de l'adaptateur de ressources. L'exemple de configuration décrit dans cette rubrique concerne une application contenant uniquement des beans gérés par message et un adaptateur de ressources JMS. Si l'application doit aussi utiliser des beans session, la fonction ejbLite-3.1 doit être incluse.
Les propriétés de configuration varient en fonction de l'adaptateur de ressources spécifique qui est utilisé.
Procédure
- Configurez la fonction de bean géré par message :
Activez la prise en charge des beans gérés par message dans lLiberty en configurant les fonctions mdb-3.1 et jca-1.6 dans le fichier server.xml. Si vous voulez effectuer une recherche JNDI, vous devez aussi ajouter la fonction jndi-1.0 en plus des deux autres.
<featureManager> <feature>mdb-3.1</feature> <feature>jca-1.6</feature> <feature>jndi-1.0</feature> </featureManager>
- Configurez toute autre fonction requise par votre adaptateur de ressources JCA.
- Configurez une spécification d'activation JCA qui utilise l'adaptateur de ressources pour que le bean géré par message fasse office de programme
d'écoute. Les exemples ci-après présentent différentes façons de configurer un bean géré par message pour l'interaction avec le moteur de messagerie. Ils sont
propres aux adaptateurs de ressources JMS.
- Configurez le bean géré par message avec la propriété de spécification d'activation. Vous pouvez définir la propriété dans le fichier server.xml pour que le bean géré par message puisse l'utiliser afin d'être à l'écoute sur une destination JMS spécifique.
<activationSpec id="JMSSample/JMSSampleMDB"> <properties.wmqJms destinationRef="jndi/MDBQ" transportType="CLIENT" queueManager="myQM" hostName="myHost" port="1414"/> </activationSpec> <jmsQueue id=”jndi/MDBQ” jndiName="jndi/MDBQ"> <properties.wmqJms baseQueueName="MYQ" baseQueueManagerName="myQM"/> </jmsQueue>
L'élément <destinationRef> référence l'ID de <jmsQueue>. Si aucun ID n'est mentionné dans <jmsQueue>, l'élément <destinationRef> doit désigner l'élément <jndiName> de <jmsQueue>.
Remarque : La valeur d'ID doit être au format nom application/nom module/nom bean où- nom application est le nom de l'application qui est déployée (par exemple JMSSample). Le nom de l'application ne s'applique que si le bean est conditionné dans un fichier EAR. Par défaut, l'application prend le nom de base du fichier EAR sans extension de nom de fichier sauf si celle-ci est spécifiée par le descripteur de déploiement application.xml.
- nom module est le nom du module dans lequel le bean est conditionné. Dans un fichier JAR d'EJB autonome ou dans un fichier WAR, le module prend par défaut le nom de base du module sans extension de nom de fichier. Dans un fichier EAR, le module prend par défaut le nom de chemin du module sans extension de nom de fichier, mais inclut les noms de répertoire. Le <nom de module> par défaut peut être remplacé à l'aide de l'élément module-name du fichier ejb-jar.xml (pour les fichiers JAR d'EJB) ou du fichier web.xml (pour les fichiers WAR).
- nom bean est le nom d'EJB du bean enterprise. Dans le cas des beans enterprise définis via une annotation, le bean prend par défaut le nom non qualifié de la classe de bean session, sauf s'il est spécifié dans le contenu de l'attribut name() de l'annotation MessageDriven. Dans le cas des beans enterprise définis via ejb-jar.xml, le nom est spécifié dans l'élément de descripteur de déploiement <ejb-name>.
- Configurez le bean géré par message en utilisant des annotations avec la propriété de spécification d'activation définie dans le fichier
server.xml.
Le profil Liberty prend en charge des annotations pour les beans gérés par message qui peuvent être utilisées avec la propriété de spécification d'activation définie dans le fichier server.xml. Pour utiliser des annotations, définissez d'abord la propriété de spécification d'activation comme décrit à l'étape précédente. Pour chaque bean géré par message, vous pouvez définir les annotations conformément à l'exemple suivant :
@MessageDriven( name = "JMSSampleMDB", activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), @ActivationConfigProperty(propertyName = "userName", propertyValue = "user1"), @ActivationConfigProperty(propertyName = "password", propertyValue = "user1pwd"), @ActivationConfigProperty(propertyName = "destination", propertyValue = "jndi_INPUT_Q") } ) public class JMSSampleMDB implements MessageListener{ @TransactionAttribute(value = TransactionAttributeType.REQUIRED) public void onMessage(Message message) { } }
- Configurez le bean géré par message en utilisant le fichier de liaison EJB ibm-ejb-jar-bnd.xml.
Vous pouvez aussi utiliser ce fichier de liaison pour définir les informations sur les ressources requises pour que le bean géré par message puisse se connecter au moteur de messagerie. Lorsque vous utilisez le fichier de liaison EJB, il n'est pas nécessaire que l'ID de la propriété de spécification d'activation soit au format nom application/nom module/nom bean comme mentionné à l'étape a.
Ajoutez les informations de propriété de spécification d'activation dans le fichier server.xml.<activationSpec id="PriceChangeAS"> <properties.wmqJms destinationRef="jms/TriggerQ" transportType="CLIENT" queueManager="myQM" hostName="myHost" port="1414"/> </activationSpec> <jmsQueue id=”jms/TriggerQ” jndiName="jms/TriggerQ"> <properties.wmqJms baseQueueName="Q1"/> </jmsQueue>
Ajoutez les informations de liaison de bean géré par message suivantes dans le fichier ibm-ejb-jar-bnd.xml :<ejb-jar-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_1.xsd" (http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_1.xsd%27) version="1.1"> <message-driven name="PriceChangeMDBBean"> <jca-adapter activation-spec-binding-name="PriceChangeAS" destination-binding-name="jms/TriggerQ" /> </message-driven> </ejb-jar-bnd>
Remarque : Lorsque vous utilisez le fichier de liaison EJB, l'attribut activation-spec-binding-name figurant dans le fichier ibm-ejb-jar-bnd.xml doit désigner la valeur de l'ID de propriété de spécification d'activation spécifiée dans le fichier server.xml.
- Configurez le bean géré par message avec la propriété de spécification d'activation.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_dep_msg_mdbjca
Nom du fichier : twlp_dep_msg_mdbjca.html