* MQ服务器的配置参加上篇*
4-绑定模式连接
Java应用程序必须和MQ服务器安装在同一个机器上,通过进程间通信机制,不通过TCP/IP进行通信,减少网络开销。
MQ提供32和64位版本的MQ JNI库,默认在/opt/mqm/java/lib/和/opt/mqm/java/lib64/目录下:
mqjbnd.so: 该库为应用提供绑定模式连接MQ;
修改代码:其实变动更小,只要将主机地址和端口去掉即可,因为绑定模式不需要网络通信,此外也不需要TCP通道参数。
import java.io.IOException;
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;
import com.ibm.mq.constants.CMQC;
import com.ibm.mq.constants.MQConstants;
public class MQTest2 {
public static void main(String[] args) throws MQException, IOException
{
//发送消息给队列
put();
//从队列读取消息
get();
}
static void put() throws MQException, IOException
{
//配置MQ服务器连接参数
//用户名和密码
MQEnvironment.userID = "mquser1";
MQEnvironment.password = "mqtest2016";
//设置应用名称,方便服务器MQ 查看应用连接
MQEnvironment.properties.put(MQConstants.APPNAME_PROPERTY, "MQ Test By Java");
//设置绑定模式通信
MQEnvironment.properties.put(CMQC.TRANSPORT_PROPERTY,CMQC.TRANSPORT_MQSERIES_BINDINGS);
//创建实例,连接队列管理器
MQQueueManager queueManager = new MQQueueManager("JAVA.QUEUE.MANAGER.1");
//以可写的方式访问队列管理器已定义的队列QUEUE1,当然也可以创建队列
MQQueue putQueue = queueManager.accessQueue("QUEUE1", CMQC.MQOO_OUTPUT);
//新建并发送消息给队列
MQMessage myMessage = new MQMessage();
String name = "MePlusPlus's 博客2";
myMessage.writeUTF(name);
//使用默认的消息选项
MQPutMessageOptions pmo = new MQPutMessageOptions();
//发送消息
putQueue.put(myMessage, pmo);
putQueue.close();
//断开连接
queueManager.disconnect();
}
static void get() throws MQException, IOException
{
//配置MQ服务器连接参数
MQEnvironment.userID = "mquser1";
MQEnvironment.password = "mqtest2016";
//设置应用名称,方便服务器MQ 查看应用连接
MQEnvironment.properties.put(MQConstants.APPNAME_PROPERTY,