2011-07-05 13 views
5

Estoy tratando de escribir una pequeña aplicación que se conecta a un Administrador de colas y emite algunos comandos en él, en Java.WebSphere MQ: cómo emitir comandos MQSC utilizando la API de Java?

Por lo que he leído en la documentación, entiendo que uno debe emitir comandos enviándolos en la cola "SYSTEM.ADMIN.COMMAND.QUEUE".

Sin embargo, la cola de respuestas definida por replyToQueueName sigue vacía después de la ejecución.

¿Hay algo que eché de menos?

Aquí es una versión reducida del código:

MQQueueManager qMgr = new MQQueueManager("SOME_HOSTNAME"); 

MQQueue qOut = qMgr.accessQueue("SYSTEM.ADMIN.COMMAND.QUEUE", MQC.MQOO_OUTPUT); 
MQQueue qIn = qMgr.accessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE", MQC.MQOO_INPUT_AS_Q_DEF); 

MQMessage message = new MQMessage(); 
message.writeUTF("DISPLAY QMGR ALL"); 
message.messageType = MQC.MQMT_REQUEST; 
message.format = MQC.MQFMT_STRING; 
message.replyToQueueName = "SYSTEM.DEFAULT.LOCAL.QUEUE"; 

qOut.put(message, new MQPutMessageOptions()); 

MQMessage retrievedMessage = new MQMessage(); 
MQGetMessageOptions gmo = new MQGetMessageOptions(); 
gmo.options = MQC.MQGMO_WAIT | MQC.MQGMO_CONVERT; 

qIn.get(retrievedMessage, gmo); 

Respuesta

4

el procesador de comandos espera recibir los mensajes en formato de mandato programable formato (PCF). Consulte las clases com.ibm.mq.pcf y el manual Programmable Command Formats and Administration Interface.

Dependiendo de la versión del cliente MQ que esté utilizando, es posible que necesite descargar las clases de PCF Java de SupportPac MS0B. Sin embargo, se recomienda encarecidamente desarrollar usando el último cliente de MQ. El cliente actual siempre trabajará con las versiones anteriores del servidor WMQ V7 y volverá al nivel de funcionalidad disponible en esas plataformas. Esto garantiza que al menos sus clases de cliente sean compatibles, mientras que una versión anterior como V5.3 o V6 no lo son.

El cliente V7.0 MQ está disponible como SupportPac MQC7.
El cliente V7.5 MQ está disponible como SupportPac MQC75. El cliente V8.0 MQ está disponible como SupportPac MQC80.

+0

¿Ha cambiado la API de la versión 6 a la 7? He visto ejemplos, como este http://www.mqseries.net/phpBB2/viewtopic.php?t=15159, donde los comandos se emiten como simples cadenas de mensajes. – slaphappy

+1

Para lectores más recientes, tenga en cuenta que z/OS también es compatible con PCF Too. Lo ha hecho desde V6. Los comandos MQSC encapsulados (también conocidos como Escape PCF) no son ni nunca fueron compatibles con z/OS. Al enviar comandos MQSC a z/OS no estaban encapsulados, solo eran cadenas colocadas directamente en la cola. –

+0

Gracias por la corrección, @Morag. ¡Es bueno tenerte aquí! –

Cuestiones relacionadas