项目验收-经管与外围集成v1.1-目录mq配置参考手册_第1页
项目验收-经管与外围集成v1.1-目录mq配置参考手册_第2页
项目验收-经管与外围集成v1.1-目录mq配置参考手册_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MQ配置对于MQ的使用,主要会涉及到MQ系统本身的配置和MQ应用程序的开发两第一部分:有关MQ对象配置的最佳实对于MQ系统配置,我们要规划MQ通讯网络,确定系统的拓扑结构,确定各设之初,如何设计和定义MQ的各种对象。1、有关队列管理器程序同时连接队列管理器,应增大该值),MAXMSGL,最多的未提交的消息个数MAXUMSGS属性(10000,如果您使用了消息分段10000,应增大该值)的考虑;TCP和2、有关队列DEFPSISTNo,若要保证消息的安全可靠,必须将其设置为Yes;对于本地队列和传输队列,要考虑队列的最大深度MAXDEPTH(缺省5000,应根据实际情况计算该值),队列中每个消息的最大字节数3、有关为FIRST;对于发送类型的通道,要考虑通道的断开间隔(DISCINT)第二部分:有关MQ程序开发的最佳实通常大家在使用MQ时,一般在系统设计之初只考虑MQ的系统配置,而很少MQ应用程序,在该部分我们给出与MQ程序开发相关的一些最佳实践,供大家参考。这里我为了更好地掌握和了解MQMQ的消息通讯模式,这将帮助你更好地理解MQ编程的最佳实践。通常,MQ有两种通讯模式,即数据报(Datagram)方式和请求/应答(Request/Reply)方式:其中,Datagram方式通常又被称为"SendAndForget"(发送/忽略),是最简单的通讯模式,应用程序只需在创建完消息之后,利用MQ的API将消息发送到队列中,它充分利用了MQ确保消息传输,并且传一次且仅传一次(onceandonceonly)的优势,应用程序的考虑将会有所不同,使用的MQAPI的参数和选项也将不同。为了使你的MQ应用能够更加健壮,并且具有更强的可性,我们要学会灵活高效地使用MQ的一些特性以及相关的API选项,从而提到应用程序的质量、在每一个MQAPI调用之后,必须检查完成码(completioncode)和原因码在MQAPIMQCC_OK、MQCC_WARNING、MQCC_FAILED等,MQCC_OK表示调用成功,当得到MQCC_WARNING、MQCC_FAILEDAPI执行不完全成功,你2033代表队列已空,没有消息可取;2080代表消息的实际长度超过了你在程序代码中MQCONN,MQOPEN,MQCLOSEMQDISC由于MQCONN,MQOPEN,MQCLOSEMQDISC相对于MQGET和次读写操作,也不要对每一次读写都调用一次MQCONN,MQOPEN,MQCLOSEMQDISCMQCONN,MQOPENMQCLOSE,MQDISC函数将相关资源释放掉。消息时,等待时间间隔的对队列的操作,可以有两种方式,即轮巡方式和触发方式(利用MQ的触发功能动态调起应用程序)。在采用轮巡方式队列时,在MQGET时,我们需要设置消息选项MQGMO_WAIT,同时指定等待时间间隔。不少用户将时间间隔设定为MQWI_UNLIMITED以实现轮巡的目的,这样做的弊端在于号,MQCLOSE,MQDISC调用也无法被执行,因此,我们建议避免采用这种方MQGET调用。如果在同步点控制之下使用MQGET,在所有MQGET调用之后,必须检查消息的回滚次数(BackoutCount)。描述符中(MessageDescriptor)BackoutCount1,你需要判程序在MQXAResourceManager的控制之下,消息,并且利用其数据对在这种情况下,你必须在程序中加入对BackoutCount的判断。当处理backout消息时使用队列的BOTHRESHBOQNAME属性。如4中所言如果某个消息是在同步点控制之下的并且由于某种原因消息其灵活性,你可以使用队列的BOTHRESH和BOQNAME属性。这样,你可以在例外处理中,利用MQINQ查询得到阈值的大小,如果超出,可以将消息转发到BOQNAME指定的队列中,继而对该队列进行相应的处理。这种方法大大在使用MQOPEN,MQPUTMQGET调用时,要使用FAIL_IF_QUIESCING的选项。MQ系统本身和使用它提供的服务的用户应用程序之间是互相独立的,必要时,我们可能要停止MQ系统,这时,我们不但希望新的应用不能连接,并且希望MQ系统正在停止的信号,在上述MQAPI中,必须设置FAIL_IF_QUIESCING的选如果不设置FAIL_IF_QUIESCING的选项,当MQ系统停止时,所有应用将继续运行,这样会影响MQ系统的停止,从而导致MQ停止需要很长时间,同时消息描述符的不同字段的使用在MQ的消息描述符MQMD中包含了很多字段,这些字段大部分是一些保留字生一个,其唯一性;PutAppType,PutAppName,PutDate,PutTime是系MsgSeqNumber,Offset,MsgFlags是与消息分段和消息分组相关的控制信息;CorrelId和Feedback字段,但是,按照惯例,CorrelId常常被用于在请求/应答Feedback字段,利用该字段来进行一些应用程序控制。当我们接收到某个消息之后,我们可以检查Feedback字段,根据Feedback字段值进行相应的处理。消息永久性属性的要使用"dfiedasueu"的方法来指定。当队列的永久性属性(DEPSIST)被意外地设为NO时,就会有丢失的风险。应用程序可以将请求消息的永久性属性为No,即对于请求消息使用非永久录日志,从而减少I/O操作,提高系统的性能。在异种操作系统平台上使用MQ传输消息时,将消息格式设置MQFMT_STRINGMQ的一大优势之一,是对built-in(内置的)消息格式,可以实现不同操作系统平ASCII码和主机EBCDICCCSID和EncodingCCSID和指定,对于MQ内置支持的消息格式,MQ可以自动转换,这些消息格式由MQFMT_*MQFMT_STRING来表示,并且MQFMT_STRING是MQ内置支持可以转换的格式之一,你可以使用它来表atoi,itoa等函数实现数对大消息的处MQ支持单条消息的最大长度为100M,队列管理器、队列、通道支持的最大消息的缺省值为4M,即使如此,我们却应该根据不同的网络类型和带宽,具体地 一定要使用MQ的分段功能将消息进行分段处理,确保每一个物理消息的大小适当,MQ会自动整个逻辑消息的完整性,并且可以在接收端将其取如何使用MQ的请求/应答通讯模式来处理同步的消息处理模式大家知道,MQ的异步处理模式是非常强健的,同时它也支持同步的消息处理,例如MQclient-serverserver-serverMQ提供典型的应用案例如下:假设系统AB发出请求,调用B上的某个交易,MQ系统丢弃;如果MQ系统丢弃。系统B上的交易便不会被调起执行。对于应答消息,我们也设置它的定的队列中,这时,如果系统B上的交易执行完之后,会产生应答消息,如果由于通讯等原因,该应答消息在到达系统A时应用程序设置的Timeout时间已经超出,应用程序必然认为系统B上的交易没有被执行,也不会处理该应答消对消息类型的设置消息描述符MQMD的MsgType字段,消息类型有datagram,request,reply,report等若干种但是为了更好地对消息进行管理要时要设定消息类型,从而对不同的消息进行处理。例如,当reply消息和report消息都被发送到同一对消息转换的设置:通常,当需要进行消息转换时,我们有两种方法来进行设置法是在调用MQGET时设置MQGMO_CONVERT的消息选项第二种方法是将发送端通道的convert属性设置为yes。对比二者,我们推荐使用第法,它的优:当我们不需要进行格式转换时,使用在MQMD中将消息格式Format字段设置为MQFMT_NONE的方法来表示,MQFMT_NONE表示忽视任何格式转换。应用程序最好不要在MQGETMQPUT调用时使用过大的消息缓冲区,当应用程序发出MQGET和MQPUT调用时要设定用于装载消息的数据缓冲区可以在真正的MQGET之前先使用Browse浏览到的消息的MQMDOriginalLength字段的数值来确定消息缓冲区的大小,然后再使用MQGET真正的将消息出来。先级,然后使用"efnedasuee"来设置消息的优先级。DEFPRTY请求型应用在打开请求队列时,最好不要使用MQOO_OUTPUT选项。求发送到请求队列中,对队列的操作都是MQPUT,这时,队列的类型不会有影MQOO_OUTPUT选项,可以与数据库交互时,MQPUTMQGET必须使用同步点控制,即使用的两阶段提交功能,来保证数据的一致性和完整为了保证数据库操作和MQ操作同时成功或同时回滚,需要在做MQPUTMQGET调用时,使用MQPMO_SYNCPOINT和MQGMO_SYNCPOINT选与数据库操作相关的队列消息的属性最好设为永久性消息,即消息persistence属性应设为yes,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论