Despliegue de beans controlados por mensajes para conectarse con IBM MQ.

Puede conectarse a IBM MQ utilizando beans controlados por mensajes (MDB).

Procedimiento

  1. Configure la característica MDB:

    Habilite el soporte de MDB en el servidor de Liberty; para ello, configure las características jmsMdb-3.2 y wmqJmsClient-2.0 en el archivo server.xml. Si desea realizar una búsqueda JNDI, también debe añadir la característica jndi-1.0 junto con las otras dos características.

    <featureManager>
         <feature>jmsMdb-3.2</feature>
         <feature>wmqJmsClient-2.0</feature>
         <feature>jndi-1.0</feature>
    </featureManager>

    La configuración de la característica wmqJmsClient-2.0 permite a los usuarios definir los recursos JMS necesarios y permite que el MDB interactúe con el motor de mensajería.

    Nota: La característica wmqJmsClient-2.0 admite las características de las especificaciones JMS 1.1 y JMS 2.0. Sin embargo, puede decidir utilizar la característica wmqJmsClient-1.1 si desea utilizar solamente las características que son compatibles con la especificación JMS 1.1.
  2. Especifique la ubicación de IBM MQ Resource Adapter añadiendo la entrada siguiente al archivo server.xml:
    <variable name="wmqJmsClient.rar.location" value="/path/to/wmq/rar/wmq.jmsra.rar"/>
    donde el atributo value especifica la vía de acceso absoluta del archivo de IBM MQ Resource Adapter, wmq.jmsra.rar.

    Para obtener detalles de las versiones admitidas y cómo obtener el archivo wmq.jmsra.rar, consulte la nota técnica 1633761 de IBM MQ. Consiga el archivo wmq.jmsra.rar e instálelo desde Fix Central.

  3. Configure una especificación de activación JCA que utilice el adaptador de recursos JMS de modo que el MDB actúe como escucha en un destino JMS específico. A continuación se muestran distintas formas en que se puede configurar un MDB para interactuar con el motor de mensajería.
    1. Configure MDB mediante la propiedad de especificación de activación.
      Puede definir la propiedad en el archivo server.xml, para que MDB pueda utilizar la propiedad para escuchar en un destino JMS específico.
      <jmsActivationSpec id="JMSSample/JMSSampleMDB">
           <properties.wmqJms destinationRef="jndi/MDBQ" transportType="CLIENT" queueManager="myQM" hostName="myHost" port="1414"/>
      </jmsActivationSpec>
      
      <jmsQueue id="jndi/MDBQ" jndiName="jndi/MDBQ">
           <properties.wmqJms baseQueueName="MYQ" baseQueueManagerName="myQM"/>
      </jmsQueue>

      <destinationRef> hace referencia al ID de <jmsQueue>. Si no se menciona un ID en <jmsQueue>, <destinationRef> debe apuntar al <jndiName> de <jmsQueue>.

      Nota: El valor del ID debe tener el formato nombre de aplicación/nombre de módulo/nombre de bean, donde
      • nombre de aplicación es el nombre de la aplicación que se despliega (por ejemplo, JMSSample). El nombre de aplicación sólo se aplica si el bean está empaquetado dentro de un archivo EAR. La aplicación toma el valor predeterminado del nombre base del archivo EAR sin extensión de nombre de archivo a menos que se haya especificado en el descriptor de despliegue de application.xml.
      • nombre de módulo es el nombre del módulo en el que se ha empaquetado el bean. En un archivo ejb-jar autónomo o en un archivo WAR, el <nombre de módulo> toma el valor predeterminado del nombre base del módulo con la extensión de nombre de archivo eliminada. En un archivo EAR, el <nombre de módulo> toma el valor predeterminado del nombre de vía de acceso del módulo con la extensión de nombre de archivo eliminada, pero con los nombres de directorio incluidos. El <nombre-módulo> predeterminado se puede alterar utilizando el elemento module-name de ejb-jar.xml (para archivos ejb-jar) o web.xml (para archivos WAR).
      • nombre de bean es el nombre ejb del enterprise bean. Para los enterprise beans definidos mediante anotación, el nombre de bean toma el valor predeterminado del nombre no calificado de la clase de bean de sesión, a menos que se especifique en el contenido del atributo name() de la anotación MessageDriven. Para los enterprise beans definidos mediante ejb-jar.xml, se especifica en el elemento del descriptor de despliegue de <ejb-name>.
    2. Utilice anotaciones junto con la propiedad de especificación de activación definida en el archivo server.xml.

      Liberty admite la definición de anotaciones para los MDB que se pueden utilizar con la propiedad de especificación de activación definida en el archivo server.xml. Para poder utilizar la anotación, primero defina la propiedad de especificación de activación como se menciona en el paso anterior. Y para cada uno de los MDB, el usuario puede definir las anotaciones como se muestra en el ejemplo siguiente:

      @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) {
      	 }
      }
    3. Use el archivo de enlaces EJB (ibm-ejb-jar-bnd.xml).

      También puede utilizar este archivo de enlaces para definir la información de recursos que es necesaria para que el MDB se conecte con el motor de mensajería. Cuando utiliza el archivo de enlaces EJB, el ID de propiedad de especificación de activación no necesariamente necesita tener en el formato nombre de aplicación/nombre de módulo/nombre de bean como se ha mencionado en el paso 1.

      Añada la información de la propiedad de especificación de activación en server.xml.
      <jmsActivationSpec id="PriceChangeAS">
           <properties.wmqJms destinationRef="jms/TriggerQ" transportType="CLIENT" queueManager="myQM" hostName="myHost" port="1414"/>
      </jmsActivationSpec>
      
      <jmsQueue id="jms/TriggerQ" jndiName="jms/TriggerQ">
           <properties.wmqJms baseQueueName="Q1"/>                  
       </jmsQueue>
      Añada la siguiente información de enlaces de MDB en el archivo 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>
      Nota: Cuando utiliza el archivo de enlaces EJB, el atributo activation-spec-binding-name del archivo ibm-ejb-jar-bnd.xml debe apuntar al valor del ID de la propiedad de especificación de activación que se ha especificado en el archivo server.xml.

Icono que indica el tipo de tema Tema de tarea



Icono de indicación de fecha y hora Última actualización: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_dep_msg_mdbwmq
Nombre de archivo:twlp_dep_msg_mdbwmq.html