[AIX Solaris HP-UX Linux Windows][IBM i]

Cómo evitar los tiempos de espera de transacción en la modalidad no ASF

Si el sistema de mensajería se ejecuta en la modalidad no ASF (Application Server Facilities), debe configurar correctamente la propiedad del servicio de transacciones Tiempo de espera de actividad total de transacción y la propiedad personalizada del servicio del escucha de mensajes NON.ASF.RECEIVE.TIMEOUT, para evitar tiempos de espera de transacción no deseados.

Antes de empezar

Para llevar a cabo los pasos de esta tarea, el sistema de mensajería se debe estar ejecutando en la modalidad no ASF. Para cambiar de la modalidad ASF a la modalidad no ASF, añada la propiedad personalizada NON.ASF.RECEIVE.TIMEOUT al servicio de escucha de mensajes tal como se describe en Configuración del servicio de escucha de mensajes.

Acerca de esta tarea

Para WebSphere Application Server versión 7 y posteriores, los puertos de escucha se estabilizan. Para obtener más información, consulte el artículo sobre las características que se han estabilizado. Debe planificar la migración de sus configuraciones de despliegue de beans controlados por mensajes de WebSphere MQ para pasar de utilizar puertos de escucha a utilizar especificaciones de activación. [AIX Solaris HP-UX Linux Windows][IBM i]Para obtener más información sobre cómo configurar especificaciones de activación para la modalidad no ASF, consulte Configuración de especificaciones de activación para la modalidad no ASF. No obstante, no debe iniciar esta migración hasta que esté seguro de que la aplicación no tiene que trabajar con servidores de aplicaciones anteriores WebSphere Application Server Versión 7. Por ejemplo, si tiene un clúster de servidor de aplicaciones con algunos miembros de la versión 6.1 y otros de una versión posterior, no debe migrar las aplicaciones en dicho clúster para que utilicen las especificaciones de activación hasta que haya migrado todos los servidores de aplicaciones del clúster a la versión posterior.

Si el sistema de mensajería se está ejecutando en la modalidad no ASF, para evitar tiempos de espera de transacción no deseados, deberá autorizar una cantidad suficiente de tiempo para que se complete el proceso, antes de que se alcance el tiempo de espera de la duración total de la transacción. Por lo tanto, debe asegurarse de que el valor que especifique para la propiedad personalizada del servicio de escucha de mensajes NON.ASF.RECEIVE.TIMEOUT sea menor que el valor que especifique para la propiedad de servicio de transacciones Tiempo de espera de actividad total de transacción y, también, que la diferencia entre los valores de las dos propiedades sea mayor que la cantidad de tiempo que el método onMessage() del bean controlado por mensaje (MDB) tarda en procesar el mensaje.

Procedimiento

  1. Para configurar la propiedad del servicio de transacciones Tiempo de espera de actividad total de transacción, complete el paso 8 en Configuración de propiedades de transacciones para servidores de aplicaciones.
  2. Para configurar la propiedad personalizada del servicio de escucha de mensajes NON.ASF.RECEIVE.TIMEOUT, pulse Servidores > Tipos de servidor > Servidores de aplicaciones de WebSphere > nombre_servidor > [Comunicaciones] Mensajería > Servicio de escucha de mensajes > Propiedades personalizadas.
  3. Pulse NON.ASF.RECEIVE.TIMEOUT. Se visualiza la página Propiedades generales.
  4. Modifique el campo Valor. El valor de NON.ASF.RECEIVE.TIMEOUT se debe especificar en milisegundos. Asegúrese de que el valor que especifique, cuando se convierta a segundos (dividiendo entre 1000), es inferior al valor que ha especificado para Tiempo de espera de actividad total de transacción y que la diferencia entre los valores de las dos propiedades es mayor que el número máximo de segundos que tarda el método onMessage() del MDB en procesar un mensaje.
  5. Pulse Aceptar.
  6. Detenga y reinicie el servidor de aplicaciones.

Ejemplo

Tal como se muestra en el ejemplo siguiente, si Tiempo de espera de actividad total de transacción y NON.ASF.RECEIVE.TIMEOUT no se han configurado correctamente, las transacciones pueden superar el tiempo de espera antes de que se completen. Esto se debe a que la hebra empieza a llamar al método receive() tan pronto como se crea la transacción. En el ejemplo siguiente, NON.ASF.RECEIVE.TIMEOUT se establece en 110000 milisegundos (110 segundos), Tiempo de espera de actividad total de transacción se establece en 120 segundos y el método onMessage () del MDB tarda 15 segundos en procesar un mensaje. El ejemplo da por supuestos que no aparece un mensaje en el destino hasta que el método receive() haya casi excedido el tiempo de espera:
  1. El puerto de escucha se inicia y asigna una hebra de la agrupación de hebras y crea una transacción en la hebra.
  2. La hebra llama al método receive() para escuchar mensajes.
  3. Después de 110 segundos, en el destino aparece un mensaje.
  4. La hebra elimina el mensaje del destino y llama al método onMessage() del MDB para empezar a procesar el mensaje.
  5. Diez segundos más tarde, se alcanza el tiempo de espera de la transacción. El servidor de aplicaciones marca la transacción para su retrotracción.
  6. Cinco segundos más tarde, el método onMessage() acaba de procesar el mensaje e intenta comprometer la transacción.
  7. La cantidad total de tiempo que ha transcurrido desde que se inició la transacción es 125 segundos (110 segundos esperando un mensaje, más 15 segundos para procesar el mensaje). Puesto que este tiempo es mayor que el tiempo de espera de la transacción, el servidor de aplicaciones impide que se comprometa la transacción y se retrotrae.

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=tmb_nonasftimeout
File name: tmb_nonasftimeout.html