如何查看mq服务器连接通道是否启动

如何查看mq服务器连接通道是否启动,第1张

可以在windows下的MQ队列管理器中点右键选择“显示队列管理器”,打开后选择“显示远程队列管理器”,输入远程LINUX下的队列管理器名称和远程LIUNX系统的IP地址,就可以查看了。

服务器连接通道就是给MQ客户端连接进来的一个标识入口,它和其他通道不一样,它是不需要启动的,如果有MQ客户端成功地通过这个服务器连接通道连接进来,它的状态就是活动的了.

其他的通道类型可能需要执行启动命令来变成活动,这种通道活动以后,有一个真实的通道进程启动起来,服务器连接通道是没有相应的通道进程的.

1.相关jar包:

com.ibm.mq.commonservices.jar

com.ibm.mq.headers.jar

com.ibm.mq.jar

com.ibm.mq.jmqi.jar

connector.jar

junit-4.4.jar

相关jar可以在ibm mq的安装目录下找到:

2.在mq服务器上创建相应的队列管理器,和队列,以及服务器传输通道。附上操作命令:

--启动队列管理器

strmqm  QMEMBFE

--启动监听

runmqlsr -m QMEMBFE -p 1414 -t tcp &

--用户交互管理界面程序

runmqsc  QMEMBFE

--创建本地队列

DEFINE QLOCAL (Q1)

--创建名称为DC.SVRCONN的服务器连接通道

DEFINE CHANNEL(DC.SVRCONN) CHLTYPE (SVRCONN) REPLACE

--删除通道

DELETE CHANNEL(DC.SVRCONN)

3.使用java编写调用程序:

运行方法:单元测试运行:testMQ

MessageByMQ

[java] view plain copy

import org.junit.After

import org.junit.Before

import org.junit.Test

import com.ibm.mq.MQC

import com.ibm.mq.MQEnvironment

import com.ibm.mq.MQException

import com.ibm.mq.MQGetMessageOptions

import com.ibm.mq.MQMessage

import com.ibm.mq.MQPutMessageOptions

import com.ibm.mq.MQQueue

import com.ibm.mq.MQQueueManager

/**

* 列出常用的错误码:如下:

* 2540:通道定义有错误:</p>

*      解决方式如下:</p>

*          1.进入用户交互界面:runmqsc  QMEMBFE(QMEMBFE为队列管理器名称)

*          2.创建相应的服务器连接通道:DEFINE CHANNEL(DC.SVRCONN) CHLTYPE (SVRCONN) REPLACE

* 2035:授权相关错误:解决方式如下:

*      进入用户交互界面:(同上):

*  ALTER CHANNEL(DC.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('mqm')

*  说明:DC.SVRCONN 服务器连接通道名称 mqm为ibm mq用户名称

*

*

*

*

* @author kefan

*

*/

public class MessageByMQ {

/**

* 队列管理器的名称

*/

private String qManagerName="QMEMBFE"

/**

* 队列管理器

*/

private   MQQueueManager qMgr

/**

* 队列名称

*/

private  String queueName="Q1"

/**

* 队列

*/

private MQQueue qQueue

/**

* mq服务器所在的主机名称

*/

private String hostname="192.168.233.134"

/**

* 服务器连接通道名称

*/

private String channelName="DC.SVRCONN"

/**

* 监听器监听的端口

*/

private  int  port=1414

/**

* 传输的编码类型

*/

private  int CCSID = 1381

@Before

public  void  init(){

try {

MQEnvironment.hostname = this.hostname // 安装MQ所在的ip address

MQEnvironment.port = this.port // TCP/IP port

MQEnvironment.channel = this.channelName

MQEnvironment.CCSID = CCSID

qMgr = new MQQueueManager(this.qManagerName)

int qOptioin = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_INQUIRE

| MQC.MQOO_OUTPUT

qQueue = qMgr.accessQueue(queueName, qOptioin)

} catch (MQException e) {

e.printStackTrace()

}

}

/**

* 发送信息

*/

public void SendMsg(byte[] qByte) {

try {

MQMessage qMsg = new MQMessage()

qMsg.write(qByte)

MQPutMessageOptions pmo = new MQPutMessageOptions()

qQueue.put(qMsg, pmo)

System.out.println("The message is sent!")

System.out.println("\tThe message is " + new String(qByte, "GBK"))

} catch (MQException e) {

e.printStackTrace()

System.out

.println("A WebSphere MQ error occurred : Completion code "

+ e.completionCode + " Reason Code is "

+ e.reasonCode)

} catch (java.io.IOException e) {

e.printStackTrace()

System.out

.println("An error occurred whilst to the message buffer "

+ e)

}

}

/**

* 从消息队列取数据

*/

public void GetMsg() {

try {

MQMessage retrievedMessage = new MQMessage()

MQGetMessageOptions gmo = new MQGetMessageOptions()

gmo.options += MQC.MQPMO_SYNCPOINT

qQueue.get(retrievedMessage, gmo)

int length = retrievedMessage.getDataLength()

byte[] msg = new byte[length]

retrievedMessage.readFully(msg)

String sMsg = new String(msg,"GBK")

System.out.println(sMsg)

} catch (RuntimeException e) {

e.printStackTrace()

} catch (MQException e) {

e.printStackTrace()

if (e.reasonCode != 2033) // 没有消息

{

e.printStackTrace()

System.out

.println("A WebSphere MQ error occurred : Completion code "

+ e.completionCode

+ " Reason Code is "

+ e.reasonCode)

}

} catch (java.io.IOException e) {

System.out

.println("An error occurred whilst to the message buffer "

+ e)

}

}

/**

* 单元测试方法

*/

@Test

public  void  testMQ(){

MessageByMQ mqst = new MessageByMQ()

mqst.init()

try {

mqst.SendMsg("你好,Webshpere MQ 7.5!".getBytes("GBK"))

mqst.GetMsg()

} catch (Exception e) {

e.printStackTrace()

}

}

/**

* 释放资源

*/

@After

public  void  release(){

try {

qQueue.close()

qMgr.disconnect()

} catch (MQException e) {

System.out

.println("A WebSphere MQ error occurred : Completion code "

+ e.completionCode + " Reason Code is "

+ e.reasonCode)

}

}

}


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/276021.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-20
下一篇2023-04-20

发表评论

登录后才能评论

评论列表(0条)

    保存