函数名称:mqseries_open()
适用版本:PHP 4 >= 4.0.5, PHP 5, PHP 7
函数说明:mqseries_open() 函数用于打开一个与 IBM MQ 队列管理器的连接。
语法:resource mqseries_open ( array $qmgrobj, string $queueName, int $options, string &$compCode, string &$reason )
参数:
- qmgrobj:一个关联数组,包含连接 IBM MQ 队列管理器所需的参数。数组包含以下键值对:
- MQSERIES_Q_MANAGER:队列管理器名称。
- MQSERIES_CONN_NAME:连接名称。
- MQSERIES_CHANNEL:通道名称。
- MQSERIES_TRANSPORT:传输类型(例如:TCP)。
- queueName:要打开的队列名称。
- options:选项参数,指定打开队列的方式。可以使用以下常量进行设置:
- MQSERIES_MQOO_INPUT_AS_Q_DEF:打开队列以便从中读取消息。
- MQSERIES_MQOO_OUTPUT:打开队列以便向其中写入消息。
- MQSERIES_MQOO_INQUIRE:允许查询队列属性。
- MQSERIES_MQOO_SET:允许设置队列属性。
- MQSERIES_MQOO_BROWSE:打开队列以便浏览消息。
- MQSERIES_MQOO_FAIL_IF_QUIESCING:如果队列管理器停止,则打开队列失败。
- compCode:一个引用参数,用于返回操作的完成代码。如果操作成功,将返回 MQSERIES_MQCC_OK。
- reason:一个引用参数,用于返回操作失败的原因。
返回值:如果成功打开了队列,将返回一个队列句柄(资源类型),否则返回 FALSE。
示例:
<?php
$qmgrobj = array(
MQSERIES_Q_MANAGER => 'QMGR_NAME',
MQSERIES_CONN_NAME => 'localhost(1414)',
MQSERIES_CHANNEL => 'CHANNEL_NAME',
MQSERIES_TRANSPORT => 'TCP',
);
$queueName = 'QUEUE_NAME';
$options = MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_OUTPUT;
$compCode = '';
$reason = '';
$queue = mqseries_open($qmgrobj, $queueName, $options, $compCode, $reason);
if ($queue !== false) {
echo '队列打开成功!';
// 在此进行队列操作,如读取消息、写入消息等
// ...
mqseries_close($queue, MQSERIES_MQCO_NONE);
} else {
echo '队列打开失败!错误原因:' . $reason;
}
?>
以上示例展示了如何使用 mqseries_open() 函数打开一个与 IBM MQ 队列管理器的连接,并进行相关队列操作。请根据实际情况修改示例中的参数值。