Sugerencias para la resolución de problemas de mensajería

Estas sugerencias le ayudarán a resolver sus problemas de configuración de la mensajería WebSphere.

Nota: En este tema se hace referencia a uno o más de los archivos de registro del servidor de aplicaciones. Como alternativa recomendada, puede configurar el servidor para utilizar la infraestructura de registro y rastreo HPEL en lugar de utilizar los archivos SystemOut.log , SystemErr.log, trace.log y activity.log en sistemas distribuidos y de IBM® i. Puede también utilizar HPEL junto con sus recursos de registro nativos de z/OS. Si utiliza HPEL, puede acceder a toda la información de registro y rastreo utilizando la herramienta de línea de mandatos LogViewer desde el directorio bin de perfil de servidor. Consulte la información sobre la utilización de HPEL para resolver problemas de aplicaciones para obtener más información sobre la utilización de HPEL.

[IBM i][AIX Solaris HP-UX Linux Windows]Para ayudarle a identificar y resolver problemas con la mensajería, puede utilizar los recursos de seguimiento y registro de WebSphere Application Server.

[z/OS]Para ayudarle a identificar y resolver problemas con la mensajería, puede utilizar los recursos de rastro y de registro cronológico de WebSphere Application Server como se describe en Configuración del rastreo de componentes (CTRACE).

Si tiene algún problema durante el despliegue o la ejecución de aplicaciones que utilizan las posibilidades de mensajería de WebSphere Application Server, consulte los artículos siguientes:

Si ve mensajes de error o códigos de razón de IBM MQ en los mensajes y registros de WebSphere Application Server, consulte la sección Mensajes del centro de información IBM MQ.

Compruebe si el problema se ha identificado y documentado, utilizando los enlaces de Diagnóstico y solución de problemas: recursos de aprendizaje.

La configuración del adaptador de recursos de WebSphere MQ no se actualiza automáticamente y requiere mantenimiento manual

Normalmente el adaptador de recursos de IBM MQ se actualiza automáticamente cuando se aplica un fixpack de WebSphere Application Server. No obstante, si ha actualizado manualmente el adaptador de recursos de IBM MQ en algunos nodos del entorno, la aplicación de un fixpack no actualiza automáticamente el adaptador de recursos que utilizan los servidores en esos nodos.

Para resolver este problema, consulte Mantenimiento del adaptador de recursos IBM MQ.

Se producen excepiones java.lang.ClassNotFoundException al instalar un fixpack

Si al instalar un fixpack ve el siguiente mensaje, siga las instrucciones de Mantenimiento del adaptador de recursos IBM MQ para intentar resolver el problema:
J2CA0043E: Se ha producido una excepción al intentar crear una instancia para
las instancia ResourceAdapter
JavaBean del adaptador ResourceAdapter instalado por la clave #removed#

Los mensajes de WebSphere MQ para z/OS no se consumen en las aplicaciones JMS

Los mensajes de WebSphere MQ para z/OS no se consumen en las aplicaciones JMS desplegadas en WebSphere Application Server y que utilizan fábricas de conexiones o especificaciones de activación

Una aplicación JMS ya no puede enviar ni recibir mensajes

Al configurar una aplicación para que utilice el proveedor de mensajería predeterminado, lo asocia a uno de los siguientes conjuntos de recursos:
  • Uno o más beans de mensajes conectados a través de las especificaciones de activación JMS (Java™ Message Service).
  • Uno o más enterprise beans conectados a través de fábricas de conexiones JMS y destinos JMS.
Para ayudarle a resolver el problema, utilice los siguientes paneles de la consola administrativa para inspeccionar la configuración de sus aplicaciones y recursos JMS:

No se puede iniciar un escucha de MDB

Si no se puede iniciar un escucha de MDB desplegado en un puerto de escucha, aparece el siguiente mensaje:
WMSG0019E: No es posible iniciar MDB Listener {0}, JMSDestination {1} : {2} 
Para ayudarle a resolver este problema, compruebe los factores siguientes:
  • Compruebe que los recursos administrativos se han configurado correctamente. Por ejemplo, utilice la consola administrativa para comprobar las propiedades del puerto de escucha: Nombre JNDI de destino y Nombre JNDI de fábrica de conexiones. Compruebe que las otras propiedades del puerto de escucha, el destino y la fábrica de conexiones son las correctas.
  • Compruebe que la cola existe y se ha añadido al servidor JMS.
  • Compruebe que se han iniciado el gestor de colas y el servidor JMS.
  • Compruebe que se ha iniciado la escucha del gestor de colas remoto.
  • [AIX Solaris HP-UX Linux Windows][IBM i]Si la seguridad está habilitada, compruebe que se ha especificado un alias de autenticación gestionado por componente en la fábrica de conexiones de cola o la fábrica de conexiones de tema que utiliza el bean controlado por mensaje. [z/OS]Si se ha habilitado la seguridad, compruebe que el ID de usuario utilizado para iniciar la escucha MDB está autorizado adecuadamente. Para obtener más información, consulte Problemas de ejecución de aplicaciones JMS con la seguridad habilitada.

Problemas de ejecución de aplicaciones JMS con la seguridad habilitada

Cuando intente ejecutar una aplicación JMS con la seguridad habilitada, puede encontrar problemas de autenticación indicados por uno o más de los mensajes de error siguientes:
WMSG0019E: No se ha podido iniciar MDB Listener PSSampleMDB, JMSDestination Sample/JMS/listen:
javax.jms.JMSSecurityException:
Este ejemplo indica que las credenciales de seguridad proporcionadas no son válidas.
Para resolver este problema, compruebe la configuración de seguridad:
  • Si el mecanismo de autenticación está establecido como Aplicación, la aplicación debe proporcionar credenciales válidas.
  • Si es mecanismo de autenticación se establece en Container (contenedor), debe configurar la fábrica de conexiones JMS con un alias de autenticación gestionado por contenedor y asegurarse de que el ID de usuario y contraseña son válidos. [z/OS]También, cuando ejecute la modalidad de transporte bindings (enlaces), puede explotar el soporte de identidad de hebra de conector.
[AIX Solaris HP-UX Linux Windows][IBM i]
MQJMS2013 autenticación de seguridad proporcionada para MQQueueManager no válida:
Si utiliza IBM MQ como proveedor JMS, con la conexión JMS utilizando la modalidad de transporte de enlaces, y el usuario especificado no es el usuario que actualmente ha iniciado la sesión en el proceso de WebSphere Application Server, la autenticación de enlaces JMS de IBM MQ genera un error de autenticación de seguridad no válido.
Para resolver este problema, compruebe la configuración de seguridad. Cuando configure el proveedor JMS de IBM MQ para utilizar modalidad de transporte de enlaces, establezca la propiedad Transport type (tipo de transporte) en BINDINGS en la fábrica de conexiones de colas de IBM MQ. En este momento, puede también elegir una de las opciones siguientes:
  • Usar credenciales de seguridad. Para ello, asegúrese de que el usuario especificado es el usuario que ha iniciado la sesión actualmente para el proceso de WebSphere Application Server.
  • No usar credenciales de seguridad. En la fábrica de conexiones de IBM MQ, asegúrese de que las propiedades Alias de autenticación gestionado por componentes y Alias de autenticación gestionado por contenedor no se hayan establecido.

Para obtener más información acerca de la seguridad de mensajería, consulte Protección de mensajería.

[AIX Solaris HP-UX Linux Windows]

El servidor de aplicaciones no se inicia cuando se establece en Solaris el entorno local zh_TW.EUC

En Solaris, si establece el entorno local zh_TW.EUC y utiliza IBM MQ como proveedor JMS, es posible que sus servidores de aplicaciones no se inicien.

Para solucionar este problema, establezca las variables LANG y LC_ALL en zh_TW.

Consumo de memoria del servidor y excepción java.lang.OutOfMemoryError al procesar mensajes JMS

Cuando utilice el proveedor de mensajería predeterminado, los mensajes JMS se procesan mediante un motor de mensajería dentro del proceso del servidor de aplicaciones. Este enfoque consume memoria del almacenamiento dinámico d la JVM del servidor de aplicaciones. Si hay una concurrencia significativa de procesamiento de mensajes grandes, y la cantidad de memoria disponible para el almacenamiento dinámico de JVM no es suficiente para manejar este suceso, se lanza una excepción java.lang.OutOfMemoryError y el servidor de aplicaciones termina.

Para solucionar este problema, estime el número potencial de procesadores o consumidores simultáneos de mensajes y los tamaños de los mensajes y, a continuación, establecer el tamaño del almacenamiento dinámico de la JVM del servidor de aplicaciones para controlar el efecto. Por ejemplo:
  1. Cuando despliega un bean controlado por mensaje que procesa mensajes de forma concurrente, estime el consumo potencial de la memoria del servidor de aplicaciones por puntos finales concurrentes. Tenga en cuenta que todos los puntos finales que están procesando simultáneamente una solicitud de mensaje añaden dos veces como mínimo el tamaño del mensaje al almacenamiento dinámico de la JVM del servidor y pueden añadir más especialmente si está ocurriendo una transacción de dos fases.
  2. Inicie la consola de administración de WebSphere Application Server.
  3. Acceda a Servidores > Tipos de servidor > Servidores de aplicaciones WebSphere > nombre_servidor > Gestión de procesos y Java > Definición de procesos > Java Virtual Machine y configure la cantidad de memoria disponible para el almacenamiento dinámico de JVM del servidor de aplicaciones definiendo las propiedades Tamaño de almacenamiento dinámico inicial y Tamaño de almacenamiento dinámico máximo.
  4. Vaya hasta Recursos > JMS > Proveedores JMS > Proveedor de mensajería predeterminado > Especificaciones de activación > nombre_especificación_activación, después, configure el número de puntos finales MDB simultáneos que pueden procesar mensajes estableciendo la propiedad Máximo de puntos finales simultáneos de la especificación de activación para este bean controlador por mensaje.

Error de incompatibilidad de los atributos TopicConnectionFactory

Al crear un suscriptor de tema JMS que utilice el proveedor de mensajería de IBM MQ, se puede producir el siguiente mensaje de error en el archivo SystemOut.log:
WSVR0017E: Se ha producido un error al enlazar el recurso J2EE,
TopicConnectionFactory, como <NOMBRE_JNDI>
   desde el archivo <ARCHIVO_RECURSOS> com.ibm.ws.runtime.component.binder.ResourceBindingException: se ha pasado
   una configuración no válida a la lógica de enlace de recursos. RAZÓN: no se ha podido crear la fábrica de conexiones:
   Error al construir AdminObject, código de error:  TopicConnectionFactory attributes clash  : 
   TopicConnectionFactory attributes clash 

Este error está causado por la configuración de la fábrica de conexiones de tema JMS utilizada para crear el suscriptor, que especifica un versión de intermediario de "Básico" y un valor de selección de mensajes de "Intermediario". El intermediario "Básico" IBM MQ (intermediario MA0C SupportPac) no da soporte a la selección de mensajes de "intermediario".

Para resolver este problema, modifique la fábrica de conexiones de tema JMS para que especifique un valor de selección de mensajes de "Cliente", que es el único valor soportado para el intermediario de IBM MQ Básico (intermediario de MA0C SupportPac).

WSEC5061E: El cuerpo SOAP no es una excepción firmada

Al ejecutar una aplicación de servicios web protegida que utiliza transporte JMS bajo el proveedor de mensajería de IBM MQ, se puede producir el siguiente mensaje de error en el archivo SystemOut.log:
com.ibm.wsspi.wssecurity.SoapSecurityException: WSEC5061E: El Body de SOAP no está firmado.; null
Este problema se produce en las circunstancias siguientes:
  • Una aplicación de servicio web, configurada con Web Services Security, se ejecuta en un servidor de aplicaciones que tiene habilitada la seguridad de WebSphere Application Server.
  • Esta aplicación de servicio web utiliza el transporte JMS para enviar solicitudes SOAP a un servicio web de destino.
  • El recurso JMS utiliza un servidor IBM MQ remoto para conectar a una cola de IBM MQ.
  • Otra aplicación de servicio web idéntica, configurada para utilizar la misma cola a través del mismo servidor IBM MQ, se está ejecutando en un servidor de aplicaciones distinto que no tiene habilitada la seguridad de WebSphere Application Server.

El problema se produce cuando una solicitud enviada desde la aplicación original se procesa a través de la misma cola, pero para un servidor de aplicaciones distinto en el que la seguridad no está habilitada.

Para solucionar este problema:
  1. Cree un gestor de colas exclusivo con un puerto exclusivo en el servidor IBM MQ.
  2. Reconfigure los recursos JMS para utilizar el gestor de colas y el puerto nuevos; por ejemplo, utilizando la consola administrativa de WebSphere Application Server para cambiar las propiedades de la fábrica de conexiones de cola de IBM MQ, tal como se describe en Configuración de una fábrica de conexiones de cola para el proveedor de mensajería IBM MQ.
  3. Vuelva a ejecutar la aplicación.

Error al utilizar IBM MQ como proveedor JMS externo

Cuando utilice IBM MQ como proveedor JMS externo y envíe un mensaje a una cola IBM MQ dentro de una transacción controlada por usuario, el mensaje puede llegar a la cola de destino antes de que la transacción se comprometa. Este problema ocurre cuando el gestor de recursos de IBM MQ no figura en la transacción gestionada por el usuario.

Para resolver este problema, utilice una transacción gestionada por contenedor.

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

javax.jms.JMSException: MQJMS3024: no se ha podido iniciar el escucha de MDB

Este error se puede producir si utiliza un ID de cliente no inicializado (un ID de cliente que no está asociado a una suscripción duradera). Para solucionar este problema, establezca el ID de cliente de una de las tres formas siguientes:
  • Establezca el ID de cliente como propiedad de tcf, utilizando la herramienta jmsadmin. Por ejemplo, cambie tcf(myTCF) clientid(myID).
  • Establezca el ID de cliente mediante programación, utilizando TopicConnection.setClientID()
  • Establezca el campo de ID de cliente de forma administrativa, utilizando la consola administrativa para modificar Valores de fábrica de conexiones de tema del proveedor de mensajería IBM MQ.
[z/OS]

Durante el inicio del servidor aparecen mensajes de infraestructura de canal de mensajería de WebSphere MQ

Es posible que aparezca el siguiente mensaje varias veces en el proceso de complemento de la región de control durante el arranque del servidor, aunque la conexión sea satisfactoria en reintentos posteriores. Este mensaje se emite debido al método asíncrono mediante el cual se inicia el canal proxy TCP de z/OS y no indica que se haya producido ningún error.

Trace: 2009/06/17 08:24:41.434 01 t=9C6B58 c=UNK key=P8 (00000011)
Description: Mensaje Java del registro 
Mensaje: CHFW0030E: Error al iniciar la cadena _InboundTCPProxyBridgeService debido 
of exception com.ibm.wsspi.channel.framework.exception.RetryableChannelException: 
Se ha generado una excepción al tratar de iniciar TCPProxyChannel 
com.ibm.ws.channel.framework.imp l.ChannelFrameworkImpl
Es posible que estos mensajes vayan acompañados por salida de captura de datos en primer error (FFDC) similar al ejemplo siguiente:
Exception = com.ibm.wsspi.channel.framework.exception.RetryableChannelException
Source = com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChainInternal
probeid = 2577
Stack Dump = com.ibm.wsspi.channel.framework.exception.RetryableChannelException: 
Se ha generado una excepción al tratar de iniciar TCPProxyChannel 
        at com.ibm.ws.tcpchannelproxy.jfap.impl.TCPProxyInboundChannel.
start(TCPProxyInboundChannel.java:153)
        at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.
startChannelInChain(ChannelFrameworkImpl.java:1410)
        at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.
startChainInternal(ChannelFrameworkImpl.java:2863)
        at com.ibm.ws.channel.framework.impl.WSChannelFrameworkImpl.
startChainInternal(WSChannelFrameworkImpl.java:960)
        at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.
startChainInternal(ChannelFrameworkImpl.java:2794)
        at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.
startChain(ChannelFrameworkImpl.java:2779)
        at com.ibm.ws.runtime.component.ChannelFrameworkServiceImpl.
startChain(ChannelFrameworkServiceImpl.java:666)
        at com.ibm.ws.sib.jfapchannel.framework.impl.ChannelFrameworkReference$TCPProxy
BridgeServiceInboundChainStartupRunnable.run(ChannelFrameworkReference.java:1641)
        en com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1550)
Provocado por: com.ibm.ws.tcpchannelproxy.jfap.NotYetInitializedException: 
El servidor todavía no se ha inicializado
        at com.ibm.ws.tcpchannelproxy.jfap.TCPProxyBridgeServicesImpl.
startListening(TCPProxyBridgeServicesImpl.java:558)
        at com.ibm.ws.tcpchannelproxy.jfap.impl.TCPProxyInboundChannel.
start(TCPProxyInboundChannel.java:131)
        ... 8 more
Finalmente se mostrará el mensaje siguiente que indica que el canal proxy TCP de z/OS se ha iniciado correctamente:
Trace: 2009/06/17 08:24:51.449 01 t=9C6B58 c=UNK key=P8 (13007002)
   ThreadId: 00000003
   FunctionName: com.ibm.ws.channel.framework.impl.WSChannelFrameworkImpl
   SourceId: com.ibm.ws.channel.framework.impl.WSChannelFrameworkImpl
   Category: AUDIT
   ExtendedMessage: BBOO0222I: CHFW0019I: El servicio de canal de transporte ha iniciado la 
cadena _InboundTCPProxyBridgeService.

Icon that indicates the type of topic Reference topic



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