我嘗試用mqai的方式來寫,找了一個例子,結果查詢時恢復錯誤代碼MQCONN(qmName, &hConn, &compCode, &connReason); strncpy(od.ObjectName, "SYSTEM.ADMIN.COMMAND.QUEUE", (size_t)MQ_Q_NAME_LENGTH); O_options = MQOO_OUTPUT + MQOO_FAIL_IF_QUIESCING; MQ...显示全部
我嘗試用mqai的方式來寫,找了一個例子,結果查詢時恢復錯誤代碼
MQCONN(qmName, &hConn, &compCode, &connReason);
strncpy(od.ObjectName, "SYSTEM.ADMIN.COMMAND.QUEUE", (size_t)MQ_Q_NAME_LENGTH);
O_options = MQOO_OUTPUT + MQOO_FAIL_IF_QUIESCING;
MQOPEN(hConn,&od,O_options,&Hobj,&compCode, &connReason);
mqCreateBag(MQCBO_ADMIN_BAG, &adminBag, &compCode, &reason);
CheckCallResult("Create admin bag", compCode, reason);
mqCreateBag(MQCBO_ADMIN_BAG, &responseBag, &compCode, &reason);
CheckCallResult("Create response bag", compCode, reason);
mqAddString(adminBag, MQCACH_CHANNEL_NAME, MQBL_NULL_TERMINATED, "*", &compCode, &reason);
CheckCallResult("Add q name", compCode, reason);
mqAddInquiry(adminBag, MQIACH_CHANNEL_STATUS, &compCode, &reason);
CheckCallResult("Add Chl Status", compCode, reason);
mqExecute(hConn, /* MQ connection handle */
MQCMD_INQUIRE_CHANNEL_STATUS,
MQHB_NONE, /* No options bag */
adminBag, /* Handle to bag containing commands */
responseBag, /* Handle to bag to receive the response*/
Hobj, /* Put msg on SYSTEM.ADMIN.COMMAND.QUEUE*/
MQHO_NONE, /* Create a dynamic q for the response */
&compCode, /* Completion code from the mqexecute */
&reason);
以查詢本地默認隊列管理器,所有通道的狀態,
結果 reason 為別為3008(命令錯誤)和3065(通道狀態未發現)
請問那裡有問題,謝謝!收起