簡體   English   中英

具有Java客戶端的IBM MQ AMS

[英]IBM MQ AMS with java clients

我有一個Java應用程序,它可以向隊列發送消息或從隊列接收消息,並且我正在嘗試將其設置為在Linux上使用MQ AMS

這是我第一次完全設置MQ AMS ,因此我正在嘗試MQ distributionJmsProvider/JmsConsumer )中提供的示例。

最初,我嘗試了預包裝了java 6 WebSphere MQ 7.5 ,然后可以進行設置,創建隊列,使用附加的示例發送和接收編碼的消息。

但是,我的應用程序與java 6不兼容。

我下載了ibm jdk 8並嘗試進行設置。

如果消息未編碼,它將起作用。 但是,如果啟用了安全策略,則可以使用WebSphere自己的JmsProducer將消息發送到隊列,但是不能使用自己的JmsConsumer獲取消息-出現一般的MQRC_NOT_AUTHORISED錯誤(與以下錯誤相同,除了Java版本)。 我已關閉channel authorisation ,並確保將用於創建消息的用戶指定為隊列管理器上的MCAUSER 我的用戶不在mqm group中,因為該組不存在(並且我的Linux發行版不對addgroup做出任何反應,但unknown command除外)。

然后我以為可能是缺少的java 8發行版對MQ至關重要,因此我下載了包含java 7 WebSphere MQ 8 ,並嘗試對這個舊的MQ 7.5隊列再次使用此新的java 7運行JmsProducer/JmsConsumer 結果是相同的-生產者成功生產消息並將消息放置在隊列中,但是消費者not authorisednot authorised

[userName@machineName ~]$ /opt/mqm/java/jre64/jre/bin/java -showversion -classpath $CLASSPATH JmsConsumer -m QM_TEST_AMS -d TEST.Q -h hostName -p 1616 -l CHANNEL > JmsConsumer.output
java version "1.7.0"
Java(TM) SE Runtime Environment (build pxa6470_27sr2-20141026_01(SR2))
IBM J9 VM (build 2.7, JRE 1.7.0 Linux amd64-64 Compressed References 20141017_217728 (JIT enabled, AOT enabled)
J9VM - R27_Java727_SR2_20141017_1632_B217728
JIT  - tr.r13.java_20141003_74587.01
GC   - R27_Java727_SR2_20141017_1632_B217728_CMPRSS
J9CL - 20141017_217728)
JCL - 20141004_01 based on Oracle 7u71-b13

com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2008: Failed to open MQ queue 'TEST.Q'.
JMS attempted to perform an MQOPEN, but WebSphere MQ reported an error.
Use the linked exception to determine the cause of this error. Check that the specified queue and queue manager are defined correctly.
Inner exception(s):
com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').
FAILURE

如果我切換到Java 6,仍然可以接收到這些消息。 能否請有人指出我可能缺少的方向,以防止Java 7/8應用程序從隊列接收編碼的消息,而Java 6應用程序繼續正常工作? WebSphere MQ 7.5完全可以與Java 7/8一起使用嗎?

根據Linux上的v7.5WMQ系統要求頁面,尚不支持JTE 8.0。

對於其價值,v8.0具有與您在此處看到的相同的要求。 所有版本的頂層系統要求頁面在此處

就是說,這聽起來像您有一個策略或證書問題,而不是JRE問題。 當發送加密的消息時,發送者必須具有接收者證書的公共密鑰。 接收者必須具有發送者的公鑰。 當然,兩者都必須擁有自己的個人證書。 AMS策略必須指定所有可能的收件人,即使其中一個是發件人。

您尚未發布策略設置或密鑰庫詳細信息。 調試這些將是必需的(並且可能在另一個問題中發布,因為該版本在JRE版本上)。 此外,2035年還會引發事件消息。 啟用授權事件並將MS0P SupportPac安裝到MQ Explorer中,以在SYSTEM.ADMIN.QMGR.EVENT隊列中查看它們。

適用於Java的MQ v7.5 Linus系統要求的屏幕截圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM