2010-07-21 112 views
3

我期待在我的Java客戶端中設置MQ頭文件字段'PutApplName',並在JMS頭文件中訪問JMSXAppID字段中的相同內容。網上的文檔討論了MQ Header Fields被映射到JMS的文件。有沒有人試過這個?在java客戶端中設置MQ頭文件

回答

4

您必須在客戶端和服務器上使用WMQ v7以JMS便攜的方式執行此操作。由於v6明年即將報廢,無論如何,您已經有希望已經在v7上。在v7中,所有MQMD屬性都可以使用消息屬性進行訪問。在第6版中,有必要將其分解爲WMQ特定的Java類,但並不漂亮。

也就是說,請看看JMS fields and properties with corresponding MQMD fields它將所有MQMD字段映射到相應的JMS屬性。

有一個寫入MQMD字段並與WMQ客戶端一起安裝的示例程序。如果您安裝了完整的WMQ客戶端,而不是僅抓取jar文件,該程序將駐留在:C:\Program Files\IBM\WebSphere MQ\tools\jms\samples\simple\SimpleMQMDWrite.java

示例程序使用WMQConstants類,而不是直接對字符串值進行編碼。你可以找到WMQConstants記錄here。在常量內,您應該找到JMS_IBM_MQMD_PUTAPPLNAME here。此字段的JavaDoc的說:

JMS_IBM_MQMD_PUTAPPLNAME

公共靜態最後絃樂 JMS_IBM_MQMD_PUTAPPLNAME

JMS_IBM_MQMD_PUTAPPLNAME屬性名稱。設置或獲取發送消息的MQ應用程序名稱 。使用 設置setStringProperty(JmsConstants.JMS_IBM_MQMD_PUTAPPLNAME,);獲取使用 getStringProperty(JmsConstants.JMS_IBM_MQMD_PUTAPPLNAME); 對消息對象有效。

請注意,應用程序必須通過運行在mqm組(不推薦)或使用setmqaut命令來授予+ setall權限。 + setall授權必須應用於QMgr和特定隊列。

+0

我需要訪問MQHeader對象字段esp。 'PutApplName' – hakish 2010-07-22 05:55:49

+0

好的,我已經擴展了答案來引導您完成它。 – 2010-07-22 11:00:55