科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道IBM DB2 Connect简介

IBM DB2 Connect简介

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

对于那些脱离大型主机的应用程序 —— 分布式应用程序来说,IBM? DB2? Connect? 已成为向它们开放 DB2 for z/OS 数据库以及 zSeries 硬件平台传统公认的所有优点的首选方法。

来源:IT专家网 2008年6月6日

关键字: IBM 数据库 DB2

  • 评论
  • 分享微博
  • 分享邮件

DB2 Connect 在其联邦核心中内建了一个智能的优化器。这意味着当您从一个 Oracle 数据库选择很多数据时(如果您正在使用 WebSphere Information Integrator),优化器知道启发法、索引、基数和 Oracle 数据存储的总体分布情况,并能够重写查询,以获得更好的访问方式。

DB2 UDB 凭借其自治的、强大的优化技术而成名已久,这种技术能提供对数据的快速访问:这些优点并没有随联邦功能而消失。相反,它们被内建在 DB2 Connect 的联邦优化器中。因此,当 DB2 Connect 充当联邦层时,它可以执行谓词叠加(push-down)或消除分支树(branch-tree),从而加快数据访问。DB2 Connect 会判断是将谓词叠加到本地存储,还是带回完整的结果集并在本地应用结果集更有意义。取决于数据存储的并发特征或业务需求,DB2 Connect 甚至可以在这些外部数据源上创建一个温(warm)数据缓存,以便不需要牵涉到异构数据库。

深入分析联邦的能力超出了本文的范围,但要记住的最重要的一点是, 对于一名开发人员,在他自己的 IDE 中,只需一种 API,可以使用来自任何地方的各种数据 。在当今市场中,这些特征是无与伦比的,它们代表了一种伸手可及的专用 API 访问或“即购即换”方法学的解决方案,在今天这样注重成本的氛围下,这种方法学几乎被摒弃。最低限度是,DB2 Connect 是这些效率的一个起点,通过一个动态的选项,可以在需要的时候添加越来越多的数据源。

存储过程和统一数据访问

与其他作为竞争对手的数据库供应商提供的存储过程相比,DB2 服务器中的存储过程在功能上有其独特之处。DB2 存储过程中的代码可以重写,重写方式与应用程序其他部分几乎相同(例如,程序员或应用程序 DBA 可以使用自己喜欢的编程语言 —— Java、COBOL、.NET 或 C —— 并可以在数据库服务器平台上调用那种语言中可用的任何 API)。例如, 程序员可以(用 COBOL)编写一个调用 CICS 事务的存储过程,并将该存储过程部署到 DB2 for z/OS。因为调用存储过程的应用程序完全独立于存储过程实现的细节,因此调用者应用程序完全不知道它们在执行存储过程的时候,会引起对 CICS 资源的访问,也不知道这个存储过程是用 COBOL (这种语言对于程序员或 DBA 来说可能并不熟悉)编写的。

使用存储过程来访问数据的这种技术可以在 DB2 家族的所有服务器上使用。然而,这种技术最常用于 DB2 for z/OS 服务器,因为在那里非常需要一种统一的基于 SQL 的访问方式,来访问非关系大型主机数据(例如 VSAM/IMS 数据库)以及 CICS 和 IMS 事务程序形式的大型库存管理业务逻辑。另一种流行的技术是使用 WebSphere MQSeries® 中的消息队列来创建存储过程,这种存储过程通过消息传递来开始其他系统上的事务或业务逻辑。下面的图 5 展示了 DB2 Connect 之类产品提供的一些功能以及 DB2 家族对存储过程的支持。图 5. DB2 Connect 借助于存储过程的数据访问功能

<a href='http://www.ibm.com/developerworks/cn/db2/zones/db2ii/index_old.html?S_TACT=105AGX52&S_CMP=w-cto' target='_blank' style='font-size:14px;text-decoration:none;color: #0000FF;'>DB2</a> Connect 借助于存储过程的数据访问功能。


 

提供对非关系大型主机数据的统一的、基于 API 的标准访问模式,这样做的优点数不胜数。这种利用 DB2 存储过程的方法不仅简化了 Windows、Linux 和 UNIX 程序员的工作,而且使他们完全不必知道数据和程序逻辑的性质以及它们的位置。程序员完全没必要接受 CICS、IMS、VSAM 和其他大型主机技术方面的培训 —— 但即使是最基层的程序员(每个人都知道如何调用存储过程)也能以一种良好架构的、可控制的(可控制的这个词很关键)方式来充分利用这些系统。例如,很多应用程序编程人员都擅长 Visual Basic.NET,但是他们可能完全没听说过 CICS。通过使用存储过程的方法,Visual Basic.NET 开发人员同样可以开发一个 CICS 应用程序,而只需使用与访问所有关系数据所用的相同的接口和方法。这可以大大节省应用程序开发的时间和开发人员的成本,因为可以使用更标准化的数据访问 API(例如 JDBC 和 ADO.NET)。

自然,存储过程本身需要开发和部署。这些存储过程通常是由熟悉这些大型主机技术的大型主机编程人员和 DBA 构建的。为了进一步简化构建存储过程的任务,IBM 提供了 CICS 和 IMS 事务的源代码样本(这些源代码可以不作修改地用于生产)。特别地,对于 CICS,IBM 提供了一个样本存储过程(名为 DSNACICS),它有助于大大简化通过 DB2 Connect 访问分布式应用程序或基于 Web 的应用程序中的 CICS 事务的过程。此外,有一个用户出口(名为 DSNACICX)为 DBA 提供了一种机制来抽象 CICS 接口的知识,并检查或覆盖由这些程序员提供的参数,以便取得更好的控制。

您可以通过阅读 DB2 Connect documentation 来了解更多关于 CICS 和 DB2 Connect 的知识。其中还提供了用于 IMS 的一个类似的存储过程,即 DSNAIMS 。

至此,您可能想知道,这种使用存储过程访问非 DB2 数据的方法是否适用于只读类型的操作,或者是否能用于现实中的事务。答案是,对这些数据源的访问是原子性的,通过 z/OS Resource Recovery Service (RRS) 功能可以保证数据完整性。例如,一个存储过程可以更新某些 DB2 UDB 数据,并执行 CICS 事务,如果这些操作中任何一个失败,则整个事务将回滚。因此,在使用存储过程来更新非 DB2 数据和执行非 DB2 事务时,数据完整性是完全有保障的。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章