人无信不立/2008-04-26 22:30
永春阁
专注于技术,切不可沉湎于技术
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 226 文章- 20 评论- 1272
IBM MQ 使用一例
MQ作为一种中间件还是不错的,可以由一个系统发送一些消息给MQ Server,然后另外一个系统来取得这些消息。比较方便的实现不同系统、不同语言间的通信。
MQ Server可以进行消息的排队、缓存等。
具体MQ Server的配置我就不介绍了,可以去IBM的网站下载一个试用版试试看。
下面是一个收发的简单的小例子,具体意思看里面的注释。
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;
/**/
/*
* 可以在MQ的资源管理器的某一个队列上放入测试消息、浏览消息等
* 可以放入多条消息,按先进先出的方式取得
*/
public
class
MQTest
{
private
String qManager;
//
QueueManager名
private
MQQueueManager qMgr;
private
MQQueue qQueue;
String HOST_NAME;
int
PORT
=
0
;
String Q_NAME;
String CHANNEL;
int
CCSID;
String Msg;
public
void
init()
{
try
{
HOST_NAME
=
"
192.168.88.169
"
;
PORT
=
1414
;
qManager
=
"
QM_yfgaochun
"
;
Q_NAME
=
"
QM_NAME1
"
;
CHANNEL
=
"
S_yfgaochun
"
;
CCSID
=
1381
;
//
表示是简体中文, CCSID的值在AIX上一般设为1383,如果要支持GBK则设为1386,在WIN上设为1381。
Msg
=
"
MQ测试发送Gao
"
;
//
System.out.println(Msg);
MQEnvironment.hostname
=
HOST_NAME;
//
安裝MQ所在的ip address
MQEnvironment.port
=
PORT;
//
TCP/IP port
MQEnvironment.channel
=
CHANNEL;
MQEnvironment.CCSID
=
CCSID;
qMgr
=
new
MQQueueManager(qManager);
/**/
/*
try {
XADataSource ds = null;
Connection con = (Connection)qMgr.getJDBCConnection(ds);
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
*/
//
int qOptioin = MQC.MQOO_INQUIRE | MQC.MQOO_OUTPUT; 发送时使用
//
int qOptioin = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT; 接收时使用
int
qOptioin
=
MQC.MQOO_INPUT_AS_Q_DEF
|
MQC.MQOO_INQUIRE
|
MQC.MQOO_OUTPUT;
qQueue
=
qMgr.accessQueue(Q_NAME, qOptioin);
}
catch
(MQException e)
{
System.out
.println(
"
A WebSphere MQ error occurred : Completion code
"
+
e.completionCode
+
"
Reason Code is
"
+
e.reasonCode);
}
}
void
finalizer()
{
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);
}
}
/**/
/*
* 取过一次,下次就没有了
*/
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);
System.out.println(sMsg);
}
catch
(RuntimeException e)
{
e.printStackTrace();
}
catch
(MQException e)
{
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);
}
}
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)
{
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);
}
}
/** */
/**
*
@param
args
*/
public
static
void
main(String[] args)
{
//
TODO Auto-generated method stub
MQTest mqst
=
new
MQTest();
mqst.init();
try
{
mqst.SendMsg(mqst.Msg.getBytes(
"
GBK
"
));
//
mqst.GetMsg();
}
catch
(Exception e)
{
e.printStackTrace();
}
mqst.finalizer();
}
}
posted @ 2007-07-05 11:50
永春
阅读(825)
评论(0)
编辑
收藏
所属分类:
Java
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
闪存
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
相关文章:
EditPlus v2.12 使用技巧集之工具集成
小菜编程成长记(十三 设计模式不能戏说!设计模式怎就不能戏说?)
使用Visual Studio2005入门.Net2.0系列视频教程
ASP.NET AJAX入门系列(2):使用ScriptManager控件
全球服务器市场 IBM第一
IBM何时重回消费市场
Java 的库是用什么语言写的?
想买个IBM笔记本开发用
书籍推荐:《Java数据结构与算法》
10年磨一剑,准备出书《Java组件高级设计》
相关链接:
所属分类的其他文章:
weblogic中snmp的使用
Ibatis.Net和Ibatis使用注意点及异同点(不断更新)
Out of Memory(Java UI)
用 Quartz 进行作业调度(转)
IBM MQ 使用一例
iBATIS配置文件的特殊使用方法
最新IT新闻:
雅虎新闻首页改版,宽屏、共享、组件
传阿里投资淘宝超40亿元 应对百度C2C
传雅虎最快本月将宣布收购美国在线
周一美国股市科技股惨跌 纳综指创4年新低
关于Firefox 3你不知道的八个功能
公告
本Blog版权均为本人所有,欢迎任何媒体和网站转载本人博客的内容。
本Blog的内容按原样提供,本人不提供任何形式的担保。
转载请注明出处
我的MVP配置
自2007年3月8日:
系列文章
1、
Sharepoint2007对象模型系列
2、
C#强化系列文章
3、
MOSS SDK学习系列
4、
IBatis.Net学习笔记系列
5、
MonoRail学习笔记系列
<
2007年7月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
我参加的小组
Debug 探索团队小组
写书译书小组
博客园精华集出版小组
iBATIS.NET
MonoRail
我参与的团队
SharePoint团队(0/744)
Ajax&Atlas技术团队(0/1138)
南京.net俱乐部(0/444)
ASP.NET AJAX (Atlas)学习(1/1353)
MVP(微软最有价值专家)团队(0/634)
Debug 探索团队(0/53)
博客园精华集出版(0/45)
随笔分类
.Net(49)
(rss)
AJax(3)
(rss)
C++/VC学习(2)
(rss)
iBATIS.NET(15)
(rss)
Java(6)
(rss)
MonoRail(25)
(rss)
OS Shell(5)
(rss)
SharePoint(42)
(rss)
Windows Server(1)
(rss)
XHTML/CSS/Script(6)
(rss)
企业开发(2)
(rss)
数据库(21)
(rss)
外语(1)
(rss)
项目管理(7)
(rss)
娱乐/杂记/修养(49)
(rss)
随笔档案
2008年9月 (1)
2008年8月 (3)
2008年7月 (7)
2008年6月 (1)
2008年5月 (2)
2008年4月 (12)
2008年3月 (14)
2008年2月 (3)
2008年1月 (14)
2007年12月 (17)
2007年11月 (21)
2007年10月 (31)
2007年9月 (13)
2007年8月 (25)
2007年7月 (10)
2007年6月 (1)
2007年5月 (2)
2007年4月 (10)
2007年3月 (15)
2007年2月 (7)
2007年1月 (1)
2006年12月 (3)
2006年11月 (21)
2006年10月 (5)
2006年8月 (2)
SharePoint学习
Codeplex Sharepoint
jianyi @ cnblogs
Kaneboy's Blog
Patrick Tisseghem's Blog
管理相关
下载_中计在线
中国管理之家
开源社区
C#开源资源大全
Java开源大全
SourceForge主页
门户网站
南京程序员俱乐部
积分与排名
积分 - 299862
排名 - 98
最新评论
1. re: IBatis.Net学习笔记十--数据库连接处理
你好,我现在碰上一个问题
我现在有两个数据库,对应有两个连接,请问一下,要如何处理呢?谢谢 (Scrofield)
2. re: IBatis.Net学习笔记十三:在IBatis.Net中调用存储过程
IBATIS是不是不行了呀!官方的DEMO还是2003的呢 (king2003)
3. re: 我的未来在哪里??
为什么都会有迷茫的时候.感觉生活真是好郁闷了... (刘云)
4. re: [野史乱弹]历史简说――犹太人和犹太教[转]
是个很了不起的民族,虽厉经磨难却自强不息,使人感到震憾。 (文刚直行)
5. re: IBatis.Net学习笔记系列文章
和LINQ比如何? (king2003)
阅读排行榜
1. 这样的面试题你会吗?(4767)
2. 易经杂说—南怀瑾(4383)
3. Asp.Net Forms验证(自定义、角色提供程序、单点登录)(4187)
4. 年终个人总结:我这五年(4013)
5. 为什么要使用MonoRail?(3921)