Resolución de problemas al desarrollar aplicaciones de
API de Message Broker
Los consejos que aquí se ofrecen pueden servirle de ayuda en la resolución de problemas que puedan surgir al desarrollar aplicaciones de API de Message Broker (también conocido como API de CMP).
La aplicación de CMP se cuelga si el intermediario no está disponible
Escenario: Cuando el intermediario no está disponible, la aplicación CMP se cuelga.
Explicación: La comunicación entre el CMP y el intermediario es
asíncrona, de forma que el CMP se cuelga porque está esperando
un mensaje del intermediario.
Solución: Configure el tiempo máximo de espera del
CMP utilizando el método
siguiente:
// Esperar un máximo de 10 segundos
BrokerProxy.setRetryCharacteristics(10000);
El valor especificado representa el tiempo en milisegundos que el CMP esperará para recibir la información antes de generar la excepción BrokerProxyPropertyNotInitializedException.
Si
establece este tiempo de espera en un valor demasiado bajo, se generará
una excepción aunque el intermediario esté disponible.
Establece la propiedad de un objeto y consulta su valor, pero el
valor no ha cambiado
Escenario: Ha establecido la propiedad de un
objeto y, a continuación, consulta su valor; el valor no ha cambiado.
Explicación: Los métodos que cambian las propiedades
de objetos de intermediario no se procesan inmediatamente.
Si llama a un método de cambio de propiedad en un objeto del CMP, esto hace que el API de CMP envíe un mensaje que solicita al intermediario que efectúe el cambio solicitado. El intermediario procesa la solicitud de forma asíncrona y notifica el objeto afectado a todos los AdministeredObjectListeners cuando se ha intentado el cambio.
Solución: los métodos que cambian el estado normalmente vuelven al programa que realiza la llamada tan pronto como se haya puesto la solicitud en el gestor de colas del intermediario, o, si se ha realizado una llamada a BrokerProxy.beginUpdates(),
tan pronto como
como la petición se ha añadido al lote actual. Si la propiedad
sigue sin estar actualizada después de que la respuesta de la acción a la
petición haya vuelto a la aplicación,
consulte el mensaje de respuesta para obtener más detalles.
No puede conectar a un intermediario mediante un archivo .broker
Escenario: no puede conectar a un intermediario cuando utiliza un archivo .broker.
Explicación: si las aplicaciones de CMP utilizan la clase MQPropertyFileBrokerConnectionParameters,
pueden conectarse a un intermediario utilizando un archivo de conexión que tiene una extensión .broker.
Sin embargo, este archivo sólo puede analizarse si hay disponible un analizador XML.
Solución: Asegúrese de que hay disponible un analizador
soportado en CLASSPATH. Con WebSphere Message Broker se proporciona un analizador
soportado.
De forma alternativa, la aplicación puede utilizar la clase
MQBrokerConnectionParameters en lugar de la
clase MQPropertyFileBrokerConnectionParameters.
Esta clase se conecta con un intermediario especificando el nombre de host, el nombre del gestor de colas y el puerto del gestor de colas directamente.
Este método no requiere un analizador XML.