1 / 8

MQ Misc

MQ Misc. 设计消息. 消息类型 在应用程序中的消息是一个简单消息,还是一个请求消息。如果是请求消息,请求 - 回复的处理方式是异步还是同步。还有就是所有的消息是否在同一个工作单元。 消息优先级 在发送应用程序中可以为每个消息设置优先级再放到队列中。如果队列的消息交付方式也设置为优先级方式,则接收程序将总是先取出优先级最高的消息。如果队列的消息交付方式也设置为先进先出方式,则接收程序将按先进先出方式取出队列中的消息。 消息的永久性 当队列管理器重新启动,是否希望保留队列中的消息,如果需要保留,则把消息设置成永久性的,如果不需要保留,则把消息设置成非永久性的。.

vivek
Download Presentation

MQ Misc

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MQ Misc

  2. 设计消息 • 消息类型 • 在应用程序中的消息是一个简单消息,还是一个请求消息。如果是请求消息,请求-回复的处理方式是异步还是同步。还有就是所有的消息是否在同一个工作单元。 • 消息优先级 • 在发送应用程序中可以为每个消息设置优先级再放到队列中。如果队列的消息交付方式也设置为优先级方式,则接收程序将总是先取出优先级最高的消息。如果队列的消息交付方式也设置为先进先出方式,则接收程序将按先进先出方式取出队列中的消息。 • 消息的永久性 • 当队列管理器重新启动,是否希望保留队列中的消息,如果需要保留,则把消息设置成永久性的,如果不需要保留,则把消息设置成非永久性的。

  3. WebSphere MQ 应用技术 • 等待消息 • 可以采用轮循机制从队列中取出消息或设置等待消息时间,如果消息到达则取出,否则超时则返回。 • 关联回复 • 把请求消息中的消息标识(MsgId)复制到回复消息的关联标识(CorrelID)中。 • 上下文信息(Context information) • 上下文信息对于安全,审计和问题确定是很有用。 • 自动启动WebSphere MQ应用程序 • WebSphere MQ触发机制,当消息到达队列时,自动启动应用程序处理消息。 • 产生消息报告 • 在应用程序可以请求产生多种报告消息,例如,意外报告(Exception reports)、失效报告(Expiry reports)、到达确认报告(Confirm-on-arrival reports)、交付确认报告(Confirm-on-delivery reports)、PAN报告(Positive action notification reports)和NAN报告(Negative action notification reports)等。 • 群集和消息的紧密联系 • 在WebSphere MQ群集里,消息可以被放到群集中任何队列管理器的相应队列,因此消息间的紧密联系可能被变得松散。

  4. 性能考虑 • 当处理一批消息时,可以采用MQCMIT函数,将若干消息作为一个完整的交易来处理,消息将作为一个batch统一提交,而不是一个个地分别提交,因此,可以提高性能。尤其对于永久性的消息效果更加明显。 • 尽量减小消息的大小,小消息的读取效率要高。对于mqget, mqput这两个函数而言,8k以下的消息的耗时差别不大,8k到128k的消息的耗时随着消息大小的增加而增加。大于128k的消息耗时较大,因为当与队列相关的内存满了的时候,会有硬盘交换。 • 同时要注意,从传输效率而言,如果在广域网上进行消息传输,消息太小会影响传输效率,因为对于每一消息,MQ都会有一个消息头,它会占有一定的字节数,如果把消息拆分太小,每个消息的传输头都会占据一定的开销。 • 如果消息不必可恢复,则在应用程序中可使用非永久性消息。 • 使用Distribution List 方式来把相同的消息发往不同的目的地。 • 用match correlation ID的方法取消息比不匹配性能要差。 • 通常,我们使用MQCONN这个函数建立与队列管理器的连接,除此之外,MQ支持trusted application binding,即fastpath binding,用MQCONNX来实现。当从性能方面考虑时,我们可以使用MQCONNX来提高性能。

  5. MQI 的数据结构 • MQBO (开始选项) • 为MQBEGIN 调用确定选择项(仅适用于WebSphere MQ 版本5 产品)。 • MQCNO (连接选项) • 为MQCONNX 调用确定选择项(仅适用于WebSphere MQ 版本5 产品)。 • MQDH (分配标题) • 如果传输队列中的一条消息是分布列表消息,则描述该消息所包含的数据(仅适用于WebSphere MQ 版本5 产品和WebSphere MQ for AS/400)。 • MQGMO(获取消息选项) • 为MQGET 调用确定选择项。 • MQMD(消息描述器) • 为放入队列的(使用MQPUT 或MQPUT1)或从队列中获取的(使用MQGET)消息提供控制信息。

  6. MQI 的数据结构 • MQMDE (消息描述器扩展) • 与MQMD 版本1 结合,它包含MQMD 版本2 通常采用的分组消息和分段信息(仅适用于WebSphere MQ 版本5 产品和WebSphere MQ for AS/400)。 • MQOD(对象描述器) • 确定采用MQOPEN 时要处理的对象。 • MQOR(对象记录) • 确定您在分布列表中要处理的目标(仅适用于WebSphere MQ 版本5 产品和WebSphere MQfor AS/400 V4R2)。 • MQPMO(放置消息选项) • 确定MQPUT 和MQPUT1 调用的选择项。 • MQPMR(放置消息记录) • 包含相关分布列表中个别目标的特定信息(仅适用于WebSphere MQ 版本5 产品和WebSphere MQ for AS/400 V4R2)。

  7. 其它结构 • MQDLH(死信标题) • 定义放入死信(未送达的消息)队列中消息标题的格式(WebSphere MQ for Windows V2.0不支持)。 • MQRMH (引用消息标题) • 定义引用消息的格式(仅适用于WebSphere MQ 版本5 产品和WebSphere MQ for AS/400)。 • MQTM(触发器消息) • 定义触发器消息格式。 • MQTMC (触发器消息) • 定义作为一组字符字段的触发器消息的格式(仅适用于WebSphere MQ for AS/400) • MQTMC2 (触发器消息) • 定义包括队列管理器名的触发器消息的格式(仅适用于WebSphere MQ for MVS/ESA,WebSphere MQ on UNIX systems,WebSphere MQ for OS/2 Warp 和WebSphere MQ for Windows NT) • MQXP(出口参数块)结构 • 用来与API 交叉出口进行通讯(仅适用于WebSphere MQ for MVS/ESA)。 • MQXQH(传输队列标题) • 定义放入传输队列中的添加至消息的标题格式。

  8. C 和Visual Basic的基本数据类型 • MQBYTE 单字节数据 • MQBYTEn 16、24、32 或64 字节的字符串 • MQCHAR 单字节字符 • MQCHARn 包含4,8,12,16,20,28,32,48,64,128 或256 个单字节字符的字符串 • MQHCONN 连接句柄(此数据为32 位) • MQHOBJ 对象句柄(此数据为32 位) • MQLONG 32 位带符号二进制整数 • PMQLONG 指向MQLONG 类型数据的指针

More Related