以下部分提供了有关使用 DRDA Microsoft 服务(DRDA 服务)规划和构建解决方案的帮助。
规划
企业 IT 组织需要提供新解决方案,同时提高开发人员效率和降低成本。 DRDA 服务提供技术和工具,使 IT 专业人员和企业开发人员能够基于 Microsoft SQL Server 部署新解决方案,同时基于 IBM DB2 连接现有工作负载。 下图提供了 DRDA 服务解决方案中涉及的技术和组件的高级体系结构,该解决方案将 IBM DB2 客户端连接到Microsoft SQL Server 数据库。
上图显示了通过 DB2 for z/OS 和 DRDA 服务将 IBM CICS for z/OS 客户端程序连接到远程Microsoft SQL Server 数据库的计划。
DRDA(分布式关系数据库体系结构)Microsoft服务是一个应用程序服务器(AS),它使 DRDA 应用程序请求程序(AR)客户端(如 IBM DB2 for z/OS 和 DB2 for IBM i)能够执行映射到 SQL Server 存储过程的静态 SQL 语句。 DRDA 服务在分阶段工作负荷迁移期间为企业提供主机启动的数据集成,或用于支持远程批处理或商业智能解决方案的日常运营。
DRDA 服务提供以下功能。
通过 TCP/IP 网络连接从 DRDA 客户端访问 SQL Server。
安全身份验证和数据加密。
分布式两阶段提交事务。
静态 SQL 语句映射到 SQL Server 的存储过程调用。
有限的动态数据操作语言命令映射到 T-SQL 命令。
数据类型映射和转换、字符串编码和日期/时间格式设置。
错误代码和文本映射到 DRDA 回复消息和格式化的错误对象。
用于记录流和命令的跟踪实用工具,用于排查问题。
分布式关系数据库体系结构
IBM DB2 客户端和服务器使用分布式关系数据库体系结构(DRDA)协议和格式进行通信。 DRDA 服务充当 DRDA 应用程序服务器(AS),使 DRDA 应用程序请求程序(AR)客户端能够与Microsoft SQL Server 数据库进行交互。 DRDA 服务支持一组有限的 DRDA 代码点,如开放组(http://www.opengroup.org)发布的体系结构引用中定义的。
DRDA 版本 5,第 1 卷:分布式关系数据库体系结构(DRDA)
DRDA 版本 5,第 2 卷:格式化数据对象内容体系结构(FD:OCA)
DRDA 版本 5,第 3 卷:分布式数据管理(DDM)体系结构
可以从开放组书店下载 DRDA V5 第 3 卷:分布式数据管理体系结构、出版物编号 C114(https://go.microsoft.com/fwlink/?LinkID=219127&clcid=0x409)。
IBM DB2 服务器和客户端
Microsoft、IBM 和第三方供应商采用各种 DRDA 应用程序请求程序(AR)客户端技术实现 DRDA 协议和格式。 DRDA 服务支持来自符合 DRDA 版本 5 标准的 DRDA AR 客户端的入站连接,包括这些 IBM 和 Microsoft 产品中打包的 DRDA AR。
适用于 z/OS 12 和 11 版本的 IBM DB2
IBM DB2 for IBM i 7.4、7.3 和 7.2
IBM DB2 for LUW 11.5、11 和 10.5
Microsoft Host Integration Server 包括两个 DRDA 应用程序请求程序客户端,一个客户端旨在连接到远程 IBM DB2 数据库服务器,一个用于连接到远程 IBM Informix 数据库服务器。 这些 DRDA AR 支持 DRDA 版本 5.0 的子集。 DB2 的 Microsoft 客户端支持 DB2 的这些数据提供程序:
Microsoft ODBC Driver for DB2
用于 DB2 的 Microsoft OLE DB 提供程序
适用于 DB2 的 Microsoft ADO.NET Framework 数据提供程序
Microsoft适用于 DB2 的 BizTalk 适配器
DRDA 服务为 Microsoft DRDA 客户端和 IBM DRDA 客户端提供基本的 DRDA 支持。
企业单一 Sign-On
DRDA 服务依赖于Microsoft企业单一 Sign-On 将绑定主机凭据(例如 RACF 用户授权标识符)映射到外绑定的 Windows Active Directory (AD) 凭据,从而允许 DRDA 服务使用集成安全性连接到 SQL Server。
上图显示了在启用 Enterprise Single Sign-One 的情况下,DRDA 服务能够将入站 DRDA 凭据映射到出站 SQL Server 凭据。
主机发起的 ESSO 需要在 Active Directory 中具有提升的权限(Kerberos 约束委派和使用任何身份验证协议)。 ESSO 需要 DRDA 服务连接到的 SQL Server 计算机的 Kerberos 服务主体名称。 .
Microsoft SQL Server
企业管理员和开发人员依赖于 Microsoft SQL Server 为业务线应用程序构建任务关键型数据平台。 SQL Server 可帮助企业通过整个组织的数据发现来解锁新见解,同时提供一致的数据和大规模分析和数据仓库的工具。 DRDA 服务可以根据 Microsoft SQL Server 将现有的 IBM 主机工作负载连接到新解决方案,以实现异类企业应用程序和商业智能。
DRDA 服务依赖于 Microsoft SQL Server 网络客户端和 ADO.NET Framework Data Provider for SQL Server 进行连接和数据访问 SQL Server 数据库。 有关 Microsoft SQL Server 的详细信息,请参阅 http://www.microsoft.com/sql。
建筑
DRDA 服务支持从远程 IBM DB2 客户端程序和本地Microsoft SQL Server 数据库的连接,方法是提供基于行业标准 DRDA(分布式关系数据库体系结构)的兼容性服务,以一组协议代码点和格式定义 DB2 客户端到服务器通信。 DRDA 服务以应用程序服务器(AS)的形式在 DRDA 中运行。 IBM DB2 客户端程序(例如 COBOL TOS 和 CICS for z/OS)本地附加到 DB2 for z/OS,并在 DRDA 中作为应用请求者 (AR) 客户端发挥作用。 DRDA 服务是一个 Windows 服务程序,它托管 Microsoft .NET Framework 的实例,使用适用于 SQL Server 的 Microsoft ADO.NET Framework 数据提供程序和基础 Microsoft SQL Server 网络客户端连接到本地或远程Microsoft SQL Server。
上图显示了将 IBM DB2 for z/OS 连接到 Microsoft SQL Server 的 DRDA 服务解决方案。
连接性
分布式关系数据库体系结构
DRDA 服务将 DRDA 代码点和数据格式转换为相应的Microsoft ADO.NET 连接、事务、命令、数据类型和错误对象。 DRDA 服务的主要功能是将 DB2 包的静态 SQL 和语句执行映射到Microsoft SQL Server 存储过程和 CALL 语句。 DRDA 服务根据各种 DRDA 管理器处理体系结构中定义的 DRDA 协议流。
网络传输和交易
DRDA 服务支持通过 TCP/IP 网络的入站经过身份验证的 DRDA 客户端的连接。 DRDA 服务不支持 SNA APPC 在 LU6.2 上使用 HPR/IP(高性能路由通过互联网协议)。 为了连接到 SQL Server,DRDA 服务使用 Microsoft ADO.NET 提供程序和 SQL 网络客户端作为底层支持,支持内存中、命名管道和 TCP/IP 网络连接。
默认情况下,DRDA 服务将侦听默认 DRDA 端口 446 上的传入连接请求,并接受任何 DRDA 客户端连接请求。 可选地,DRDA 服务可以侦听另一个预配置的端口号。 此外,为了提高安全性,可以将 DRDA 服务配置为接受来自远程网络地址预定义列表的绑定连接请求。
为了在网络中实现可靠的更新,DRDA 服务支持 DRDA DUW(分布式工作单元)的两阶段提交事务。 DRDA DUW 事务通过 Microsoft ADO.NET Framework SQL Server 数据提供程序及其底层 SQL 网络客户端映射到 SQL Server 事务。
资源共享池和故障转移
DRDA 服务通过配置 DRDA 服务应用配置文件中的 SQL Server 连接字符串参数中的 SQL 客户端连接池选项来支持 SQL 客户端连接池。此外,DRDA 服务还提供内部连接池,将入站 DRDA AR 客户端连接和身份验证凭据映射到出站 SQL Server 数据库连接和凭据。
DRDA 服务主服务器和合作伙伴服务器协同工作,实现容错故障转移。
DRDA 服务可以在两台(2)台服务器(每台计算机一台)中运行,以提供基本的容错能力。 当 DRDA AR 客户端连接到 SQL Server 数据库时,DRDA 服务将返回一个 DRDA SRVLST (服务器列表),其中包含数据服务器实例的加权列表。 如果主要 DRDA 服务发生故障转移,DRDA AR 可以使用这些信息连接到一对 DRDA 服务计算机的备选成员。 与 SQL Server 群集或镜像相结合,此技术可以提供合理的容错故障转移保护级别。
身份验证和加密
为了保护信息,DRDA 服务支持常见的 DRDA 身份验证和数据加密技术。 例如,DRDA 服务可以支持基本身份验证(纯文本 EBCDIC 编码的用户名和密码)或使用 256 位高级加密标准(AES)进行安全身份验证。 此外,DRDA 服务还可以使用安全套接字层 (SSL) V3.0 或传输层安全性 (TLS) V1.0 支持组合身份验证和加密。
为了提供集成身份验证,DRDA 服务可以使用Microsoft企业单一 Sign-On(ESSO)将绑定凭据验证和映射与使用 Windows SSPI(安全支持提供程序接口)的外绑定 SQL Server 身份验证相结合。 例如,DRDA 服务可以使用 ESSO 将 IBM RACF(资源访问控制设施)用户名和密码映射到 Microsoft Windows Active Directory 域\用户名,以便与远程 SQL Server 数据库集成安全性连接。
兼容性
静态和动态 SQL
主要是,DRDA 服务通过将包语句映射到 SQL Server 存储过程,使 DB2 客户端程序能够针对 DB2 包执行远程定义的静态 SQL。 例如,当 DB2 管理员或程序员将一个 DB2 包绑定到 SQL Server 时,DRDA 服务会将 DRDA BNDSQLSTT(绑定 SQL 语句)转换为 SQL Server T-SQL CREATE PROCEDURE 语句。 当 DB2 程序执行远程包语句时,DRDA 服务会将 DRDA OPNQRY (Open Query) 或 EXCSQLSTT (Execute SQL 语句)转换为 CALL 语句。
其次,DRDA 服务支持有限的动态 SQL作,以允许 DB2 客户端程序执行远程 SQL Server T-SQL 命令。 例如,DB2 管理员可以利用 Z/OS 的 QMF(查询管理工具)来查询远程 SQL Server 表。
SQL 语法
DRDA 服务使用一款有限的功能来将 DB2 ANSI 语法转换为 SQL Server T-SQL 命令语法的工具,该工具用于绑定包、执行静态和动态 SQL 语句。 (可选)DRDA 服务以基于 SQL Server CLR 的函数的形式提供其他兼容的 DB2 函数。
DRDA 服务提供一个可替换的包绑定组件,用于将 DRDA BNDSQLSTT(绑定 SQL 语句)加工为 SQL Server 的 T-SQL CREATE PROCEDURE 语句。 例如,ISV(独立软件供应商)或企业开发人员可以实现自定义的包绑定组件,以支持语法、数据类型、编码或其他所需的转换。
目录和架构名称
DRDA 服务提供高级对象标识符的基本映射,包括目录和架构名称。 例如,DRDA 服务可以将入站的 DRDA RDBNAM(关系数据库名称)映射到出站的 SQL Server 数据库名称。 此外,DRDA 服务可以将入站的 DRDA COLLID(集合标识符)映射到出站的 SQL Server 架构名称。
数据类型转换
为了支持在 Windows作系统上运行的 SQL Server 数据库与在 z/OS 和 IBM i 上运行的 DB2 服务器之间的跨平台互作性,DRDA 服务提供 XML 文件(DB2ToMSSql.xml 和 MSSQLToDB2.xml)中定义的一组数据类型映射和转换。 例如,DRDA 服务可以映射并转换传入的 DB2 小数为输出的 SQL Server 货币类型。
字符串编码
DRDA 服务支持从 DB2 EBCDIC 字符串编码转换为 SQL Server ANSI 和 UNICODE 编码。 (可选)DRDA 服务支持修改的可替换 Windows EBCDIC 到 UNICODE NLS(国家语言支持)转换文件。 此外,DRDA 服务还依据预定义的映射,使用 CCSID(代码字符集标识符)的十六进制值对,提供内联字符替换功能。
日期/时间格式
DRDA 服务提供内联 DB2 DATE/TIME/TIMESTAMP 格式转换为 SQL Server 日期/时间/datetime2 格式,并进行字符串字面值转换。 例如,DRDA 服务可以将格式为 YYYY-MM-DD-hh.mm.ss.tttttt 的入境 DB2 格式的 TIMESTAMP 字符串文本值转换为格式为 YYYY-MM-DD hh:mm:ss.tttttt 的出境 SQL Server datetime2(6)值。
管理
在启动 DRDA 服务之前,管理员可以通过修改 MsDrdaService.exe.config 文件以及辅助 XML 文件(数据类型和错误映射)来配置 DRDA 服务。 (可选)DRDA 服务提供对 MsDrdaService.exe.config 的即时读取,以支持动态配置更新。
配置
安装后,IT 专业人员可以通过编辑 MsDrdaService.exe.config 文件和更新其他 XML 文件来自定义 DRDA 服务配置。 下面是 DRDA 服务组件、可配置项和配置存储的列表。
组件 | 物品 | 配置存储 |
---|---|---|
DRDA 服务 | 服务凭据 安全策略权限 连接管理器 安全管理器 SQL 访问管理器 数据库管理器 |
Windows 注册表 MsDrdaService.exe.config MSDRDAErrorMappings.xml |
数据转换 | 数据类型映射 日期、时间和日期时间格式 |
DB2ToMSSql.xml MSSQLToDB2.xml MsDrdaService.exe.config |
代码页转换 | 自定义代码页 代码点映射 |
Windows 注册表 MsDrdaService.exe.config |
绑定监听器 | 默认侦听器 自定义侦听器 |
MsDrdaService.exe.config |
跟踪侦听器 | 文本侦听器 控制台侦听器 ETW 侦听器 自定义侦听器 |
MsDrdaService.exe.config |
事件日志 | 事件 | 应用程序日志 |
性能监视器 | 计数器 | Windows 注册表 MsDrdaService.exe.config |
上表列出了可配置的 DRDA 服务组件、项和配置存储区。
追踪
DRDA 服务支持多个跟踪选项控制台侦听器跟踪、文本侦听器跟踪、事件日志侦听器、ETW(适用于 Windows 的事件跟踪)侦听器和自定义跟踪。 管理员在 Windows 控制台模式下运行 DRDA 服务时使用控制台跟踪,以将跟踪数据输出到屏幕。 管理员在 Windows 服务模式或控制台模式下运行 DRDA 服务时使用文本跟踪,以将跟踪数据输出到可读文件。 DRDA 服务会自动将事件日志侦听器跟踪项发布到 Windows 事件日志。 管理员使用 ETW 跟踪进行高速数据收集。 (可选)企业开发人员可以实现自定义跟踪侦听器,以将所有或选定的跟踪数据输出到另一个组件。
会计和日志记录
DRDA 服务支持标准 DRDA 会计码位:客户端工作站名称;客户端用户 ID;客户端应用程序名称;和客户端会计。 企业开发人员可以在其程序中指定动态值,以便填充 DRDA 客户端会计属性。 DRDA 服务在运行时读取值以填充 DRDA 服务跟踪,从而允许将问题关联到特定的应用程序和用户上下文。 (可选)企业开发人员可以实现 DRDA 服务客户跟踪侦听器,该侦听器记录 DRDA AR 客户端请求。 例如,客户跟踪侦听器可以根据客户端帐户值将所选网络和数据库访问记录到远程 SQL Server 日志记录数据库。
错误映射
DRDA 服务以 DRDA 代码点回复消息(RM)或 DRDA SQLCARD(SQL 通信区域回复数据)的形式返回 SQL Server 错误。 默认情况下,对于常见问题,DRDA 服务使用内置表将 SQL 错误代码和错误字符串映射到 DRDA 回复消息和错误。 此外,DRDA 服务使用外部 MsDrdaErrorMappings.xml 文件从 SQL Server 错误代码和错误文本映射到 SQLCODE、SQLSTATE、原因代码和错误消息。