为 z-OS 配置 DB2

IBM DB2 for z/OS 支持使用存储在 DB2 for z/OS 通信数据库 (CDB) (目录表集合)中存储的信息访问远程 DRDA 应用程序服务器。

说明
SYSIBM。位置 定义远程关系数据库所需的目录表,包括地址 (TCP/IP 端口) 、安全性和命名约定 (别名) 。
SYSIBM。IPNAMES 用于定义地址 (TCP/IP 地址或别名) 和安全 (身份验证和加密) 所需的目录表。
SYSIBM。IPLIST 可选目录表,用于在使用故障转移时定义地址 (TCP/IP 地址或别名) 。
SYSIBM。用户名 用于定义身份验证映射的可选目录表。

DB2 for z/OS 通信数据库表。

可以使用动态 SQL 语句(本地 (例如 DB2 管理员、QMF、SPUFI) )或远程 ((例如具有 SQL Server Management Studio) 的 Microsoft Data Provider for DB2)更新 CDB 表。

DI_Deployment_MsDrdaService1

DB2 for z/OS 通信数据库表。

SQL Server Management Studio

将DB2 的 Microsoft OLE DB 提供程序与 SQL Server Management Studio 和分布式查询处理器 (DQP) 链接服务器配合使用,可以将 DB2 for z/OS 配置数据库 (CDB) 配置为通过 TCP/IP 网络连接与 DRDA 服务启用 DRDA 连接。

  1. “开始”菜单上,选择“Microsoft Server Tools 18”,然后选择“SQL Server Management Studio 18”。

  2. 在“ 连接到服务器 ”对话框中,输入 服务器名称 (例如 LOCALHOST) 。 选择 “身份验证模式” ,输入 “登录名”“密码”。 然后选择“连接” 。

  3. “Microsoft SQL Server Management Studio”菜单中,选择“新建查询”。

  4. 将以下示例复制并粘贴到查询编辑器窗口中的 SQLQuery1.sql 文件中,然后修改突出显示的黄色粗体文本,以匹配 DB2 实例、DRDA 服务和 SQL Server 数据库的值。

SQL Server链接服务器名称

这些系统存储过程定义用于连接到 DB2 for z/OS 的SQL Server链接服务器名称。 (可选)或者,如果没有权限,可以要求 DB2 管理员更新 DB2 连接数据库表。

-- ----------------------------------  
-- Microsoft Service for DRDA Example  
-- ----------------------------------  
-- Drop existing linked server by name  
EXEC sp_dropserver  
@server = 'DRDA_AS_Example',  
@droplogins = 'droplogins';  
-- Add linked server for use with Microsoft OLE DB Provider for DB2 (DB2OLEDB)  
EXEC sp_addlinkedserver   
@server = 'DRDA_AS_Example',   
@srvproduct = 'Microsoft OLE DB Provider for DB2',  
@provider = 'DB2OLEDB',   
@catalog = 'DSN1D037',  
@provstr ='Provider=DB2OLEDB;Initial Catalog=DSN1D037;Network Transport Library=TCPIP;Host CCSID=37;PC Code Page=1252;Network Address=SYS1;Network Port=446;Package Collection=HISDEMO;Default Schema=HISDEMO;Default Qualifier=HISDEMO;DBMS Platform=DB2/NT'  
-- Add linked server login by specifying valid DB2 user identifer and password  
EXEC sp_addlinkedsrvlogin   
@rmtsrvname = 'DRDA_AS_Example',   
@rmtuser = 'HISDEMO',   
@rmtpassword = 'HISDEMO';  
-- List linked servers  
EXEC sp_linkedservers;  
-- Specify linked server option to support Remote Procedure Call (to allow execution of DB2 stored procedures)  
EXEC sp_serveroption   
@server =  'DRDA_AS_Example',  
@optname =  'RPC OUT',  
@optvalue =  'TRUE' ;  
-- List linked servers options  
EXEC sp_helpserver;  
  

使用 SQL Server Management Studio 定义SQL Server链接服务器。

正在更新 SYSIBM。LOCATIONS 表

这些系统存储过程定义SQL Server Pass-Thru查询,用于在 DB2 for z/OS 连接数据库中定义 LOCATION。

DB2 for z/OS 说明
LOCATION 指定一个与目标名称匹配的值,SQL Server数据库名称 (例如 NWIND) 。

如果无法指定与目标SQL Server数据库 (匹配的 LOCATION 名称值,例如 LOCATION 名称正在使用中;SQL Server数据库名称) 太长,请使用 DBALIAS 和 drdaDatabaseAliases) (MsDrdaService.exe.config 条目来指示 DRDA 服务如何解释 LOCATION 和 DBALIAS 并将其映射到相应的SQL Server数据库名称。

LOCATION 称为 DRDA RDBNAME (关系数据库名称) 。

LOCATION 称为SQL Server数据库名称或初始目录。
LINKNAME 此值用于关联 SYSIBM 中的记录。SYSIBM 中记录的 LOCATIONS 表。IPNAMES、SYSIBM。IPLIST 和 SYSIBM。USERNAMES 表。 在兼容模式下运行 DB2 for z/OS 时,此值限制为 8 个字符。
IBMREQD 指定“N”。
端口 指定 TCP/IP 端口的值,供SQL Server计算机上运行的 DRDA 服务使用。 例如,默认 DRDA 端口号为 446。
Tpn 指定“”。 DRDA 服务不支持 (事务程序名称) 备用 TPN。
DBALIAS 如果无法在 LOCATION 字段中指定此值,请指定一个与目标名称SQL Server数据库名称 (匹配的值,例如 NWIND) 。 使用 DBALIAS 时,必须利用 drdaDatabaseAliases) (MsDrdaService.exe.config 条目来指示 DRDA 服务如何解释 LOCATION 和 DBALIAS 并将其映射到相应的SQL Server数据库名称。
信任 指定“N”。 DRDA 服务不支持受信任的连接。
安全 使用安全套接字第 4.0 层或传输层安全性 1.0 连接到 DRDA 服务时,请指定“Y”。

DB2 for z/OS 连接数据库 SYSIBM。LOCATION 表。

-- --------------------------------------------------  
-- Distributed Relational Database Entries  
-- --------------------------------------------------  
--SYSIBM.LOCATIONS  
--LOCATION VARCHAR(128) NOT NULL  
--LINKNAME VARCHAR(24) NOT NULL  
--IBMREQD CHAR(1) NOT NULL WITH DEFAULT 'N'  
--PORT VARCHAR(96) NOT NULL WITH DEFAULT '446'  
--TPN VARCHAR(192) NOT NULL WITH DEFAULT X’07F6C4C2’  
--DBALIAS VARCHAR(128) NOT NULL   
--TRUSTED CHAR(1) NOT NULL WITH DEFAULT 'N'  
--SECURE CHAR(1) NOT NULL WITH DEFAULT 'N'  
EXECUTE ('  
DELETE FROM SYSIBM.LOCATIONS WHERE LINKNAME = ''HISDRDA1''  
') AT DRDA_AS_Example;  
GO  
EXECUTE ('  
INSERT INTO SYSIBM.LOCATIONS VALUES (''CONTOSO'', ''HISDRDA1'', ''N'', ''446'', '''', '''', ''N'', ''N'')  
') AT DRDA_AS_Example;  
GO  

SYSIBM。DB2 中用于一个 DRDA 服务 (“HISDRDA1”) 的 LOCATIONS 条目。

正在更新 SYSIBM。IPNAMES 表

这些系统存储过程更新 SYSIBM。DB2 for z/OS 上的 IPNAMES 表。

DB2 for z/OS 说明
LINKNAME 此值用于关联 SYSIBM 中的记录。SYSIBM 中记录的 IPNAMES 表。LOCATIONS,SYSIBM。IPLIST 和 SYSIBM。USERNAMES 表。
SECURITY_OUT 指定“A”以发送授权标识符。

(可选)指定“D”以发送加密的授权标识符。

(可选)指定“E”以发送加密的授权标识符和加密数据。

(可选)指定“P”以发送加密的授权标识符、加密密码和加密数据。

不要指定“R”。 DRDA 服务不支持 RACF Pass 票证。
用户名 指定“”以发送与正在运行的任务或程序登录的用户关联的授权标识符。

(可选)指定“O”以使用 SYSIBM 转换出站授权标识符。用户名。

不要指定“S”。 DRDA 服务不支持受信任的连接。
IBMREQD 指定“N”。
IPADDR 为运行 DRDA 服务的计算机的 TCP/IP 地址或别名指定值。

(可选)在配置依赖于 SYSIBM 中的 IPADDR 条目的容错故障转移时,将此字段留空。IPLIST 表。

DB2 for z/OS 连接数据库 SYSIBM。IPNAMES 表。

--SYSIBM.IPNAMES  
--LINKNAME VARCHAR(24) NOT NULL  
--SECURITY_OUT CHAR(1) NOT NULL WITH DEFAULT 'A'  
---A=Already Verified  
---D=Data Encrypt  
---E=Auth Encrypt  
---P=Password with Authorization ID  
---R=RACF PassTicket  
--USERNAMES CHAR(1) NOT NULL WITH DEFAULT  
--IBMREQD CHAR(1) NOT NULL WITH DEFAULT 'N'  
--IPADDR VARCHAR(254) NOT NULL WITH DEFAULT  
EXECUTE ('  
DELETE FROM SYSIBM.IPNAMES WHERE LINKNAME = ''HISDRDA1''  
') AT DRDA_AS_Example;  
GO  
EXECUTE ('  
INSERT INTO SYSIBM.IPNAMES VALUES (''HISDRDA1'', ''P'', ''O'', ''N'', ''123.34.45.56'')  
') AT DRDA_AS_Example;  
GO  

SYSIBM。DB2 中用于一个 DRDA 服务 (“HISDRDA1”) 的 IPNAMES 条目。

正在更新 SYSIBM。IPLIST 表

这些系统存储过程更新 SYSIBM。DB2 for z/OS 上的 IPLIST 表。 IPLIST 表允许在将 DRDA 服务与服务器列表 (SRVLST) 用于容错故障转移时,为给定 LOCATION 指定多个 IP 地址。

DB2 for z/OS 说明
LINKNAME 此值用于关联 SYSIBM 中的记录。SYSIBM 中记录的 IPNAMES 表。LOCATIONS,SYSIBM。IPLIST 和 SYSIBM。USERNAMES 表。
IPADDR 为运行 DRDA 服务的一组计算机指定每个 TCP/IP 地址或别名的值,以提供容错故障转移。
IBMREQD 指定“N”。

DB2 for z/OS 连接数据库 SYSIBM。IPNAMES 表。

--SYSIBM.IPLIST  
--LINKNAME VARCHAR(24) NOT NULL  
--IPADDR VARCHAR(254) NOT NULL WITH DEFAULT  
--IBMREQD CHAR(1) NOT NULL WITH DEFAULT 'N'  
EXECUTE ('  
DELETE FROM SYSIBM.IPLIST WHERE LINKNAME = ''HISDRDA1''  
') AT DRDA_AS_Example;  
GO  
EXECUTE ('  
INSERT INTO SYSIBM.IPLIST VALUES (''HISDRDA1'', ''123.34.45.56'', ''N'')  
') AT DRDA_AS_Example;  
GO  
EXECUTE ('  
INSERT INTO SYSIBM.IPLIST VALUES (''HISDRDA1'', ''123.34.45.57'', ''N'')  
') AT DRDA_AS_Example;  
GO  

SYSIBM。用于连接到两个 DRDA 服务的 IPLIST 条目 (“HISDRDA1”和“HISDRDA2”) 。

正在更新 SYSIBM。USERNAMES 表

这些系统存储过程更新 SYSIBM。DB2 for z/OS 上的 USERNAMES 表。

DB2 for z/OS 说明
TYPE 指定“O”以转换出站授权标识符。

不要指定“I”。 DRDA 服务不支持作为 DRDA 应用程序请求者客户端进行操作。

不要指定“S”。 DRDA 服务不支持受信任的连接。
AUTHID 指定要转换的授权标识符。
LINKNAME 此值用于关联 SYSIBM 中的记录。SYSIBM 中记录的 IPNAMES 表。LOCATIONS,SYSIBM。IPLIST 和 SYSIBM。USERNAMES 表。
NEWAUTHID 指定授权标识符的已翻译值。
PASSWORD 指定密码。
IBMREQD 指定“N”。

DB2 for z/OS 连接数据库 SYSIBM。USERNAMES 表。

--SYSIBM.USERNAMES  
--TYPE CHAR(1) NOT NULL  
---I=Inbound transalation  
---O=Outbound translation  
---S=Outbound AUTHID trusted connection  
--AUTHID VARCHAR(128) NOT NULL WITH DEFAULT  
--LINKNAME VARCHAR(24) NOT NULL  
--NEWAUTHID VARCHAR(128) NOT NULL WITH DEFAULT  
--PASSWORD VARCHAR(24) NOT NULL  
--IBMREQD CHAR(1) NOT NULL WITH DEFAULT 'N'  
EXECUTE ('  
DELETE FROM SYSIBM.USERNAMES WHERE LINKNAME = ''HISDRDA1''  
') AT DRDA_AS_Example;  
GO  
EXECUTE ('  
INSERT INTO SYSIBM.USERNAMES VALUES (''O'', ''DBUSRID'', ''HISDRDA1'', '''', ''DBUSRPWD'', ''N'')  
') AT DRDA_AS_Example;  
GO  
  
EXECUTE ('  
SELECT * FROM SYSIBM.LOCATIONS  
') AT DRDA_AS_Example;  
EXECUTE ('  
SELECT * FROM SYSIBM.IPNAMES  
') AT DRDA_AS_Example;  
EXECUTE ('  
SELECT * FROM SYSIBM.USERNAMES  
') AT DRDA_AS_Example;  
GO  

SYSIBM。DB2 中一个 DRDA 服务 (“HISDRDA1”) 的 USERNAME 条目。

DRDA Connections

DRDA AR(包括 IBM DB2 for z/OS)提供多种方法来定义远程 DRDA 连接-网络地址、端口和身份验证。 例如,IBM DB2 for z/OS 依赖于 CDB (连接数据库) 由一组 SYSIBM.* 表 (LOCATIONS、IPNAMES、USERNAMES) 组成。

此外,IBM DB2 for z/OS 支持多种方法启动到远程系统的 DRDA 连接。 本地附加到 DB2 for z/OS 的 COBOL for TSO 程序可以使用基于 SQL CONNECT 语句的 () 显式连接或通过 DRDA 服务连接到SQL Server,或者 (b) 基于 SQL 3 部分对象标识符 (CATALOG 的隐式连接。模式。表) 。

DI_Deployment_MsDrdaService2

图 1. DRDA 定向数据访问支持隐式连接和显式连接。

Connect 语句

一种常见技术是使用 SQL CONNECT 语句,使用预配置的身份验证、内联身份验证凭据或映射凭据创建从本地 DRDA AR 到远程 DRDA AS 的显式连接。

CONNECT TO CONTOSO; SELECT * FROM DSN8910.DEPT  

CONNECT TO :LOC USER :USERID USING :PASSWORD; SELECT * FROM DSN8910.DEPT  

SQL CONNECT 语句。

由三部分构成的对象标识符

另一种常见技术是在 SQL 语句中使用由 3 部分构成的对象标识符来创建从本地 DRDA AR 到远程 DRDA AS 的隐式连接。

CONNECT TO :LOC USER :USERID USING :PASSWORD; SELECT * FROM DSN8910.DEPT  

在 SQL 语句中使用由 3 部分构成的对象标识符。

由三部分构成的对象标识符的别名

(可选)可以将由 3 部分组成的名称封装在由 2 部分构成的本地表别名中。 若要定义用于 DB2 for z/OS 和远程 DRDA 服务器的别名,必须遵循以下步骤。

  • 在本地 DB2 for z/OS 数据库中定义别名。

    CREATE ALIAS DSN8910. FOR RDB1.COL1.TABLE1  
    
  • 在远程SQL Server数据库中定义相应的同义词或视图。

    CREATE SYNONYM [DSN8910].[ADEPT] FOR [DSN8910].[DEPT]  
    CREATE VIEW [DSN8910].[VDEPT] ("DEPTNO", "DEPTNAME", "MGRNO", "ADMRDEPT") AS SELECT ALL DEPTNO , DEPTNAME, MGRNO , ADMRDEPT FROM DSN8910.DEPT  
    
  • 在 SQL 语句中引用本地 DB2 for z/OS 别名。

    SELECT * FROM CONTOSO.DSN8910.ADEPT  
    SELECT * FROM CONTOSO.DSN8910.VDEPT  
    

    在 SQL 语句中定义和使用 DB2 for z/OS 别名,该别名由 3 部分构成的对象标识符。

使用 QMF 验证 DB2 for z/OS 到 DRDA 服务的连接

可以使用 QMF 和许多其他驻留主机的 DB2 客户端程序验证 DB2 for z/OS 到 DRDA 服务的连接。

  1. “开始”菜单上,依次指向“所有程序”、“Microsoft Host Integration Server 2010”、“工具”和“3270 客户端”。

  2. “Host Integration Server 3270 Client (3270 Client) ”窗口中,单击“ 会话 ”菜单,然后单击“ 会话配置”。

  3. “3270 设置”对话框中,选择“TN3270E服务器连接”,在“服务器名称”编辑框中键入“SYS1”,然后单击“确定”。

  4. “会话 ”菜单上,单击“ 连接”。 3270 客户端将显示 SSCP 屏幕。 在光标 (左下角) ,键入 TSO HISDEMO,然后按 Enter

  5. TSO/E LOGON 屏幕上,在光标处 (密码 字段) ,输入 HISDEMO,然后按 Enter

  6. “欢迎” 屏幕上,按 Enter 检索其余屏幕数据。 在 READY 提示符下键入 ISPF,然后按 Enter

  7. “ISPF 主选项菜单” 屏幕上,按 Enter 清除 IBM 许可证文本。 在光标 (Option) ,键入 U,然后按 Enter

  8. “用户选项选择菜单” 屏幕上,在光标 (SELECT OPTION) ,键入 B,然后按 Enter

  9. “DB2I 主选项菜单” 屏幕上,在光标 (COMMAND) 键入 Q,然后按 Enter

  10. QMF 主面板 屏幕上,在光标 (COMMAND) 按 F6

  11. “SQL 查询” 屏幕的光标 (COMMAND) ,按 Tab,然后再次按 Tab 。 在 游标 (SQL QUERY 屏幕标签) 下方的两行处,键入 SELECT * FROM NWIND。Dbo。客户,然后按 F2

  12. “报表” 屏幕上,查看查询的结果。 (可选)按 F8 向前滚动,然后按 F11 向右滚动。 按 F6 返回到 SQL 查询 屏幕。 按 F3 返回到 QMF 主面板 屏幕。

DB2 for z/OS 绑定复制静态 SQL 包

可以将静态 SQL 包从 DB2 for z/OS 绑定到 DRDA AS,用于定义静态 SQL 包 XML 文件,以便以后创建相应的SQL Server存储过程。 可以使用 3270 终端仿真程序从 DB2 绑定包实用工具或 DB2 管理实用工具运行 DB2 for z/OS 绑定复制命令。

DB2 绑定包实用工具

  1. “开始”菜单上,依次指向“所有程序”、“Microsoft Host Integration Server 2010”、“工具”和“3270 客户端”。

  2. “Host Integration Server 3270 Client (3270 Client) ”窗口中,单击“ 会话 ”菜单,然后单击“ 会话配置”。

  3. “3270 设置”对话框中,选择“TN3270E服务器连接”,在“服务器名称”编辑框中键入“SYS1”,然后单击“确定”。

  4. “会话 ”菜单上,单击“ 连接”。 3270 客户端将显示 SSCP 屏幕。 在光标 (左下角) ,键入 TSO HISDEMO,然后按 Enter

  5. TSO/E LOGON 屏幕上,在光标处 (密码 字段) ,输入 HISDEMO,然后按 Enter

  6. “欢迎” 屏幕上,按 Enter 检索其余屏幕数据。 在 READY 提示符下键入 ISPF,然后按 Enter

  7. “ISPF 主选项菜单” 屏幕上,按 Enter 清除 IBM 许可证文本。 在光标 (Option) ,键入 U,然后按 Enter

  8. “用户选项选择菜单” 屏幕上,在光标 (SELECT OPTION) ,键入 B,然后按 Enter

  9. “DB2I 主选项菜单” 屏幕上,在光标 (COMMAND) ,键入 D,然后按 Enter

  10. DB2I DEFAULTS PANEL 1 屏幕上,在光标 (COMMAND) ,按 Tab 两次将光标置于 DB2 NAME 字段上,键入 DSN1,然后按 Enter

  11. DB2I DEFAULTS PANEL 2 屏幕上,在光标 (COMMAND) 按 Enter

  12. “DB2I 主选项菜单” 屏幕上,在光标 (命令) ,键入 5,然后按 Enter

  13. BIND/REBIND/FREE 屏幕上,在光标处 (COMMAND) 键入 4,然后按 Enter

  14. “绑定包” 屏幕上,在“ 位置名称 ”字段中键入“HISDRDA1”,然后按 Tab。在 “集合 ID ”字段中,键入“DBO”,然后按 Tab。在 “DBRD”COPY“选项字段中,键入 COPY,然后按 Tab。在 “集合 ID ”字段中,键入“DBO”,然后按 Tab。在 “PACKAGE-ID ”字段中,键入“PKGAREAS”,然后按 Tab“ACTION ON PACKAGE ”字段中找到光标。 在 “ACTION ON PACKAGE ”字段中,键入“ADD”,然后按 Enter

DB2 管理员 绑定复制包

  1. “开始”菜单上,依次指向“所有程序”、“Microsoft Host Integration Server 2010”、“工具”和“3270 客户端”。

  2. “Host Integration Server 3270 Client (3270 Client) ”窗口中,单击“ 会话 ”菜单,然后单击“ 会话配置”。

  3. “3270 设置”对话框中,选择“TN3270E服务器连接”,在“服务器名称”编辑框中键入“SYS1”,然后单击“确定”。

  4. “会话 ”菜单上,单击“ 连接”。 3270 客户端将显示 SSCP 屏幕。 在光标 (左下角) ,键入 TSO HISDEMO,然后按 Enter

  5. TSO/E LOGON 屏幕上,在光标处 (密码 字段) ,输入 HISDEMO,然后按 Enter

  6. “欢迎” 屏幕上,按 Enter 检索其余屏幕数据。 在 READY 提示符下键入 ISPF,然后按 Enter

  7. “ISPF 主选项菜单” 屏幕上,按 Enter 清除 IBM 许可证文本。 在光标 (Option) 键入 M,然后按 Enter

  8. “用户选项选择菜单” 屏幕上,在光标 (SELECT OPTION) ,键入 B,然后按 Enter

  9. “IBM 产品面板” 屏幕上,在光标 (Option) 键入 3,然后按 Enter

  10. “DB2 管理员 – Active DB2 Systems”屏幕上,在光标 (DB2 系统名称) ,键入 DSN1,然后按 Enter

  11. “DB2 管理员 – DB2 管理菜单”屏幕上,按 Enter 清除 IBM 许可证文本。 在光标 (Option) 键入 1,然后按 Enter

  12. “DB2 管理员 – DSN1 系统目录”屏幕上,在光标 (Option) 键入 K,然后按 Enter

  13. “DB2 管理员 – DSN1 包”屏幕上,在光标 (Option) ,重复按 F8 以向前滚动浏览列表,直到看到源集合和包名称。 (可选)按 F7 滚动到列表中的上一项。 在与源集合和包名称对应的行上,在列 S 下键入 BC,然后按 Enter

  14. “DB2 管理员 – DSN1 绑定复制包”屏幕上,在光标 (命令) ,按 Tab 将光标置于“位置”字段中,键入目标位置名称 (例如“HISDRDA1”) 。 按 Tab 将光标置于 “集合 ”字段中,键入目标架构名称 (例如“DBO”) ,然后按 Enter