WebsphereMQ编程篇第二十三章编程设计技术总结.doc

WebsphereMQ编程篇第二十三章编程设计技术总结.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二十三章 编程设计 消息设计 消息大小 (Message Size) WebSphere MQ 中与消息大小的相关参数如下: 对象 属性 缺省值 范围 说明 队列管理器 MAXMSGL 4M 32K - 100M 队列 (Local/Model) MAXMSGL 4M 0 - QM.MAXMSGL 0 表示用 QM.MAXMSGL 通道 MAXMSGL 4M 0 - QM.MAXMSGL 0 表示用 QM.MAXMSGL 队列管理器的MAXMSGL表示队列管理器中可以容纳的最大消息长度。此参数只对 AIX、Compaq OpenVMS、HP-UX、Linux、OS/2 Warp、OS/400、Solaris和Windows 有效。缺省值为 4,194,403,范围在 32,768 到 104,857,600 之间。队列管理器的 MAXMSGL 的值应该始终大于等于队列的 MAXMSGL 值,如果这个值调小了,应该检查队列管理器中所有的 Local 或 Model 队列的 MAXMSGL 属性,包括系统队列 SYSTEM.DEFAULT.LOCAL.QUEUE 的定义。 队列的MAXMSGL仅对 Local 和 Model Queue 有效,表示队列中可以容纳的最大消息长度。 对于 AIX、Compaq OpenVMS、HP-UX、Linux、OS/2 Warp、OS/400、Solaris 和 Windows平台,队列的 MAXMSGL 值从 0 到队列管理器的 MAXMSGL (上限为 100 MB)。 如果z/OS平台,大小为 0 - 104,857,600 Bytes。 对于其它平台,大小为 0 - 4,194,304 Bytes。 对于传输队列,消息的最大长度也包括消息传输头的大小。 如果这个值调小了,已经在队列中的超长消息不受影响。应用程序可以用这个值来决定需要申请的内存,所以调大该值有可能会影响应用程序的正常运行。 通道的 MAXMSGL,表示 Channel 可以一次传送的最大消息长度。 对于 AIX、iSeries、HP-UX、Linux、Solaris和Windows,以及 MQSeries V5.1 for OS/2 Warp, and VSE/ESA,通道的 MAXMSGL 的大小应该大于等于 0, 小于等于队列管理器的 MAXMSGL。 对于z/OS平台,大小为 0 - 104,857,600 Bytes。 对于其它平台,大小为 0 - 4,194,304 Bytes。 通道在建立的时候会有一个握手过程,双方会交换各自通道定义上的MAXMSGL,最后协商出通道使用的最大消息长度,一般会取双方定义中较小的那一个。 如果通道的两端支持消息切分,则一旦实际传送的消息长度比通道的可以传送的最大消息长度 (MAXMSGL) 更大也不要紧,MQ 会自动将其切分后送出,在远端自动拼接起来。只要小于队列管理器的 MAXMSGL 和队列的 MAXMSGL, 使本地队列能够放得下这条消息即可。 如果通道的两端都不支持消息切分,且消息实际传送的消息长度比通道的 MAXMSGL 大,则出错。 消息持久性 (Persistence) WebSphere MQ 中与消息持久性的相关参数如下: 对象 属性 缺省值 可取值 说明 消息 (MQMD) DefPersistence Q_DEF MQPER_PERSISTENCE_AS_Q_DEF MQPER_PERSISTENT MQPER_NOT_PERSISTENT 队列 DEFPSIST NO YES NO z/OS 中用Y或N 通道 NPMSPEED FAST NORMAL FAST 消息头MQMD属性 DefPersistence 可以有三种取值,但实际上只有两种有效值,即持久或非持久。对于 MQPER_PERSISTENCE_AS_Q_DEF,消息在MQPUT/MQPUT1时会设置队列的缺省属性。持久的消息可以在队列管理器重启时恢复,非持久的消息则不可以。持久的消息写入或读出队列的同时会在Log中记录,所以性能上比非持久消息差不少。 队列属性 DEFPSIST 表示放入其中的消息缺省是持久的 (Persistence) 还是非持久的 (Non-Persistence)。持久消息不可以放入临时动态队列 (Temporary Dynamic Queue)。 因为考虑到临时动态队列可以在 MQOPEN 时创建,在MQCLOSE时删除,在队列管理器重启后也会自动清除。这与持久消息不会丢失的性质不相容,所以 WebSphere MQ禁止持久性消息放入临时动态队列,在程序运行时报错:MQRC_PERSISTENT_NOT_ALLOWED。 通道的属性N

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档