Así que he pasado los últimos días tratando de resolver esto que parece haberse olvidado ya que ninguna de las dos extensiones PECL disponibles (SAM y mqseries) se han actualizado durante mucho tiempo. He intentado ambos y mqseries parece que me lleva más lejos en este punto, ya que SAM se niega a hacerme una conexión, a pesar de que MQ funciona perfectamente desde la línea de comandos. He creado con éxito una conexión con mi gestor_colas y es durante el siguiente paso (MQOPEN) que fallan miserablemente:Intentando conectar a MQ usando PHP; casi allí
$mqcno = array(
'Version' => MQSERIES_MQCNO_VERSION_2,
'Options' => MQSERIES_MQCNO_STANDARD_BINDING,
'MQCD' => array('ChannelName' => '[channel]',
'ConnectionName' => '[ipnumber]([port])',
'TransportType' => MQSERIES_MQXPT_TCP)
);
mqseries_connx('MQED', $mqcno, $conn, $comp_code,$reason);
if ($comp_code !== MQSERIES_MQCC_OK) {
printf("Connx CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, $reason);
exit;
}
$mqods = array('ObjectName'=>'MYPUTQUEUE', 'ObjectType'=>MQOT_Q, 'ObjectQMgrName'=>'MYQUEUEMANAGER');
mqseries_open($conn, $mqods,
MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
$obj, $comp_code,$reason);
Esto se traduce en $ razón de ser poblado con 2044, que se traduce en MQRC_OD_ERROR, o en Inglés: 'En la llamada MQOPEN o MQPUT1, el descriptor de objeto MQOD no es válido'.
Entonces la pregunta es, ¿qué pasa con mi MQOD?
Actualización n. ° 1: En este punto, esto no se resuelve. Reconstruí el proyecto desde cero para resolver cualquier problema en tiempo de compilación. Todavía estoy atascado en MQOPEN que devuelve 2044. Las muestras aún se ejecutan perfectamente desde CLI, por lo que esto definitivamente está relacionado con la instalación de la extensión PECL. Si hay alguien por ahí que ha instalado con éxito y está ejecutando PHP contra MQ en un entorno PHP5 de 64 bits bastante reciente, por favor hágamelo saber ...
Actualización n. ° 2: MQPUT1 funciona perfectamente con el problema de que no puedo recibir mi respuesta. En este punto, es solo MQOPEN que no funciona. La pregunta es; ¿Qué está causando que MQOPEN devuelva 2044 cuando funciona MQPUT1, lo que entiendo incluye MQOPEN?
* He creado con éxito una conexión a mi QueueManager y es durante el siguiente paso (MQCONN) que fallo miserablemente ... * ¿Por casualidad quiere decir que está en el MQOpen que falla? –
Sí, lo siento. He editado mi pregunta. – eriben
No estoy familiarizado con los módulos de PHP pero 'DeviceName' parece una clave impar para el nombre de la cola. –