ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 利用mq传递字符串到db2数据库

利用mq传递字符串到db2数据库

原创 Linux操作系统 作者:bpmfhu 时间:2019-07-18 11:21:01 0 删除 编辑
最近看了一些mq的东西,mq真的是一个很不错的消息队列软件,我做了一个简单的测试,来实现把mq channel里面的信息insert到db2数据库里面,虽然比较简单,但是这种应用模式在分布式的系统里面还是有着比较广泛的应用。

测试环境:

3台客户机:win2000+mq5.3
服务器:aix 5.2+mq5.3+db2 v8

简单配置:
1.在2000上面定义队列管理器和发送通道

crtmqm -q QM_NT

DEFINE CHANNEL(SDR_NT) CHLTYPE(SDR) CONNAME('ip_address(port)') XMITQ(QT_NT) REPLACE

2.在aix上面定义列管理器和接受通道

crtmqm -q QM_UNIX

DEFINE CHANNEL(SDR_NT) CHLTYPE(RCVR) REPLACE

3.发送和接收的连通测试

在nt机器上面启动:
runmqchl -c SDR_NT -m QM_NT
从NT端发送消息到UNIX端
amqsput QR_NT QM_NT
然后输入你想要输入的测试字符
test!
在UNIX端接收消息可看到以下显示:
Sample AMQSGET0 start
message
no more messages
Sample AMQSGET0 end

4.用以下的代码将mq chl里面的信息提取出来后,再insert到db2里面

int openOptions = MQC.MQOO_BROWSE | MQC.MQOO_OUTPUT | MQC.MQOO_INPUT_SHARED | MQC.MQOO_INQUIRE;
mqQueue = qMgr.accessQueue(qName, openOptions);
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options = gmo.options + MQC.MQGMO_SYNCPOINT;
gmo.options = gmo.options + MQC.MQGMO_WAIT;
gmo.options = gmo.options + MQC.MQGMO_FAIL_IF_QUIESCING;
gmo.waitInterval = 3000;

dbc.executeUpdate("insert into DB2ADMIN.TEST values('"+inMsg.readString(inMsg.getMessageLength())+"')");

5.在aix编译通过后,执行通过。

ibm有一整套工具可以帮助你不用写一行代码来实现这个功能,比如db2 developer center和xml extender.但是需要转换成xml的格式。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4096/viewspace-52519/,如需转载,请注明出处,否则将追究法律责任。

上一篇: DB2的数据复制--1
请登录后发表评论 登录
全部评论

注册时间:2001-12-26

  • 博文量
    237
  • 访问量
    153368