DRDA
在谈到分布式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的更多相关文章
- DB2错误码信息
00 完全成功完成 表 3 01 警告 表 4 02 无数据 表 5 07 动态 SQL 错误 表 6 08 连接异常 表 7 09 触发操作异常 表 8 0A 功能部件不受支持 表 9 ...
- oracle官方文档12c对应关系
ADDCI Oracle® Database Data Cartridge Developer's Guide 12c Release 1 (12.1) E15882-05 ADFNS Oracle® ...
- DB2 错误信息码
000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 +098 01568 动态SQL语句用分号结束 +1 ...
- DB2 SQLCODE 大全
DB2错误信息sqlcode sqlstate 说明 000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 ...
- DB2中错误信息说明
DB2错误信息SQLCODE SQLSTATE (按sqlcode排序) .分类: db2数据库 2012-10-19 11:35 2942人阅读 评论(0) 收藏 举报 db2sql存储table数 ...
- 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 ...
- SYSIBM.SYSPACKSTMT db2 存储statement的表
SYSIBM.SYSPACKSTMT table The SYSIBM.SYSPACKSTMT table contains one or more rows for each statement ...
- db2代理和优化
DB2 的代理 (agent) 是位于 DB2 服务器中的服务于应用程序请求的一些进程或线程.当有外部应用程序连接至 DB2 实例提出访问请求时,DB2 的代理就会被激活去应答这些请求.一般 DB2 ...
- 通过setDB2Client*来方便的使用TRACE调优jdbc程序
一般来说通过TRACE的report来分析DDF的性能问题的话,基本对DBA都是噩梦一样.因为所有的Thread都是通过DDF一个类型的Thread,所以不管你怎么分类,看Accounting rep ...
随机推荐
- 禁止CSRF校验实例
静态文件----提交表单 本例在static目录中建立了一个from.html静态页面,该页面有一个<form>标签,用于向服务端提交POST请求,然后在post.py脚本文件中添加一个路 ...
- 十六章 综合实例——《跟我学Shiro》
目录贴:跟我学Shiro目录贴 简单的实体关系图 简单数据字典 用户(sys_user) 名称 类型 长度 描述 id bigint 编号 主键 username varchar 100 用户名 pa ...
- Informix网页数据维护客户端工具
Informix是IBM公司出品的关系数据库管理系统,目前还有在银行,电信等行业使用,Informix的客户端工具很少,数据维护及可视化比较麻烦,现在TreeSoft数据库管理系统已支持Informi ...
- 【c# 学习笔记】委托的使用
//委托使用的演示 class Program { //1.使用delegate关键字来定义一个委托类型 public delegate void MyDelegate(int para1, int ...
- 静态路由协议和动态路由协议(rip协议和ospf协议)
一.静态路由协议 1.拓扑图 2.分别是设置各个路由器的ip地址 以R1为例 R1> R1>en //进入全局配置模式 R1#conf t //进入端口 int g0/0 //配置ip地址 ...
- 域名购买、SSL证书申请使用和本地服务映射外网
万网购买域名 1.在如下网址购买,价格不是很贵,几块钱一年的都有:https://wanwang.aliyun.com/domain/?spm=5176.100251.111252.24.4ddd4f ...
- SpringCloud入门01之基础知识
一.Spring Cloud 什么是spring cloud, 为什么要使用微服务架构? 参考度娘 Spring Cloud是一系列框架的有序集合, 它利用Spring Boot的开发便利性巧妙地简化 ...
- 最新 竞网java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.竞网等10家互联网公司的校招Offer,因为某些自身原因最终选择了竞网.6.7月主要是做系统复习.项目复盘.LeetCode ...
- 怎么通过外网来访问自己在Tomcat服务器中配置的项目
目前还没有试验过 https://blog.csdn.net/qingyisuo/article/details/80086105
- jqGrid取消所有选中
// 获取所有选中行id var jqGridRowid=$("#jqGrid").jqGrid("getGridParam","selarrrow& ...