WEB开发网
开发学院软件开发Java 使用 Java API 处理 WebSphere MQ 大消息 阅读

使用 Java API 处理 WebSphere MQ 大消息

 2009-12-31 00:00:00 来源:WEB开发网   
核心提示: 程序功能介绍:(1)QMgrSegSender 程序是构造一个长度为505字节的消息并把它写入队列 TESTQ 中,为使 MQ 不能传输505字节的消息,使用 Java API 处理 WebSphere MQ 大消息(3),可以修改队列 TESTQ 的属性“最大消息长度(MAXMSG

程序功能介绍:

(1)QMgrSegSender 程序是构造一个长度为505字节的消息并把它写入队列 TESTQ 中。

为使 MQ 不能传输505字节的消息,可以修改队列 TESTQ 的属性“最大消息长度(MAXMSGL)”为100。

执行结果如下图 1 所示,该消息被队列管理器自动分割成6个片段消息:


图 1 在 WebSphere MQ 资源管理器中浏览分片消息
使用 Java API 处理 WebSphere MQ 大消息

(2)QMgrSegReceiver 程序是从队列 TESTQ 中读取一个消息。

我们观察执行的结果是它把队列中6个片段消息组成一个完整的大消息取出。

使用队列管理器自动实现消息分片对应用开发人员来讲比较简单,但是需要确保程序在内存使用等方面可以处理完整的大消息。

应用程序实现的消息分片

应用程序实现消息分片是指,在发送方应用程序中事先把大消息切分成多个片段,每一个片段作为一个独立的消息,写入到队列中;在接收方应用程序中,每一个片段作为一个独立的消息被取出,由程序把所有的消息片段组装成一个完整的消息。这种模式适用的场合为,WebSphere MQ 和应用程序两者都不方便处理这么大的单个消息。

一般在发送方程序实现中,我们是把所有的消息片段放在一个同步点中发送,所以需要设置 MQPutMessageOptions 为 MQPMO_SYNCPOINT;同时,我们推荐使用选项 MQPMO_LOGICAL_ORDER,这意味着队列管理器自动维护每个消息片段的偏移量(Offset),否则,需要应用程序自身来设置:

MQPutMessageOptions pmo = new MQPutMessageOptions ();

pmo.options = MQC.MQPMO_LOGICAL_ORDER + MQC.MQPMO_SYNCPOINT;

上一页  1 2 3 4 5 6  下一页

Tags:使用 Java API

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接