web-dev-qa-db-ja.com

Spring Boot + JMS + IBM MQ

SpringBootサービスからIBMMQキューにメッセージを送信しようとしています。構成は次のとおりです。

Application.properties

ibm.mq.queueManager=QM1
ibm.mq.queue=DEV.QUEUE.1
ibm.mq.channel=DEV.APP.RECEIVER
ibm.mq.Host=localhost
ibm.mq.port=1414

ConectionFactory Bean

@Bean
        public MQQueueConnectionFactory mqQueueConnectionFactory() {
            MQQueueConnectionFactory mqQueueConnectionFactory = new MQQueueConnectionFactory();
            mqQueueConnectionFactory.setHostName(Host);
            try {
                mqQueueConnectionFactory.setTransportType(WMQConstants.ADMIN_QUEUE_DOMAIN);
                mqQueueConnectionFactory.setCCSID(1208);
                mqQueueConnectionFactory.setChannel(channel);
                mqQueueConnectionFactory.setPort(port);
                mqQueueConnectionFactory.setQueueManager(queueManager);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return mqQueueConnectionFactory;
        }

IBM MQ Explorerの写真

キューqueue

channelchannel

リスナーlistener

メッセージを送信しようとすると、エラーが発生します。

'2' ('MQCC_FAILED') razón '2539' ('MQRC_CHANNEL_CONFIG_ERROR').

私は何が欠けていますか?私のシャンメルタイプよりも推測されるエラーは私の要求に一致していませんが、それが何を意味するのかわかりません。

前もって感謝します。

クライアントプログラムは、RECEIVERではなくSVRCONNチャネルに接続します。

2
Mark Taylor

(マークが述べたように)間違ったチャネルタイプを使用しているようです。私はグーグルでスペイン語のReceptorが英語でReceiverに翻訳されると言っています。レシーバータイプのチャネルはメッセージチャネルであり、キューマネージャーからキューマネージャーへの通信に使用されます。

MQクライアント(例:スプリングブート)からキューマネージャーへの通信では、MQIチャネルに接続する必要があります。キューマネージャーでは、サーバー接続タイプになります。


IBM MQv8ナレッジセンターページ " IBM MQ Explorer> MQExplorerを使用したIBMMQの構成>キューマネージャーとオブジェクトの作成と構成> MQ Explorerのオブジェクト>チャネル "は次のことを文書化しています。

メッセージチャネル
メッセージチャネルは、2つのキューマネージャ間の単方向通信リンクです。 IBM MQは、メッセージ・チャネルを使用してキュー・マネージャー間でメッセージを転送する。両方向にメッセージを送信するには、各方向にチャネルを定義する必要があります。

MQIチャネル
MQIチャネルは双方向であり、アプリケーション(MQIクライアント)をキューマネージャーに接続しますサーバーマシン上にあります。 IBM MQは、MQIチャネルを使用して、MQIクライアントとキュー・マネージャーの間でMQI呼び出しと応答を転送します。

IBMは、各タイプをページのさらに下に文書化します。

メッセージチャネル

メッセージチャネル定義は、次のいずれかのタイプになります。

レシーバー
レシーバーチャネルは、キューマネージャーが使用するメッセージチャネルです他のキューマネージャーからのメッセージを受信するため。受信者チャネルを使用してメッセージを受信するには、他のキュー・マネージャーで、この受信者チャネルと同じ名前の送信者またはサーバー・チャネルも作成する必要があります。

MQIチャネル

MQIチャネルは、次のいずれかのタイプになります。

サーバー接続
サーバー接続チャネルは、IBMMQクライアントをIBMMQサーバーに接続するに使用される双方向MQIチャネルです。サーバー接続チャネルは、チャネルのサーバー側です。

1
JoshMc