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.
Para ayudarle a identificar y resolver problemas con la mensajería, puede utilizar los recursos de seguimiento y registro de WebSphere Application Server.
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 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
- Se producen excepiones java.lang.ClassNotFoundException al instalar un fixpack
- Los mensajes de WebSphere MQ para z/OS no se consumen en las aplicaciones JMS
- Una aplicación JMS ya no puede enviar ni recibir mensajes
- No se puede iniciar un escucha de MDB
- Problemas de ejecución de aplicaciones JMS con la seguridad habilitada
El servidor de aplicaciones no se inicia cuando se establece en Solaris el entorno local zh_TW.EUC
- Consumo de memoria del servidor y excepción java.lang.OutOfMemoryError al procesar mensajes JMS
- Error de incompatibilidad de los atributos TopicConnectionFactory
- WSEC5061E: El cuerpo SOAP no es una excepción firmada
- Error al utilizar IBM MQ como proveedor JMS externo
javax.jms.JMSException: MQJMS3024: no se ha podido iniciar el escucha de MDB
Durante el inicio del servidor aparecen mensajes de infraestructura de canal de mensajería de WebSphere MQ
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
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
- Configuración de una especificación de activación para el proveedor de mensajería de IBM MQ.
- Configuración de una fábrica de conexiones unificada para el proveedor de mensajería de IBM MQ.
- Configuración de una fábrica de conexiones de cola para el proveedor de mensajería IBM MQ.
- Configuración de una fábrica de conexiones de tema para el proveedor de mensajería IBM MQ.
Una aplicación JMS ya no puede enviar ni recibir mensajes
- 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 obtener una vista de los recursos JMS para una aplicación determinada, consulte el siguiente panel: Recursos de mensajería para esta aplicación.
- Para obtener una vista de las aplicaciones y los recursos JMS para un destino de proveedor de mensajería predeterminado en particular, consulte el siguiente panel: Recursos de aplicación para este destino.
No se puede iniciar un escucha de MDB
WMSG0019E: No es posible iniciar MDB Listener {0}, JMSDestination {1} : {2}
- 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.
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.
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
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.- 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.
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]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
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.- 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]](../images/dist.gif)
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.
- 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.
- Inicie la consola de administración de WebSphere Application Server.
- Acceda a Tamaño de almacenamiento dinámico inicial y Tamaño de almacenamiento dinámico máximo. y configure la cantidad de memoria disponible para el almacenamiento dinámico de JVM del servidor de aplicaciones definiendo las propiedades
- Vaya hasta Máximo de puntos finales simultáneos de la especificación de activación para este bean controlador por mensaje. , después, configure el número de puntos finales MDB simultáneos que pueden procesar mensajes estableciendo la propiedad
Error de incompatibilidad de los atributos TopicConnectionFactory
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
com.ibm.wsspi.wssecurity.SoapSecurityException: WSEC5061E: El Body de SOAP no está firmado.; null
- 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.
- Cree un gestor de colas exclusivo con un puerto exclusivo en el servidor IBM MQ.
- 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.
- 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]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
javax.jms.JMSException: MQJMS3024: no se ha podido iniciar el escucha de MDB
- 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]](../images/ngzos.gif)
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
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.