Quindi ho passato gli ultimi giorni a cercare di risolvere ciò che sembra essere stato dimenticato poiché nessuna delle due estensioni PECL disponibili (SAM e mqseries) è stata aggiornata per un lungo periodo. Ho provato entrambi e mqseries mi sembra il più lontano a questo punto dal momento che SAM si rifiuta di ottenere una connessione, anche se MQ funziona perfettamente dalla riga di comando. Ho creato con successo un collegamento al mio QueueManager ed è durante la prossima fase (MQOPEN) che non riesco miseramente:Cercando di connettersi a MQ usando PHP; quasi lì
$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);
questo si traduce in $ motivo è popolato con 2044, che si traduce in MQRC_OD_ERROR, o in inglese: 'Sulla chiamata MQOPEN o MQPUT1, il descrittore dell'oggetto MQOD non è valido'.
Quindi la domanda è: cosa c'è che non va nel mio MQOD?
Aggiornamento n. 1: A questo punto questo non viene risolto. Ho ricostruito il progetto da zero per risolvere eventuali problemi al momento della compilazione. Sono ancora bloccato su MQOPEN che restituisce 2044. I campioni continuano a funzionare perfettamente da CLI, quindi questo è sicuramente legato all'installazione dell'estensione PECL. Se c'è qualcuno là fuori che ha installato con successo e sta eseguendo PHP contro MQ in un ambiente PHP5 a 64 bit abbastanza recente, per favore fatemi sapere ...
Update # 2: MQPUT1 funziona perfettamente con il problema che non posso ricevere la mia risposta A questo punto, è solo MQOPEN che non funziona. La domanda è; cosa sta causando MQOPEN a restituire 2044 quando MQPUT1 funziona, cosa che comprende MQOPEN?
* Ho creato con successo una connessione al mio QueueManager ed è durante il passaggio successivo (MQCONN) che non riesco a fallire miseramente ... * Si intende per certo che è su MQOpen che non riesce? –
Sì, mi dispiace. Ho modificato la mia domanda. – eriben
Non ho familiarità con i moduli PHP ma 'DeviceName' sembra una chiave dispari per il nome della coda. –