牛牛在线工具

mqseries_get()

收录 8868 个 PHP 函数,含用途说明与用法示例。

mqseries_get()

从 IBM MQ 队列中获取消息,并将其存储在一个数组中

函数名:mqseries_get() 适用版本:PHP 7.0.0 及以上版本 用法:mqseries_get() 函数用于从 IBM MQ 队列中获取消息,并将其存储在一个数组中。 语法:mqseries_get(resource $hconn, resource $hobj, array &$md, array &$gmo, int &$bufferlength, string &$buffer, int &$data_length, int &$comp_code, int &$reason) 参数: $hconn:MQ 连接句柄,由 mqseries_conn() 函数返回。 $hobj:MQ 对象句柄,由 mqseries_open() 函数返回。 $md:一个关联数组,用于存储消息描述符(Message Descriptor)的信息,包括消息类型、优先级等。 $gmo:一个关联数组,用于存储获取选项(Get Options)的信息,包括获取模式、等待时间等。 $bufferlength:一个整数变量,用于指定接收消息的缓冲区大小。 $buffer:一个字符串变量,用于存储接收到的消息数据。 $data_length:一个整数变量,用于存储接收到的消息数据的长度。 $comp_code:一个整数变量,用于存储操作完成的结果代码。 $reason:一个整数变量,用于存储操作完成的详细原因代码。 返回值:如果成功获取消息,则返回 true;如果没有消息可用或者发生错误,则返回 false。 示例: // 创建 MQ 连接 $conn_options = array( MQSERIES_MQCNO_HANDLE_SHARE_BLOCK, MQSERIES_MQCNO_RECONNECT, ); $hconn = mqseries_conn('QMGR', $conn_options); // 打开 MQ 队列 $open_options = array( MQSERIES_MQOO_INPUT_AS_Q_DEF, ); $hobj = mqseries_open($hconn, 'QUEUE', $open_options); // 准备消息描述符 $md = array( 'MsgType' => MQSERIES_MQMT_REQUEST, 'Feedback' => MQSERIES_MQFB_NONE, ); // 准备获取选项 $gmo = array( 'Options' => MQSERIES_MQGMO_WAIT | MQSERIES_MQGMO_CONVERT, 'WaitInterval' => MQSERIES_MQWI_UNLIMITED, ); // 定义缓冲区大小 $bufferlength = 1024; // 接收消息 $buffer = ''; $data_length = 0; $comp_code = 0; $reason = 0; $result = mqseries_get($hconn, $hobj, $md, $gmo, $bufferlength, $buffer, $data_length, $comp_code, $reason); if ($result) { echo "成功获取消息:\n"; echo "消息类型:" . $md['MsgType'] . "\n"; echo "消息数据:" . $buffer . "\n"; } else { echo "获取消息失败,原因代码:" . $reason . "\n"; } // 关闭 MQ 队列 mqseries_close($hconn, $hobj); // 断开 MQ 连接 mqseries_disc($hconn); 注意事项: 在使用 mqseries_get() 函数之前,需要先通过 mqseries_conn() 函数创建 MQ 连接,并通过 mqseries_open() 函数打开 MQ 队列。 在接收消息之前,需要准备好消息描述符($md)和获取选项($gmo)。 接收到的消息数据将存储在 $buffer 变量中,消息数据的长度将存储在 $data_length 变量中。 如果成功获取消息,则 $comp_code 变量的值为 MQSERIES_MQCC_OK,否则为 MQSERIES_MQCC_FAILED,详细错误原因可查看 $reason 变量的值。