IBMMQ java远程访问(四)

article/2025/9/27 4:59:53

当应用程序和MQ不在同一台主机上的时候,我们将要通过通道去访问;

1.创建队列管理器时勾选创建服务器链接通道;

2.创建一个本地队列

命名为Q1

3.创建通道

右击通道->新建->服务器链接通道

命名为SERVERQM2

4.代码示例调用

package com.ibmmq.util.mqutil;import com.ibm.mq.*;
import com.ibm.mq.constants.MQConstants;public class MqDemo {private MQQueueManager qMgr;private MQQueue sendQueue;private MQQueue receiveQueue;private static int CCSID = 1381;//编码字符标识,通道-属性-常规private static String hostname = "192.168.31.239";int port = 1415;static String queueManagerName = "QM_2";static String queueName = "Q1";static String channel = "SERVERQM2";static String userId = "administrator";static String password = "zcy123456";public MqDemo() throws MQException {MQEnvironment.hostname = hostname;MQEnvironment.port = port;MQEnvironment.channel = channel;MQEnvironment.CCSID = CCSID;MQEnvironment.userID = userId;     //MQ中拥有权限的用户名MQEnvironment.password = password; //用户名对应的密码qMgr = new MQQueueManager(queueManagerName);//创建队列管理器}public void sendMsg(String msgStr) {int openOptions  = MQConstants.MQOO_INPUT_AS_Q_DEF | MQConstants.MQOO_OUTPUT | MQConstants.MQOO_INQUIRE;try {// 建立通道的连接sendQueue = qMgr.accessQueue(queueName, openOptions, null, null, null);MQMessage msg = new MQMessage();// 要写入队列的消息msg.format = MQConstants.MQFMT_STRING;msg.characterSet = CCSID;msg.encoding = CCSID;msg.writeUTF(msgStr);MQPutMessageOptions pmo = new MQPutMessageOptions();msg.expiry = -1; // 设置消息永不过期sendQueue.put(msg, pmo);// 将消息放入队列qMgr.disconnect();} catch (Exception e) {e.printStackTrace();} finally {if (sendQueue != null) {try {sendQueue.close();} catch (MQException e) {e.printStackTrace();}}}}public void receiveMsg() {int openOptions = MQConstants.MQOO_INPUT_AS_Q_DEF | MQConstants.MQOO_OUTPUT | MQConstants.MQOO_INQUIRE;try {receiveQueue = qMgr.accessQueue(queueName, openOptions, null, null, null);int depth = receiveQueue.getCurrentDepth();System.out.println("该队列当前的深度为:" + depth);// 将队列的里的消息读出来while (depth-- > 0) {MQMessage rcvMessage = new MQMessage();// 要读的队列的消息MQGetMessageOptions gmo = new MQGetMessageOptions();receiveQueue.get(rcvMessage, gmo);String msgText = rcvMessage.readUTF();System.out.println("消息的内容:" + msgText);}} catch (Exception e) {e.printStackTrace();} finally {if (receiveQueue != null) {try {receiveQueue.close();} catch (MQException e) {e.printStackTrace();}}try {qMgr.disconnect();} catch (MQException e) {e.printStackTrace();}}}public static void main(String[] args) throws MQException {new MqDemo().sendMsg("我是第一条消息");new MqDemo().sendMsg("我是第二条消息");new MqDemo().receiveMsg();}
}

5.常见问题

完成代码为“2”,原因为“2058” MQ远程队列的名称 错误

完成代码为“2”,原因为“2540” 服务器连接的通道 错误

完成代码为“2”,原因为“2018” 未连接至队列管理器。

完成代码为“2”,原因为“2035” 权限错误(用户密码错误也会报2035)

右击QM_2-属性-通信-通道认证记录修改为已禁用;


http://chatgpt.dhexx.cn/article/8snwnRgs.shtml

相关文章

MQ理论介绍与主流MQ对比

1、什么是MQ? MQ(Message Queue)消息队列,是基础数据结构中“先进先出”的一种数据结构。指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递——生产者产生消息并把消息放入队列,然…

什么是MQ

MQ概述 MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进 行通信。 分布式系统之间进行通信: 远程调用:各系统间直接通过远程调用的方式; 借助第三方完成系统…

MQ的概念和RabbitMQ知识点(无代码)

目录 1. MQ的基本概念 1.1 MQ概述 1.2 MQ的优势 1. 应用解耦 2. 异步提速 3. 削峰填谷 1.3 MQ的劣势以及可能引发的问题 1.4 常见的MQ产品 2. RabbitMQ的知识点 2.1 RabbitMQ的工作模式 1. 简单模式 2. 工作队列模式 Work Queue 3. 发布订阅模式 Publish/subscri…

MQ简介

一、何为MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通…

【MQ基本概念 MQ的工作原理】

一、 MQ 基本概念 1 、 MQ 概述 MQ 全称 Message Queue (消息队列),是在消息的传输过程中保存 消息的容器。多用于分布式系统之间进 行通信。 小结 MQ ,消息 队列,存储消息的中间件 分布式系统通信两种方式&…

mq的基本介绍和基本用法

一 、什么是MQ,有什么用 MQ 是message queue ,消息队列,也叫消息中间件,遵守JMS(java message service)规范的一种软件。(同时还有另一个叫AMQP的应用层协议,语言无关性不受产品 语言等限制,r…

MQ(Message Queue)简介

一、何为MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通…

MQ消息队列详解、四大MQ的优缺点分析

MQ消息队列详解、四大MQ的优缺点分析 前言面试题切入面试官心理分析面试题剖析①为什么要使用MQ系统解耦异步调用流量削峰消息队列的优缺点四大主流MQ(kafka、ActiveMQ、RabbitMQ、RocketMQ)各自的优缺点 前言 近期有了想跳槽的打算,所以自己…

file和filestream

在C#编程环境中,当我们对电脑文件进行读写、移动、复制、删除等这些操作时,这些都可以在system.IO名称空间下,所以当我们想要通过C#编程语言对其进行操作时,需要添加该名称空间,它内部包含对数据流和文件进行同步或异步…

java filestream_java FileStream文件流操作

直接上代码,函数使用说明详见Java API文档 import java.io.*; public class StreamDemo { public static void main(String[] args) { File fnew File("F:\\workspace\\JavaPrj\\test.txt"); FileOutputStream outnull; try { outnew FileOutputStream(f)…

c#FileStream文件读写

//C#文件流写文件,默认追加FileMode.Append string msg "okffffffffffffffff"; byte[] myByte System.Text.Encoding.UTF8.GetBytes(msg); using (FileStream fsWrite new FileStream("D:\1.txt", FileMode.Append)) {fsWrite.Write(myByte, 0, myByte.…

FileStream类

FileStream类的官方介绍请见&#xff1a; https://msdn.microsoft.com/zh-cn/library/system.io.filestream.aspx 一、使用FileStream来读取文本文件 <pre name"code" class"csharp"> string path "E:\TEMP\TestFileStream\the ol…

猿创征文|【.Net实用方法总结】 整理并总结System.IO中FileStream类及其方法介绍

&#x1f40b;作者简介&#xff1a;博主是一位.Net开发者&#xff0c;同时也是RPA和低代码平台的践行者。 &#x1f42c;个人主页&#xff1a;会敲键盘的肘子 &#x1f430;系列专栏&#xff1a;.Net实用方法总结 &#x1f980;专栏简介&#xff1a;博主针对.Net开发和C站问答过…

FileStream的使用

FileStream的使用 一.基本介绍&#xff1a; 二.FileStream读写文件实例&#xff1a; string path1 "d\test\test1.txt";string path2 "d\test\test2.txt";byte[] buffered new byte[1024];using (FileStream fsr new FileStream(path1, FileMode.Ope…

C#中File和FileStream的用法

在近期的工作过程中发现自己的基础比较薄弱&#xff0c;所以最近在恶补基础知识。下面就对我所学习的File类和FileStream进行简单的总结。1.首先先介绍File类和FileStream文件流 1.1 File类&#xff0c;是一个静态类&#xff0c;支持对文件的基本操作&#xff0c;包括创建&am…

FileStream 总结

FileStream 如何去理解FileStream? 我们磁盘的中任何文件都是通过2进制组成&#xff0c;最为直观的便是记事本了&#xff0c;当我们新建一个记事本时&#xff0c;它的大小是0KB, 我们每次输入一个数字或 字母时文件便会自动增大4kb,可见随着我们输入的内容越来越多&#xff…

FileStream读写文件

FileStream读写文件 FileStream类:操作字节的&#xff0c;可以操作任何的文件 StreamReader类和StreamWriter类:操作字符的&#xff0c;只能操作文本文件。 1、FileStream类 FileStream类 命名空间: System.IO &#xff08;1&#xff09;构造函数&#xff1a; FileStre…

本地socket unix domain socket

socket API原本是为网络通讯设计的&#xff0c;但后来在socket的框架上发展出一种IPC机制&#xff0c;就是UNIXDomain Socket。虽然网络socket也可用于同一台主机的进程间通讯&#xff08;通过loopback地址127.0.0.1&#xff09;&#xff0c;但是UNIX Domain Socket用于IPC更有…

python中socks包(SocksiPy)的安装、使用方法简介

1、下载SocksiPy csdn地址&#xff1a;点击打开https://download.csdn.net/download/qq_27378621/10536690 官方地址&#xff1a;点击打开https://sourceforge.net/projects/socksipy/?sourcetyp_redirect 2、官方文档介绍 地址&#xff1a;点击打开http://socksipy.sourc…

SOCKS5实现(一)

引文 假如我有一部安卓手机&#xff0c;我想把手机上的全部流量打到指定的代理上&#xff08;即透明代理&#xff09;&#xff0c;代理外接外部的VPN&#xff0c;以达到分散IP出口的目的。 这是这个系列的第一篇文章&#xff0c;本文将简单介绍一下 SOCKS 、iptable 、透明代理…