函数名:mqseries_put()
适用版本:PHP 4 >= 4.0.5, PHP 5, PHP 7
用法:mqseries_put(resource $hconn, resource $hobj, array &$md, array &$mpmo, string $msg, int &$comp_code, int &$reason)
说明:mqseries_put() 函数用于将消息放置到 IBM MQ 队列中。
参数:
- $hconn: 一个连接到 MQ 队列管理器的资源句柄。
- $hobj: 一个队列或主题对象的资源句柄。
- $md: 存储消息描述符的数组。包含消息类型、优先级等信息。
- $mpmo: 存储消息放置选项的数组。可以设置消息过期时间、消息放置顺序等。
- $msg: 要放置到队列中的消息内容。
- $comp_code: 用于返回 MQ 操作的完成代码。
- $reason: 用于返回 MQ 操作的原因代码。
返回值:如果成功放置消息到队列中,则返回 TRUE,否则返回 FALSE。
示例:
<?php
// 连接到 MQ 队列管理器
$conn = mqseries_connx("QMGR");
// 打开一个队列
$queue = mqseries_open($conn, "QUEUE");
// 准备消息描述符
$md = [
'MsgType' => MQSERIES_MQMT_DATAGRAM,
'Persistence' => MQSERIES_MQPER_PERSISTENT,
'Priority' => 1
];
// 准备消息放置选项
$mpmo = [
'Options' => MQSERIES_MQPMO_NEW_MSG_ID | MQSERIES_MQPMO_SYNCPOINT
];
// 要放置的消息
$msg = "Hello, MQ Series!";
// 将消息放置到队列中
mqseries_put($conn, $queue, $md, $mpmo, $msg, $comp_code, $reason);
// 检查是否成功放置消息
if ($comp_code === MQSERIES_MQCC_OK) {
echo "消息已成功放置到队列中。";
} else {
echo "放置消息失败,原因代码: " . $reason;
}
// 关闭队列
mqseries_close($conn, $queue);
// 断开 MQ 连接
mqseries_disc($conn);
?>
以上示例演示了如何使用 mqseries_put() 函数将消息放置到队列中。首先,通过 mqseries_connx() 函数连接到 MQ 队列管理器,并通过 mqseries_open() 函数打开一个队列。然后,准备消息描述符和消息放置选项,设置消息的类型、持久性、优先级等信息。接着,调用 mqseries_put() 函数将消息放置到队列中。最后,通过检查完成代码和原因代码,判断消息是否成功放置到队列中,并关闭队列和断开 MQ 连接。
请注意,示例中的 "QMGR" 和 "QUEUE" 分别表示 MQ 队列管理器和队列的名称,你需要根据实际情况进行替换。另外,示例中使用的常量如 MQSERIES_MQMT_DATAGRAM、MQSERIES_MQPER_PERSISTENT 等也需要根据你的实际需求进行调整。