MQSTAT-检索状态信息

使用 MQSTAT 调用来检索状态信息。 返回的状态信息的类型由调用上指定的 "类型" 值确定。

语法

MQSTAT (HconnTypeStatCompcodeReason)

参数

Hconn
类型 :MQHCONN-输入

此句柄表示与队列管理器的连接。 先前的 MQCONN 或 MQCONNX 调用返回了 Hconn 的值。

z/OS® for CICS® 应用程序上,可以省略 MQCONN 调用,并为 Hconn 指定以下值:
MQHC_DEF_HCONN
缺省连接句柄。
类型
类型 :MQLONG-输入

正在请求的状态信息的类型。 有效值如下:

mqstat_type_async_error
返回有关先前异步放置操作的信息。
mqstat_type_reconnection

返回有关重新连接的信息。 如果连接正在重新连接或未能重新连接,那么此信息描述导致连接开始重新连接的故障。

此值仅对客户机连接有效。 对于其他类型的连接,调用失败,原因码为 MQRC_ENVIRONMENT_ERROR

mqstat_type_reconnection_error

返回有关与重新连接相关的先前故障的信息。 如果连接未能重新连接,那么此信息描述导致重新连接失败的故障。

此值仅对客户机连接有效。 对于其他类型的连接,调用失败,原因码为 MQRC_ENVIRONMENT_ERROR

stat
类型 :MQSTS-输入/输出

状态信息结构。 请参阅 MQSTS-状态报告结构 以获取详细信息。

CompCode
类型:MQLONG - 输出
完成代码;此完成代码为以下其中一项:
MQCC_OK
成功完成。
MQCC_FAILED
调用失败。
原因
类型:MQLONG - 输出

限定 CompCode的原因码。

如果 CompCode 为 MQCC_OK:
MQRC_NONE
(0, X'000') 没有要报告的原因。
如果 CompCode 是 MQCC_FAILED:
MQRC_API_EXIT_ERROR
(2374 , X' 946 ') API 出口失败
mqrc_api_exit_load_error
(2183 , X'887 ') 无法装入 API 出口。
MQRC_CALL_IN_PROGRESS
(2219, X'8AB') 在先前调用完成前输入了 MQI 调用。
MQRC_CONNECTION_BROKEN
(2009, X'7D9') 与队列管理器的连接丢失。
MQRC_CONNECTION_STOPPING
(2203, X'89B') 连接正在关闭。
mqrc_function_not_supported
(2298,X'8FA') 请求的功能在当前环境中不可用。
MQRC_HCONN_ERROR
(2018, X'7E2') 连接句柄无效。
MQRC_Q_MGR_STOPPING
(2162,X"872"-队列管理器正在停止
MQRC_RESOURCE_PROBLEM
(2102, X'836') 没有足够系统资源可用。
mqrc_stat_type_error
(2430,X'97E'MQSTAT 类型错误
MQRC_STORAGE_NOT_AVAILABLE
(2071, X'817') 没有足够的存储空间可用。
MQRC_STS_ERROR
(2426,X'97A') MQSTS 结构出错
MQRC_UNEXPECTED_ERROR
(2195, X'893') 发生了意外错误。

有关这些代码的详细信息,请参阅 消息和原因码

使用说明

  1. 指定 MQSTAT_TYPE_ASYNC_ERROR 类型的 MQSTAT 调用将返回有关先前异步 MQPUTMQPUT1 操作的信息。 从 MQSTAT 调用返回时传递的 MQSTS 结构包含该连接的第一个记录的异步警告或错误信息。 如果在第一个错误或警告后面还有其他错误或警告,那么它们通常不会更改这些值。 但是,如果完成代码为 MQCC_WARNING时发生错误,那么将改为返回完成代码为 MQCC_FAILED 的后续故障。
  2. 如果自建立连接以来或自上次调用 MQSTAT 以来未发生任何错误,那么将在 MQSTS 结构中返回 CompCode MQCC_OK 和 "原因" MQRC_NONE
  3. 已在连接句柄下处理的异步调用的计数通过三个计数器字段返回: PutSuccessCountPutWarningCountPutFailureCount。 每次成功处理异步操作,发出警告或失败时,队列管理器都会增大这些计数器 (请注意,出于记帐目的,放入分发列表时,每个目标队列计数一次,而不是每个分发列表计数一次)。 计数器的增量不超过最大值 AMQ_LONG_MAX
  4. 成功调用 MQSTAT 会导致重置任何先前的错误信息或计数。
  5. MQSTAT 的行为取决于您提供的 MQSTAT Type 参数的值。
  6. mqstat_type_async_error
    1. 指定 MQSTAT_TYPE_ASYNC_ERROR 类型的 MQSTAT 调用将返回有关先前异步 MQPUTMQPUT1 操作的信息。 从 MQSTAT 调用返回时传递的 MQSTS 结构包含该连接的第一个记录的异步警告或错误信息。 如果在第一个错误或警告后面还有其他错误或警告,那么它们通常不会更改这些值。 但是,如果完成代码为 MQCC_WARNING时发生错误,那么将改为返回完成代码为 MQCC_FAILED 的后续故障。
    2. 如果自建立连接以来或自上次调用 MQSTAT 以来未发生任何错误,那么将在 MQSTS 结构中返回 CompCode MQCC_OK 和 "原因" MQRC_NONE
    3. 已在连接句柄下处理的异步调用的计数通过三个计数器字段返回: PutSuccessCountPutWarningCountPutFailureCount。 每次成功处理异步操作,发出警告或失败时,队列管理器都会增大这些计数器 (请注意,出于记帐目的,放入分发列表时,每个目标队列计数一次,而不是每个分发列表计数一次)。 计数器的增量不超过最大值 AMQ_LONG_MAX
    4. 成功调用 MQSTAT 会导致重置任何先前的错误信息或计数。
    mqstat_type_reconnection
    假设您在重新连接期间在事件处理程序内调用 MQSTAT ,并将 Type 设置为 MQSTAT_TYPE_RECONNECTION 。 请考虑以下示例。
    客户机正在尝试重新连接或未能重新连接。
    MQSTS 结构中的 CompCodeMQCC_FAILEDReason 可以是 MQRC_CONNECTION_BROKENMQRC_Q_MGR_QUIESCINGObjectTypeMQOT_Q_MGRObjectName 是队列管理器的名称, ObjectQMgrName 是空白。
    客户机已成功完成重新连接或从未断开连接。
    MQSTS 结构中的 CompCodeMQCC_OKReasonMQRC_NONE
    后续调用 MQSTAT 将返回相同的结果。
    mqstat_type_reconnection_error
    假设您在将 Type 设置为 MQSTAT_TYPE_RECONNECTION_ERROR 的情况下调用 MQSTAT ,以响应接收到对 MQI 调用的 MQRC_RECONNECT_FAILED 。 请考虑以下示例。
    在重新连接到其他队列管理器期间重新打开队列时发生授权失败。
    MQSTS 结构中的 CompCodeMQCC_FAILEDReason 是重新连接失败的原因,例如 MQRC_NOT_AUTHORIZEDObjectType 是导致问题的对象类型,例如 MQOT_QUEUEObjectName 是队列的名称, ObjectQMgrName 是拥有该队列的队列管理器的名称。
    重新连接期间发生套接字连接错误。
    MQSTS 结构中的 CompCodeMQCC_FAILEDReason 是重新连接失败的原因,例如 MQRC_HOST_NOT_AVAILABLEObjectTypeMQOT_Q_MGRObjectName 是队列管理器的名称, ObjectQMgrName 是空白。
    后续调用 MQSTAT 将返回相同的结果。

C 调用

MQSTAT (Hconn, StatType, &Stat, &CompCode, &Reason);
按如下所示声明参数:
MQHCONN Hconn;		/* Connection Handle */
MQLONG StatType;	/* Status type */
MQSTS Stat;	   	/* Status information structure */
MQLONG CompCode;	/* Completion code */
MQLONG Reason;		/* Reason code qualifying CompCode */

COBOL 调用

CALL 'MQSTAT' USING HCONN, STATTYPE, STAT, COMPCODE, REASON.
按如下所示声明参数:
**	Connection handle
 01	HCONN      PIC S9(9)      BINARY.
**	Status type
 01	STATTYPE   PIC S9(9)      BINARY.
**	Status information
 01	STAT.
	COPY CMQSTSV.
**	Completion code
 01	COMPCODE   PIC S9(9)      BINARY.
**	Reason code qualifying COMPCODE
 01	REASON     PIC S9(9)      BINARY.

PL/I 调用

call MQSTAT (Hconn, StatType, Stat, Compcode, Reason);
按如下所示声明参数:
dcl Hconn       fixed bin(31); /* Connection handle */
dcl StatType    fixed bin(31); /* Status type */
dcl Stat        like MQSTS;    /* Status information structure */
dcl CompCode    fixed bin(31); /* Completion code */
dcl Reason      fixed bin(31); /* Reason code qualifying CompCode */

System/390 汇编程序调用

CALL MQSTAT,(HCONN,STATTYPE,STAT,COMPCODE,REASON)
按如下所示声明参数:
HCONN     DS     F    Connection handle
STATTYPE  DS     F    Status type
STAT      CMQSTSA,    Status information structure
COMPCODE  DS     F    Completion code	
REASON    DS     F    Reason code qualifying COMPCODE