分享
 
 
 

Dan Wolfson 就 DB2 和 Websphere MQ 集成方面的谈话

王朝厨房·作者佚名  2007-01-05
窄屏简体版  字體: |||超大  

摘要:Dan Wolfson 就 DB2 和 Websphere MQ 集成方面的谈话

Dan Wolfson

IBM 高级技术人员

2002 年 10 月

专家访谈:Dan Wolfson

就 Dan Wolfson 先前为 DB2® 开发者园地所撰写的两篇文章 DB2 MQ XML 函数:从 DB2 应用程序使用 MQSeries 和 XML Extender和 从 DB2 应用程序使用 MQSeries®,我们收到了许多读者的反馈。以下是 Dan 就其中一些问题所作的回答:

DB2DD 读者:当经过 DB2 接口将消息发送到 MQSeries(WebSphere® MQ)时,对消息大小有限制吗?目前,经过 CICS® 接口发送消息时,消息被限制为 COMMAREA 的最大大小,32K。这会带来分段问题 — 而通过 DB2 与 MQ 的集成也许可以解决。

Dan Wolfson:我们提供的第一个函数集所支持的最大消息为 4000 字节。然而,现在有了比这更新的函数集,它们支持 1MB CLOB。可以在 DB2 UDB V7 修订包 4 的发行说明中找到关于这些函数的信息。此外,我们还扩展了 XML MQSeries 函数以支持 CLOB 值。关于这方面的细节,请参阅 DB2 XML Extender 修订包 4 的发布说明。

DB2DD 读者:DB2 for OS/390® and z/OS™ 是否应用了将 WebSphere MQ(MQSeries)消息传递与数据库应用程序集成的 MQ Series 扩展?

Dan Wolfson:在我最初写那篇文章时,只有在 Windows®、AIX®、Solaris® 和 HP/UX® 上的 DB2 V7.2 有这些函数(如 MQSEND、MQRECEIVE、MQPUBLISH、MQSUBSCRIBE 等)。当然,在这些平台上的 DB2 V8 中也有这些函数。现在我非常高兴地告诉大家,有些函数已经被移植到了 DB2 for z/OS and OS/390 V7,其中包括 MQREAD、MQREADCLOB、MQRECEIVE、MQRECEIVECLOB、MQSEND、MQREADALL、MQREADALLCOB、MQRECEIVEALL 和 MQRECEIVEALLCLOB。请注意,在该平台上也可用 CLOB 函数,它们使消息大小可以超过 4000 字节。APAR PQ59549 可用这些函数。有一篇关于 APAR 的文档,在 2002 年 10 月中旬更新 DB2 软拷贝书籍时, DB2 for OS/390 手册中会有该信息,尤其是在 V7 Application Programming and SQL Guide、 SQL Reference和 Installation Guide中。

OS/390 上的实现实现还支持事务集成(因为在该平台上支持 RRS)。390 系统上的的第一个发行版不包括所有的 XML 集成特性,因为我们正试图尽可能快地发布一些基本函数。我们计划继第一个版本交付之后,尽快地推出第二个版本,第二个版本包括与 XML Extender 相关的函数和其它发布/订阅函数。

DB2DD 读者:相对于两阶段提交,我何时使用单阶段提交?

Dan Wolfson:目前,在 DB2 Universal Database for OS/390 and z/OS 上,MQSeries 函数 仅支持两阶段提交。对于 DB2 for OS/390 或 DB2 for x/OS,UDF 可以支持单阶段提交和两阶段提交。在选择使用哪种提交方式时,可能要考虑以下问题:

支持单阶段提交的 MQSeries 函数:当应用程序使用单阶段提交时,DB2 COMMIT 或 ROLLBACK 操作是独立于 MQSeries 操作的。如果 DB2 事务发生回滚,则不会丢弃已发送到当前工作单元内队列的消息。在发生应用程序错误的情形下,这种方案很有用。您可能希望使用 MQSeries 消息传递来通知系统程序员,应用程序发生了错误。在错误发生之后,应用程序发出 ROLLBACK 以回滚 DB2 工作,但消息仍然被发送到队列,该队列包含相关错误消息。

支持两阶段提交的 MQSeries 函数:如果应用程序使用两阶段提交,则 RRS 控制提交过程。如果 DB2 事务发生回滚,则会丢弃已发送到当前工作单元内队列的消息。例如,假定记录在 DB2 数据库中的销售事务会使 MQSeries 消息被发送到队列。接着,该消息会使库存系统订购备件。如果表示该销售的事务发生回滚,则该消息会被丢弃。在两阶段提交环境中,如果希望强制将 MQSeries 消息添加到消息队列或者从消息队列中删除,则需要在 DB2 应用程序程序中发出一个 COMMIT。

DB2DD 读者:为什么我要使用这些函数,而不是自己编写 MQ 应用程序呢?

Dan Wolfson:我认为主要原因是您可以非常容易地在同一个 SQL 语句中结合队列和数据库操作。所以可以使用一个简单的 SQL 语句将列或表的内容作为消息发布 (select mqsend(lastname) from employee) 或将队列内容插入到表中 (insert into t values (select * from table (mqreceiveall()) t) ) 。也可以在触发器中嵌入消息传递语句等等。此外,客户机应用程序可以利用此功能,而它们的机器上不需要 MQ;只需在 DB2 服务器上安装 MQ。

同样,显而易见,相对于编写自己的 MQ 应用程序,使用 MQ UDF 可以方便系统集成,以及提高性能。理解和配置 MQ UDF 的接口很简单,常见的做法是尽可能地使用可用的 UDF。

DB2DD 读者:设置 AMI 配置会涉及到什么?

Dan Wolfson:这通常包括设置环境变量 AMT_DATA_PATH、AMI 主机文件 amthost.xml 和资源库文件 amt.xml 。一旦设置了 AMT_DATA_PATH 以表明保存在 AMI 配置中的主机文件和资源库文件的位置之后,则与 DB2 UDB 一起提供的 MQ UDF 的 enable 实用程序( enable_MQFunctions)将执行缺省配置。一旦更好地理解了 AMI 的工作方式之后,也可以自己定制配置。

对于 DB2 for z/OS 或 DB2 for OS/390,需要复制和定制 prefix.SDSNSAMP 内的 DSNAMT 和 DSNAMTHT 文件。

DB2DD 读者:有什么可以帮助解析消息?

Dan Wolfson:对于分布式平台上的 DB2,我们有一组 MQ UDF 和 UDB 存储过程(SP),它们作为 DB2 XML Extender(用于处理 XML 类型的消息)的一部分而提供给我们。这些 SP 支持解析队列中的 XML 消息以及将元素值存储到一组预定义 DB2 表。(也支持从表来构造 XML 消息的逆操作)。根据 DAD 文件进行映射,这个 DAD 文件是作为 SP 的输入参数而提供的。关于这方面更详细信息,请参阅 XML Entender 文档。

开发中心(Development Center)还支持生成表函数以自动解析已定义位置或定界的消息。

DB2DD 读者:我们可以使用基本的 DB2 和 Websphere MQ 集成来从 MQ 向 DB2 传递 SQL 更新语句,还是我们需要 MQSI 来做这件事?

Dan Wolfson:您需要 MQSI 来做这件事。根据计划,将来有一些附加的功能,它们可以简化这种交互,但目前只能用 MQSI 或自己编写应用程序。

关于作者

Dan Wolfson 是 IBM Database Technology Institute for e-Business 的高级技术人员和经理。在分布式计算方面,Dan 具有超过 15 年的经验,他的兴趣范围很广,包括数据库、消息传递和事务系统。Dan 目前是信息集成方面的首席架构设计师。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有