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の写真
メッセージを送信しようとすると、エラーが発生します。
'2' ('MQCC_FAILED') razón '2539' ('MQRC_CHANNEL_CONFIG_ERROR').
私は何が欠けていますか?私のシャンメルタイプよりも推測されるエラーは私の要求に一致していませんが、それが何を意味するのかわかりません。
前もって感謝します。
クライアントプログラムは、RECEIVERではなくSVRCONNチャネルに接続します。
(マークが述べたように)間違ったチャネルタイプを使用しているようです。私はグーグルでスペイン語の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チャネルです。サーバー接続チャネルは、チャネルのサーバー側です。