Configuración de una cola de respuestas permanente para los servicios web con SOAP en JMS

Cuando se utilizan las comunicaciones de servicios web bidireccionales mediante el protocolo estándar del sector SOAP sobre JMS, puede beneficiarse de la configuración de una cola de respuestas permanente en un cliente de servicios web JAX-WS (API de Java™ para servicios web XML) o JAX-RPC (API de Java para RPC basado en XML). El uso de una cola de respuestas permanente puede mejorar el rendimiento, ya que esta cola de respuestas evita que el cliente tenga que crear una cola de respuestas temporal cada vez que se invoque una solicitud de servicios web.

Acerca de esta tarea

Una cola de respuestas permanente se configura en el cliente de servicios web de uno de estos modos:
  • Especifique la propiedad opcional replyToName en el URL de punto final de JMS.
  • Establezca la cola de respuestas de forma programada.
    • Para un cliente de servicios web JAX-WS, establezca el nombre JNDI de la cola de respuesta de forma programada en el objeto RequestContext del cliente. Al establecer el nombre JNDI de la cola de respuestas en el objeto RequestContext resultarán afectadas todas las solicitudes posteriores que se invocan mediante el objeto RequestContext.
    • Para un cliente de servicios web JAX-WS, establezca el nombre JNDI de la cola de respuesta de forma programada en el objeto Stub o Call del cliente. Al establecer el nombre JNDI de la cola de respuestas como una propiedad Stub o Call resultarán afectadas todas las solicitudes posteriores que se invoquen utilizando dicho objeto Stub o Call.
  • Establezca la cola de respuestas como propiedad del sistema JVM (Java Virtual Machine). Al establecer la cola de respuestas como una propiedad del sistema JVM, resultan afectados todos los clientes de servicios web que se ejecutan en una JVM concreta. Si hay varios clientes que se ejecutan en la misma JVM que necesitan utilizar una cola de respuestas distinta, esta opción no funcionará. En su lugar, utilice cualquiera de las otras dos opciones.

Para establecer la cola de respuestas permanente utilizando cualquiera de estas opciones, es necesaria una configuración sólo del lado del cliente. No es necesaria una configuración específica para el proveedor de servicios web.

Utilice las funciones administrativas típicas del proveedor de mensajes JMS para crear la cola de respuesta permanente antes de configurar la cola de respuestas con el cliente de servicios web.

Procedimiento

Configure el nombre JNDI de la cola de respuestas permanente de uno de los siguientes modos:
  • Especifique la propiedad replyToName opcional en el URL de punto final de JMS; por ejemplo:
    jms:jndi:jms/MyRequestQueue&jndiConnectionFactoryName=jms/MyCF&replyToName=jms/MyReplyQueue
  • Establezca la cola de respuestas de forma programada en el cliente
    El valor de la propiedad es de tipo String y representa un nombre JNDI de la cola de respuestas.
    • Para los clientes de servicios web JAX-WS, establezca la propiedad com.ibm.wsspi.webservices.Constants.JMS_REPLY_QUEUE_JNDI_NAME en el objeto RequestContext JAX-RPC del cliente; por ejemplo:
      ((BindingProvider) port).getRequestContext().put
      (com.ibm.wsspi.webservices.Constants.JMS_REPLY_QUEUE_JNDI_NAME, "jms/MyReplyQueue");
    • Para los clientes de servicios web JAX-RPC, establezca la propiedad com.ibm.wsspi.webservices.Constants.JMS_REPLY_QUEUE_JNDI_NAME en el objeto Stub o Call JAX-RPC del cliente; por ejemplo:
      ((javax.xml.rpc.Stub) stub)._setProperty(com.ibm.wsspi.webservices.Constants.JMS_REPLY_QUEUE_JNDI_NAME, 
      "jms/MyReplyQueue"); 
  • Establezca el nombre JNDI de la cola de respuestas como una propiedad del sistema JVM.
    • Para una invocación de cliente de Java, especifique el código siguiente en un indicador de mandatos:
      java -Dcom.ibm.websphere.webservices.JMSReplyQueueJndiName=jms/MyReplyQueue
    • Para una JVM que se ejecuta en el servidor de aplicaciones, realice las acciones siguientes:
      • Establezca una propiedad del sistema JVM con la consola administrativa para el servidor de aplicaciones que ejecuta la aplicación cliente de servicio web.

        Para establecer las propiedades personalizadas, inicie la sesión en la consola administrativa y vaya al panel de propiedades personalizadas de Java Virtual Machine.

        1. Pulse Servidores > Tipos de servidor > Servidores de aplicaciones WebSphere > nombre_servidor> Java y gestión de procesos > Definición de proceso > Máquina virtual Java > Propiedades personalizadas > Nueva
        2. Establezca la propiedad Name en: com.ibm.websphere.webservices.JMSReplyQueueJndiName
        3. Establezca la propiedad Value en: jms/Permanent_Q
        4. Pulse Aceptar para guardar los cambios.
        5. Pulse Sincronizar cambios con nodos y, a continuación, Guardar.
        6. Reinicie el servidor de aplicaciones.

Resultados

El cliente de servicios web puede recibir ahora mensajes SOAP sobre JMS de una cola de respuestas permanente.


Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jmspermreplystd
File name: twbs_jmspermreplystd.html