在Q程序中,-U
參數設置消息中的用戶標識,但不是用於連接到QMgr的ID。如果您在Windows盒子上連接時查看隊列上的連接手柄,則會看到與手柄關聯的ID是您的登錄ID,而不是myuserid
。但是,郵件的MQMD.UserID
將包含myuserid
後PUT
。
當您使用管理權限時,將自動授予此授權。在這種情況下,您提到在Windows上以管理員身份登錄,允許該選項。如果在AIX上沒有使用mqm組中的ID,則需要明確授予+setid
權限才能使用-U
選項。例如,假定myuserid
屬於mygroup
。爲了使-U
選擇工作,你需要做的是:
# +setid must be granted at both the QMgr *and* the queue
setmqaut -m TargetQMgr -t qmgr -g mygroup +connect +inq +setid
setmqaut -m TargetQMgr -n DestinationQueue -t queue -g mygroup +put +inq +setid
注意+setid
只適用於放置消息並沒有得到他們。但是,由於Q程序可能會在連接到第一個QMgr時指定setID
選項,因此您看到的錯誤可能會在此處生成。如果是這樣的話,運行源QMGR相同的命令:
# +setid must be granted at both the QMgr *and* the queue
setmqaut -m SourceQMgr -t qmgr -g mygroup +connect +inq +setid
setmqaut -m SourceQMgr -n SourceQueue -t queue -g mygroup +browse +get +inq +setid
僅供參考,請參閱用於Q程序的幫助其中規定:
-U Sets the user ID in the message.
...和信息中心部分在Granting authority to set context。
順便說一句,我找不到-u
(小寫)選項,所以我假設它只是在您的文章中輸入錯誤,而您實際上使用的是-U
。當我在我的工作站上嘗試時,該選項會生成所需的消息。
什麼平臺是QMgrs的源和目標?據推測,Windows也是如此? QMgrs的WMQ版本是什麼? – 2012-03-15 17:21:45
Rob,兩個QMgrs都在相同的AIX機器上運行。當Q程序運行時,它會顯示「用戶ID改爲:''暗示使用-u標誌是正確的。我猜測它是在windows系統上運行的,因爲我以Windows管理員身份登錄。甚至沒有在Windows機器上的mqm組的一部分,所以我現在有點難以忍受 –
Manglu
2012-03-15 22:47:24