ibm mq — аутентификация в MQ через библиотеку mqseries Переполнение стека

Мне нужна помощь с библиотекой php mqseries.
У меня проблемы с подключением к Queue-manager. Он подключается без аутентификации, но когда я пытаюсь использовать MQCSP, я получаю

Ошибка 2035

Я связался с разработчиками, один из них сказал мне, что он больше не работает над этим, другие не отвечают.
Похоже, на IBM это не работает.

Вот мой код подключения:

    $cfg = array();
$cfg['ESB_ADDRESS']                = '10.4.116.110(1416)';
$cfg['ESB_CHANNEL']                = 'SITEEXT.SVRCONN';
$cfg['ESB_QUEUE_MANAGER']          = 'IIB.ADP.MI1';
$cfg['ESB_QUEUE_NAME']             = 'SITEEXT_TO_ESB';
$cfg['ESB_TOPIC_STRING']           = '';
$cfg['USERID']                                           = 'svcgo-site';
$cfg['PASSWORD']                   = 'site91';
$cfg['QMgrName']                                   = 'IIB.ADP.MI1';
$cfg['DiscInterval']                           = '10';
/*
$cfg['ESB_ADDRESS']                = '10.4.111.139(1414)';
$cfg['ESB_CHANNEL']                = 'SITEEXT.SVRCONN';
$cfg['ESB_QUEUE_MANAGER']          = 'QM01';
$cfg['ESB_QUEUE_NAME']             = 'TEST_QUEUE1';
//$cfg['ESB_QUEUE_NAME']             = 'SITEEXT_TO_ESB';
$cfg['ESB_TOPIC_STRING']           = '';
$cfg['USERID']                                           = 'svcgo-site';
$cfg['PASSWORD']                   = 'site91';
//$cfg['QMgrName']                                   = 'QM01';
$cfg['DiscInterval']                           = '10';
*/

$connectionOptions = array(
'StrucId' => MQSERIES_MQCNO_STRUC_ID,
'Version' => MQSERIES_MQCNO_CURRENT_VERSION,
'Options' => MQSERIES_MQCNO_STANDARD_BINDING,
//MQSERIES_USE_MQCSP_AUTHENTICATION,
'MQCD' => array(
//'Version' => MQSERIES_MQCD_VERSION_11,
'ChannelName' => $cfg['ESB_CHANNEL'],
'TransportType' => MQSERIES_MQXPT_TCP,
'ConnectionName' => $cfg['ESB_ADDRESS']
),
MQSERIES_USE_MQCSP_AUTHENTICATION => true,
MQSERIES_MQCSP_AUTHENTICATION => true,
USER_AUTHENTICATION_MQCSP => true,
USE_MQCSP_AUTHENTICATION => true,
MQSERIES_USER_AUTHENTICATION_MQCSP => true,
useMQCSPAuthentication => true,
'MQCSP' => array(
'Version' => MQSERIES_MQCSP_CURRENT_VERSION,
'StrucId' => MQSERIES_MQCSP_STRUC_ID,
'AuthenticationType' => MQSERIES_MQCSP_AUTH_USER_ID_AND_PWD,
'CSPUserIdPtr' => $cfg['USERID'],
'CSPUserIdLength' => strlen($cfg['USERID']),
'CSPPasswordLength' => strlen($cfg['PASSWORD']),
'CSPPasswordPtr' => $cfg['PASSWORD']
),
/*
'ClientConnPtr' => array(
//'Version' => MQSERIES_MQCD_VERSION_11,
'ChannelName' => $cfg['ESB_CHANNEL'],
'TransportType' => MQSERIES_MQXPT_TCP,
'ConnectionName' => $cfg['ESB_ADDRESS']
)
*/
);
mqseries_connx($cfg['ESB_QUEUE_MANAGER'], $connectionOptions, $connection, $completionCode, $reason);
if ($completionCode !== MQSERIES_MQCC_OK) {
die("Connx CompCode : {$completionCode} Reason : {$reason} Text : " . mqseries_strerror($reason));
}
else{echo "Good<br>";}

Php v.5.3.17

IBM MQ 9

Клиентская библиотека Mqseries v 0.15.0

1

Решение

Этот пакет PHP не имеет кода для обработки структуры MQCSP и добавления его в CNO. Похоже, вам нужно изменить функцию _mqseries_set_mqcno_from_array и способ ее вызова.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]