我按照 http://blog.phpdeveloper.org/?p=140 的帖子使用 mqseries 扩展从 PHP/Linux 连接到远程 WebsphereMQ,并且能够使连接正常工作。
但是,请求是使用客户端上 apache 用户的用户名发送的,MQ 服务器拒绝消息,并显示错误 2035。 我发现解决此问题的唯一方法是将运行 apache 的配置文件更改为在 MQ 服务器上具有访问权限的用户名。
在使用 mqseries 从 php 建立与 WebSphere MQ 的连接时,有没有办法传递用户名? 以下是我用来连接的代码:
//define connection parameters
$mqcno['MQCD'] = array(
'ChannelName' => $options['channel'],
'ConnectionName' => "$mq_host_ip($mq_host_port)",
'TransportType' => MQSERIES_MQXPT_TCP
);
// Connect to the MQ server
mqseries_connx($options['qmanager'], $mqcno, $this->_conn, $comp_code, $reason);
if ($comp_code !== MQSERIES_MQCC_OK) {
die ("Cannot open connection to server $mq_host_ip($mq_host_port) : ".$comp_code. " " .$mq_server. " " .$reason. " " );
}
谢谢巴斯卡尔
不,PHP 只是基于 C 的 MQI 的包装器(请参阅讨论与 mqm 和 mqic 链接的说明 - C 库),并且无法从 C 客户端 API 提供用户名,抱歉。