在谈到分布式DB2数据时,有必要谈谈DRDA。 DRDA代表分布式关系数据库体系结构。 它是由IBM开发的一种体系结构,它使关系数据能够在多个平台之间分布。 平台和平台都可以相互通信。 例如,一个DB2子系统可以与另一个DB2子系统(如)进行通信。 或者,DB2子系统可以与第三方RDBMS通信(与此不同)。 平台不必相同。 只要它们都符合DRDA规范,它们就可以进行通信。 DRDA可以被视为一种“通用的分布式数据协议”。
本文将介绍DRDA。 请记住,没有供应商,甚至是IBM,都没有实现完全支持所有DRDA功能的RDBMS。
什么是DRDA?

DRDA是一组协议或规则,使用户能够访问分布式数据,无论其实际驻留在何处。 它提供了一个开放,健壮的异构分布式数据库环境。 DRDA提供协调分布式位置之间通信的方法。 这允许应用程序访问不同位置的多个远程表,并将它们显示给最终用户,就好像它们是逻辑整体一样。
但是,应该在架构和实现之间进行区分。 DRDA描述了分布式数据的体系结构,仅此而已。 它定义了访问分布式数据的规则,但它没有提供执行访问的实际应用程序编程接口(API)。 因此DRDA不是一个实际的程序,但更像是一个程序的规范。
当DBMS被认为符合DRDA标准时,所有暗示的是它遵循DRDA规范。 DB2是符合DRDA标准的RDBMS产品。

DRDA的好处
DRDA只是一种支持分布式RDBMS的协议。当然,如果您是DB2用户,那么它可能是唯一重要的用户。
DRDA提供的最大好处是其明确规定的支持分布式数据访问的规则。遵循这些规则的任何产品都可以与任何其他符合DRDA标准的产品无缝集成。此外,符合DRDA标准的RDBMS支持完整数据分发,包括多站点更新。然而,最大的优势是它现在可用,许多供应商正在加入DRDA合规行列。
DRDA的替代方案是利用网关产品来访问分布式数据。网关由至少两个组件组成:每个分布式位置一个。这些部件彼此通信。就DB2而言,基于主机的网关组件是必需的。它作为另一个大型机DB2应用程序。访问DB2的大多数网关产品都使用CICS(有时是VTAM)执行。但是,网关通常仅支持动态SQL。
因此,DRDA在性能领域还有两个优势:

  • 删除与网关及其代码相关的开销
  • 消除对它的依赖和不可避免的性能下降

RDA怎么样?
尽管DRDA是DB2使用的分布式体系结构,但它并不是业界唯一的体系结构。 RDA(远程数据库访问)是由ISO和ANSI标准委员会开发的一组竞争协议。
作为DB2开发人员,DRDA将是您用DB2实现分布式数据的方法。 但是,了解RDA有点不会受到伤害。
构建RDA是为了使用可从DBMS到DBMS的标准SQL子集。 DRDA旨在通过特定于平台的SQL扩展来运行。
静态SQL可以与DRDA一起使用; 使用RDA时,只有动态SQL可用。
DRDA功能
DRDA使用三个功能来提供分布式关系数据访问:

  • 应用请求(AR)
  • 应用服务器(AS)
  • 数据库服务器(DS)

这三个功能在另一个上互操作以启用分布式访问。 让我们进一步研究这三个功能。

应用请求(AR)

DRDA应用程序请求程序(AR)功能使应用程序可以请求SQL和程序准备请求。 AR接受来自应用程序的SQL请求,并将它们发送到适当的应用程序服务器(或多个服务器)以进行后续处理。使用此功能,应用程序可以访问远程数据。

理论上,如果您感兴趣的所有数据都位于其他地方(即远程),则可能不需要本地RDBMS,并且DRDA不要求请求者在具有本地RDBMS的系统上运行。

对于DB2系列,DRDA AR功能是使用DB2 Connect实现的。

应用服务器(AS)

DRDA应用程序服务器(AS)功能接收来自应用程序请求者的请求并处理它们。这些请求可以是SQL语句或程序准备请求。 AS作用于可以处理的部分,并将剩余部分转发到DRDA数据库服务器以进行后续处理。如果本地RDBMS无法处理请求,则必须执行此操作。

AR使用称为应用支持协议的通信协议连接到AS。应用程序支持协议负责提供适当级别的数据转换。只有在请求中涉及不同的数据表示时,才需要这样做。一个例子是将ASCII字符转换为EBCDIC(反之亦然)。

数据库服务器(DS)

DRDA数据库服务器(DS)功能接收来自应用程序服务器或其他数据库服务器的请求。这些请求可以是SQL语句或程序准备请求。与应用程序服务器一样,数据库服务器将处理它可以执行的操作,并将余数转发到另一个数据库服务器。

请务必注意,数据库服务器请求可能适用于SQL语句的组件。当数据分布在两个子系统并请求连接时,就会发生这种情况。 join语句从两个不同位置的表请求数据。因此,必须在一个位置处理一部分;另一部分位于不同的位置。

由于分布式请求中涉及的数据库服务器不必相同,因此使用数据库支持协议。它存在的原因如下:

  • 将应用程序服务器连接到数据库服务器
  • 连接两个数据库服务器

与应用程序支持协议一样,数据库支持协议用于确保不同数据库服务器之间的请求兼容性。

返回是什么?

完全处理请求后,应用程序服务器必须通知请求进程,即应用程序请求者。这是如何完成的?

AS将返回码和结果集(如果生成一个)传递回AR。返回码是SQLSTATE(或SQLCODE)。在以下情况下不会生成结果集:

  • INSERT
  • UPDATE
  • DELETE
  • 没有行符合条件时选择SELECT
  • DCL和DDL请求

除非使用光标,否则将使用此协议。当从只读游标获取行时,可以使用有限的块协议。有限块协议一次通过网络传递多行,即使一次提取一次只能处理一行。有限块协议通过最小化网络流量来增强整体性能。如果光标不是只读的(即,可以更新行),则不使用有限块协议。

DRDA架构和标准

为了使DRDA存在,它依赖于其他已建立的协议。以下各节将介绍这些体系结构。

高级程序通信程序(APPC)

高级程序到程序通信基于LU 6.2协议提供对等级通信支持。 LU 6.2是一种高级通信体系结构,它定义了功能等效逻辑单元之间通信的格式和协议。

APPC / LU 6.2提供协作处理和分布式事务处理所需的通信和事务处理设施。

分布式数据管理(DDM)

分布式数据管理体系结构定义了使用APPC和LU 6.2跨网络访问分布式数据的工具。使用DDM,要访问的分布式数据可以驻留在文件或关系数据库中。然而,在DRDA的背景下暗示了RDBMS。

格式化数据:对象内容体系结构(FD:OCA)

FD:OCA是一种体系结构,用于分配和交换字段格式的数据。使用FD:OCA,数据及其描述都打包在一起,以便任何符合DRDA的DBMS都能理解其结构和内容。

字符数据表示架构(CDRA)

字符数据表示体系结构是用于确保在任何SAA关系DBMS上使用的任何符号或字符具有相同含义而不管底层编码字符集的体系结构。 CDRA提供了一种从任何SAA平台明确识别数据的方法。

特别是在PC工作站(使用ASCII代码)和大型机(使用EBCDIC代码)之间传输数据时,CDRA是必需的。从理论上讲,CDRA可以扩展为支持其他代码(例如Unicode,一种获得支持的新字符编码方案)。

Application Requester

The DRDA application requester (AR) function enables SQL and program preparation requests to be requested by application programs. The AR accepts SQL requests from an application and sends them to the appropriate application server (or servers) for subsequent processing. Using this function, application programs can access remote data.

In theory, if all of the data that you are interested in is physically located somewhere else (i.e., remote), there may be no need for a local RDBMS, and DRDA does not require the requester to run on a system with a local RDBMS.

For the DB2 Family, the DRDA AR function is implemented using DB2 Connect.

Application Server

The DRDA application server (AS) function receives requests from application requesters and processes them. These requests can be either SQL statements or program-preparation requests. The AS acts upon the portions that can be processed and forwards the remainder to DRDA database servers for subsequent processing. This is necessary if the local RDBMS cannot process the request.

The AR is connected to the AS using a communication protocol called the Application Support Protocol. The Application Support Protocol is responsible for providing the appropriate level of data conversion. This is only necessary when different data representations are involved in the request. An example of this is the conversion of ASCII characters to EBCDIC (or vice versa).

Database Server

The DRDA database server (DS) function receives requests from application servers or other database servers. These requests can be either SQL statements or program preparation requests. Like the application server, the database server will process what it can and forward the remainder on to another database server.

It is important to note that a database server request may be for a component of an SQL statement. This would occur when data is distributed across two subsystems and a join is requested. The join statement is requesting data from tables at two different locations. As such, one portion must be processed at one location; the other portion at a different location.

Because the database servers involved in a distributed request need not be the same, the Database Support Protocol is used. It exists for the following reasons:

DRDA的更多相关文章

  1. DB2错误码信息

    00 完全成功完成 表 3  01 警告 表 4  02 无数据 表 5  07 动态 SQL 错误 表 6  08 连接异常 表 7  09 触发操作异常 表 8  0A 功能部件不受支持 表 9  ...

  2. oracle官方文档12c对应关系

    ADDCI Oracle® Database Data Cartridge Developer's Guide 12c Release 1 (12.1) E15882-05 ADFNS Oracle® ...

  3. DB2 错误信息码

    000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 +098 01568 动态SQL语句用分号结束 +1 ...

  4. DB2 SQLCODE 大全

    DB2错误信息sqlcode sqlstate 说明 000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 ...

  5. DB2中错误信息说明

    DB2错误信息SQLCODE SQLSTATE (按sqlcode排序) .分类: db2数据库 2012-10-19 11:35 2942人阅读 评论(0) 收藏 举报 db2sql存储table数 ...

  6. DB2 for z: system catalog tables

    http://www.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/com.ibm.db2z10.doc.sqlref/src/tpc/db2z_cata ...

  7. SYSIBM.SYSPACKSTMT db2 存储statement的表

    SYSIBM.SYSPACKSTMT table   The SYSIBM.SYSPACKSTMT table contains one or more rows for each statement ...

  8. db2代理和优化

    DB2 的代理 (agent) 是位于 DB2 服务器中的服务于应用程序请求的一些进程或线程.当有外部应用程序连接至 DB2 实例提出访问请求时,DB2 的代理就会被激活去应答这些请求.一般 DB2 ...

  9. 通过setDB2Client*来方便的使用TRACE调优jdbc程序

    一般来说通过TRACE的report来分析DDF的性能问题的话,基本对DBA都是噩梦一样.因为所有的Thread都是通过DDF一个类型的Thread,所以不管你怎么分类,看Accounting rep ...

随机推荐

  1. (五)UML之协作图

    一.什么是协作图? 顾名思义协作图就是合作图,有合作就涉及到多个对象. 协作图(Collaboration Diagram /Communication Diagram,也叫合作图)是一种交互图(in ...

  2. LINQ语法详解

    我会通过一些列的实例向大家讲解LINQ的语法. 先创建一个Person类,作为数据实体 public class Person { public string Name { get; set; } p ...

  3. 初步了解Docker容器(三)

    目录 一.初步了解 1.docker run运行容器 2.docker images查看镜像 3.docker ps查看容器 4.查看其Dockerfile文件 二.Docker 知识问答 小结 一. ...

  4. 要开始恶补Layer4-7 TCP/IP相关的姿势了,今天立个Flag

    今天开区域销售会,被老板K了一顿大的!(:/手动委屈:) 说产品出来这么久,怎么没看到你们的跟接触客户的使用报告记录,一年快到头了,试用客户才个位数?你们了解自己的产品吗,然后轮着上去一个个做功能演示 ...

  5. 在C/C++中常用的符号

    C++中&和*的用法一直是非常让人头疼的难点,课本博客上讲这些知识点一般都是分开讲其用法的,没有详细的总结,导致我在这方面的知识结构格外混乱,在网上找到了一篇英文文章简单总结了这两个符号的一些 ...

  6. Scapy 从入门到放弃

    0x00 前言 最近闲的没事,抽空了解下地表最强的嗅探和收发包的工具:scapy.scapy是一个python模块,使用简单,并且能灵活地构造各种数据包,是进行网络安全审计的好帮手. 0x01 安装 ...

  7. 酒店移动端入住离店日期选择demo(转)

    原作者:http://blog.csdn.net/cj14227/article/details/65629737 效果图: demo 代码: <!DOCTYPE html> <ht ...

  8. 日常工作问题解决:rhel7下使用teamd配置双网卡绑定

    目录 1.情景描述 2.准备工作 2.1 确认网卡信息 2.2 删除原有网卡配置信息 3.配置网卡绑定 3.1 配置千兆网卡双网卡热备用作心跳 3.2 配置网兆网卡双网卡负载均衡用作业务 1.情景描述 ...

  9. [官网]Postgresql 的客户端应用 pg_config

    pg_config Name pg_config -- 检索已安装版本的 PostgreSQL 的信息 Synopsis pg_config {--bindir | --includedir | -- ...

  10. C++:标准C函数(随机数,时间函数)

    介绍 ANSI组织定义了C标准和标准库函数. 使用标准C函数优点: 使用标准C函数在任何平台上都支持,使得同一个源码,在Windows编译运行的结果和Linux上编译运行结果相同,无需更改代码. 随机 ...