函数名:mqseries_set()
适用版本:PHP 4 >= 4.0.5, PHP 5, PHP 7
函数说明:mqseries_set() 函数用于设置 WebSphere MQ 的消息属性。
语法:mqseries_set(resource $hconn, resource $hobj, int $selectorcount, array &$selectors, int $intattrcount, array &$intattrs, int $charattrlength, array &$charattrs, int &$compcode, int &$reason)
参数:
- $hconn:连接标识符,由 mqseries_conn() 函数返回。
- $hobj:对象标识符,由 mqseries_open() 或 mqseries_begin() 函数返回。
- $selectorcount:整数,表示选择器数组的长度。
- $selectors:选择器数组,用于指定要设置的属性。每个选择器是一个整数,它代表一个特定的属性。
- $intattrcount:整数,表示整型属性数组的长度。
- $intattrs:整型属性数组,用于指定要设置的整型属性的值。
- $charattrlength:整数,表示字符属性数组中每个元素的长度。
- $charattrs:字符属性数组,用于指定要设置的字符属性的值。
- $compcode:返回的 MQSeries 的完成码。
- $reason:返回的 MQSeries 的原因码。
返回值:如果成功设置了消息属性,则返回 TRUE。如果失败,则返回 FALSE。
示例:
<?php
// 连接到 WebSphere MQ
$conn = mqseries_conn("QMGR1", $compcode, $reason);
if ($compcode !== MQSERIES_MQCC_OK) {
echo "连接失败,原因码:{$reason}\n";
exit;
}
// 打开队列
$options = MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_OUTPUT;
$hobj = mqseries_open($conn, "QUEUE1", $options, $compcode, $reason);
if ($compcode !== MQSERIES_MQCC_OK) {
echo "打开队列失败,原因码:{$reason}\n";
mqseries_disc($conn, $compcode, $reason);
exit;
}
// 设置消息属性
$selectorcount = 1;
$selectors = [MQSERIES_MQIA_PRIORITY];
$intattrcount = 1;
$intattrs = [5];
$charattrlength = 0;
$charattrs = [];
mqseries_set($conn, $hobj, $selectorcount, $selectors, $intattrcount, $intattrs, $charattrlength, $charattrs, $compcode, $reason);
if ($compcode !== MQSERIES_MQCC_OK) {
echo "设置消息属性失败,原因码:{$reason}\n";
}
// 关闭队列和连接
mqseries_close($conn, $hobj, MQSERIES_MQCO_NONE, $compcode, $reason);
mqseries_disc($conn, $compcode, $reason);
?>
以上示例中,首先使用 mqseries_conn() 函数连接到 WebSphere MQ,然后使用 mqseries_open() 函数打开队列。接着,使用 mqseries_set() 函数设置消息属性,这里设置了消息的优先级为 5。最后,使用 mqseries_close() 函数关闭队列,使用 mqseries_disc() 函数断开与 WebSphere MQ 的连接。
请注意,示例中的参数值仅供参考,实际使用时需要根据具体情况进行调整。