MQZ_GET_AUTHORITY_2 -取得權限 (延伸)

此函數由 MQZAS_VERSION_2 授權服務元件提供,並由佇列管理程式啟動,以擷取實體存取指定物件所需的權限。

此函數 (適用於 MQZEP) 的函數 ID 是 MQZID_GET_AUTHORITY。

MQZ_GET_AUTHORITY_2 類似於 MQZ_GET_AUTHORITY ,但使用 EntityData 參數取代 EntityName 參數。

語法

MQZ_GET_AUTHORITY_2( QMgrName , EntityData , EntityType , ObjectName , ObjectType , Authority , ComponentData , Continuation , CompCode , Reason )

參數

QMgrName
類型: MQCHAR48 -輸入

佇列管理程式名稱。 呼叫元件的佇列管理程式名稱。 此名稱以空白填補參數的完整長度; 名稱不是以空值字元結尾。

佇列管理程式名稱會傳遞至元件以取得資訊; 授權服務介面不需要元件以任何定義的方式來使用它。

EntityData
類型 :MQZED-輸入

實體資料。 與要擷取物件授權之實體相關的資料。 如需詳細資料,請參閱 MQZED-實體描述子

EntityType
類型 :MQLONG-輸入
實體類型。 EntityData指定的實體類型。 它必須是下列其中一個值:
MQZAET_PRINCIPAL
校長
MQZAET_GROUP
群組。
ObjectName
類型: MQCHAR48 -輸入

物件名稱。 要擷取其實體權限的物件名稱。 字串的長度上限為 48 個字元; 如果它比以空白填補它的長度還短的話。 名稱不是以空值字元終止。

如果 ObjectType 是 MQOT_Q_MGR ,則此名稱與 QMgrName相同。

ObjectType
類型 :MQLONG-輸入
物件類型。 ObjectName指定的實體類型。 它必須是下列其中一個值:
MQOT_AUTH_INFO
鑑別資訊。
MQ 通道
頻道
MQOT_CLNTCONN_CHANNEL
用戶端連線通道。
MQ 接聽器
接聽器。
MQOT_NAMELIST
名單。
MQ 處理程序
程序定義。
MQOT_Q
佇列。
MQOT_Q_MGR
MQ 服務
服務。
MQOT_TOPIC
主題。
權限
類型 :MQLONG-輸入

實體的權限。 如果實體具有一個權限,則此欄位等於適當的授權作業 (MQZAO_ * 常數)。 如果它具有多個權限,則此欄位是對應 MQZAO_ * 常數的位元 OR 運算。

ComponentData
類型 :MQBYTE ×ComponentData長度-輸入/輸出

元件資料。 此資料由佇列管理程式代表此特定元件保留; 此元件提供的任何功能對其進行的任何變更都會保留,並在下次呼叫其中一個元件功能時呈現。

佇列管理程式會在 MQZ_INIT_AUTHORITY 呼叫的 ComponentDataLength 參數中傳遞此資料區的長度。

接續
類型 :MQLONG-輸出
依元件設定的接續指示器。 可以指定下列值:
MQZCI_DEFAULT
繼續相依於佇列管理程式。

對於 MQZ_CHECK_AUTHORITY ,這具有與 MQZCI_STOP 相同的效果。

MQ 配置項目 _ 繼續
繼續處理下一個元件。
停止 MQZCI_STOP
請勿繼續處理下一個元件。
CompCode
類型 :MQLONG-輸出
完成碼。 它必須是下列其中一個值:
MQCC_OK
順利完成。
MQCC_FAILED
呼叫失敗。
原因
類型 :MQLONG-輸出

定義 CompCode的原因碼。

如果 CompCode 是 MQCC_OK:
MQRC_NONE
(0 , X'000 ') 沒有理由報告。
如果 CompCode 是 MQCC_FAILED:
MQRC_NOT_AUTHORIZED
(2035 , X'7F3') 未獲授權存取。
MQRC_SERVICE_ERROR
(2289 , X'8F1') 存取服務時發生非預期的錯誤。
MQRC_SERVICE_NOT_AVAILABLE
(2285 , X'8ED') 無法使用基礎服務。
MQRC_UNKNOWN_ENTITY
(2292 , X'8F4') 無法提供服務的實體。
如需這些原因碼的相關資訊,請參閱 API 完成及原因碼

C 呼叫


MQZ_GET_AUTHORITY_2 (QMgrName, &EntityData, EntityType, ObjectName,
                    ObjectType, &Authority, ComponentData,
                    &Continuation, &CompCode, &Reason);
傳遞至服務的參數宣告如下:

MQCHAR48  QMgrName;          /* Queue manager name */
MQZED     EntityData;        /* Entity data */
MQLONG    EntityType;        /* Entity type */
MQCHAR48  ObjectName;        /* Object name */
MQLONG    ObjectType;        /* Object type */
MQLONG    Authority;         /* Authority of entity */
MQBYTE    ComponentData[n];  /* Component data */
MQLONG    Continuation;      /* Continuation indicator set by
                                component */
MQLONG    CompCode;          /* Completion code */
MQLONG    Reason;            /* Reason code qualifying CompCode */