跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

基于 InfoSphere Classic Federation Server&InfoSphere Federation Server 的大型机与 LUW 之间的数据集成

郭玮, 软件工程师, IBM
郭玮的照片
郭 玮,BM 中国软件开发中心软件工程师,InfoSphere Classic QA,拥有北京师范大学计算机应用技术硕士学位和 IBM DB2 730/731/732 认证,目前从事 Mainframe 上 Classic Products 的 Regression/FVT Test 工作。
黄雪, 软件工程师, IBM
黄雪的照片
黄 雪,IBM 中国软件开发中心软件工程师,InfoSphere Federation QA,拥有北京工商大学管理科学与工程硕士学位和 IBM DB2 730/731/733/734 认证,目前从事 LUW 上 Federation Server 的 Regression/FVT Test 工作。

简介: 本文以大型机上常见的 IMS,Adabas 数据库为例,阐述如何使用 Classic Federation Server 对 IMS 和 Adabas 数据库进行集成,并如何通过 Federation Server 再次将集成了上述两种大型机数据库的 Classic Federation Server 与 Oracle 和 Sybase 进行集成,以实现大型机上 IMS,Adabas 数据库与 LUW 上 Oracle,Sybase 数据库的联合访问。

发布日期: 2011 年 12 月 29 日
级别: 中级
访问情况 : 397 次浏览
评论: 


免费下载:IBM® DB2® Express-C 9.7.2 免费版 或者 DB2® 9.7 for Linux®, UNIX®, and Windows® 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

简介

InfoSphere Federation Server 为 LUW 平台提供了一种高效的,功能强大的多种数据源集成方案,支持包括 32/64 位平台的 DB2, SQL Server, Oracle, Sybase, Teradata, Informix 等多种关系型数据库,同时支持 xml,flat 等非关系型数据,支持 ODBC 和 JDBC 的标准数据库接口。它可将分散的数据系统中的数据联合到单个整合的视图中,同时保持各个数据源中数据的独立性和完整性,降低编译实时业务信息的成本,增加商业价值。但是,对于大型机常用的数据库系统,如 VSAM,CICS,IMS,DB2 for zOS,Adabas 等,Federation server 可以对 DB2 for zOS 进行支持,而对于其它数据库系统因为缺少接口,暂时不能直接进行集成。

InfoSphere Classic Federation Server 则是一个对大型机的数据库和文件进行标准 SQL 访问并且无需对大型机进行编程的完全的,功能强大的解决方案,可以支持 Sequential, VSAM,CICS VSAM,IMS,DB2 for zOS,CA-Datacom,CA-IDMS,Adabas 等多种文件和数据库,除了对大型机数据源提供 SQL 标准进行访问外,还可对物理大型机的数据库和文件进行逻辑映射,并且支持使用 ODBC,JDBC 和 CLI 的基于标准的接口访问。

项目背景

在客户现实的生产环境中,往往同时需要多种数据源对业务进行支持,为了满足客户对大型机数据与 LUW 数据集成的需求,即需要同时整合大型机数据库和 LUW 数据库到同一单个视图并进行透明操作, 可将已经整合多个大型机数据源的 Classic Federation Server 作为 Federation Server 的一个数据源,通过 ODBC 接口,再次和 LUW 的各种数据源进行整合,从而建立统一的视图。客户可以使用这个虚拟数据库,透明地操作大型机与 LUW 的数据。减少在大机型与 LUW 之间进行物理迁移的代价,减少集成的代码工作量,减少应用程序的维护成本,屏蔽大型机与 LUW 各种数据语义和地理上的差别,使用已有的 SQL 工具访问所有数据。

本文以大型机上常见的 IMS,Adabas 数据库为例,阐述如何使用 Classic Federation Server 对 IMS 和 Adabas 数据库进行集成,并如何通过 Federation Server 再次将集成了上述两种大型机数据库的 Classic Federation Server 与 Oracle 和 Sybase 进行集成,以实现大型机上 IMS,Adabas 数据库与 LUW 上 Oracle,Sybase 数据库的联合访问。

利用 Classic Federation Server(CF Server)集成 IMS 与 Adabas 过程解析

首先,我们分析如何通过 CF Server 实现大型机上不同数据库之间的集成。如图 1 所示,CF Server 通过不同接口与大型机上各种数据库进行连接,并将各个数据库(关系或者非关系型)中表的物理与逻辑映射关系存储在元数据目录(Metadata Catalog)中,最终通过统一的 ODBC/JDBC 接口透明地访问各个不同数据库。


图 1.Classic Federation
图 1. Classic Federation

一:生产环境准备

假定 CF Server 基于的 LOAD LIB(如下图 2)已经存,IMS V11 与 Adabas 822 也已经安装并启动(如下图 3,4)。由于 IMS 和 Adabas 数据库建表过程复杂,本文不再赘述,可以查阅相关文档或者寻找专业 DBA 协助建表,本示例假定实验所需的两种数据库表均以建好并导入实验数据。


图 2.LOAD LIB
图 2.LOAD LIB

图 3.IMS V11
图 3.IMS V11

图 4.Adabas 8.2.2
图 4.Adabas 8.2.2

二:创建并导入 Classic Federation Server 的配置文件

首先需要创建并初始化 CF Server 的配置文件,配置数据服务器和其中运行的服务等,对于特殊的数据源,还需要额外配置这些数据源的接口和初始化服务等参数。CAC.V101.TEST.SCACSKEL(CACCFGCS) 提供了创建并初始化配置文件的一个范例,本示例环境使用 QA.CSDL.V101.GWADABAS.JCLLIB(CACCFGDB) 创建并初始化 CF Server 的配置文件:QA.CSDL.V101.GWADABAS.CACCFGD 和 QA.CSDL.V101.GWADABAS.CACCFGX。

配置数据服务器时,需要配置查询处理器 CACQP 和连接处理器 CACINIT,其中查询处理器的服务名即为 CF Server 所代表的虚拟数据源名,CACINIT 中的 COMMSTRING 参数,指定了 CF Server 运行的主机名和端口,客户机将根据上述信息对 CF Server 进行连接访问。服务中其他未指定参数采用默认值即可,上述两种服务的配置如下图 5,6 所示:


图 5.CACQP
图 5.CACQP

图 6.CACINIT
图 6. CACINIT

另外,由于 IMS 和 Adabas 都属于特殊数据源,还需要额外配置其访问接口:

本示例中搭建的 CF Server 采用 DRA 接口访问 IMS,其相应配置如下图 7 所示:


图 7.CF Server 对用 IMS DRA 接口访问的数据服务器的配置
图 7. CF Server 对用 IMS DRA 接口访问的数据服务器的配置

其中,DRATABLESUFFIX 指定了 DRA 启动表的后缀名,DRA 启动表(DFSPZPxx)位于 IMS 装载库 IMSVS.IMB1.SDFSRESL 中(如下图 8 所示),DRAUSERID 指定了用于连接和注册 DBCTL 的默认 DRA 用户名,DEFAULTPSBNAME 指定了创建 IMS 表时默认使用的 PSB 名,其他未指定参数均采用默认值。


图 8.DRA 启动表
图 8.DRA 启动表

对 Adabas 数据库的访问,无需配置 CF Server 的数据服务器,但需编译 Adabas 数据库的访问接口模块放在 CF Server 的装载库中(如下图 9 所示)。CAC.V101.TEST.SCACSKEL(CACADAL) 提供了编译 Adabas 数据库接口模块的一个范例,本示例环境使用 QA.CSDL.V100.CFADABAS.JCLLIB (CACADAL0) 对 Adabas 数据库的接口模块进行编译,编译过程中用到的 CF Server 相关模块和 Adabas 相关模块分别位于 CF Server 和 Adabas 822 数据库的 LOAD LIB 中。


图 9. Adabas 访问接口模块
图 9. Adabas 访问接口模块

上述配置信息按照特定格式放在一个单独的文件中(具体的文件格式可以参看 CF Server 的用户手册),通过配置导入命令 IMPORT,CONFIG,FILENAME= **** 导入到上述创建好的配置文件中。CAC.V101.TEST.SCACSKEL(CACCFGUT) 定义了导入文件配置的一个范例,本示例环境使用 QA.CSDL.V101.GWADABAS.JCLLIB(CACCFGUT) 导入 CF Server 的配置信息。

三:创建元数据目录并对 IMS 和 Adabas 数据库的物理表进行逻辑映射

元数据目录是一个关系表的集合,包含了如何将数据从非关系格式转化成关系格式的信息,当客户机应用程序的 SQL 请求传递至 CF Server,其数据服务器的查询处理器则需访问存储在这个目录中的信息来查询或者更新大型机上的数据源。

首先需要创建元数据目录,CAC.V101.TEST.SCACSKEL(CACCATLG) 定义了创建并初始化元数据目录的一个范例,本示例环境使用 QA.CSDL.V101.GWADABAS.JCLLIB(CACCATLG) 创建并初始化 CF Server 所需元数据目录 QA.CSDL.V101.GWADABAS.CACCFGD 和 QA.CSDL.V101.GWADABAS.CACCFGX。

接下来需要将 IMS 和 Adabas 的数据表映射到上述创建的元数据目录中,其中数据表的信息是按照标准的 SQL 格式存放在文件上,然后通过映射数据表的 JCL,即可将大型机上不同种类的数据库表按照统一的 SQL 标准,映射到元数据目录中。CAC.V101.TEST.SCACSKEL(CACMETAU) 定义了如何映射数据表到元数据目录的一个范例,本示例环境使用 QA.CSDL.V101.GWADABAS.JCLLIB(CACMETAU) 将 IMS 和 Adabas 的数据表映射至 CF Server 的元 数据目中,IMS 和 Adabas 数据表的定义分别放在 QA.RGT.USEGRMR(IEMPL) 和 QA.RGT.USEGRMR(ADABASUG) 中。在提交此 JCL 之前,CF Server 应处于启动状态。

四:通过 CF Server,实现 IMS 和 Adabas 数据表的联合查询

在数据表成功地被映射置至 CF Server 的元数据目录后,即可通过标准的 OCDB/JDBC/CLI 接口对 IMS 和 Adabas 的数据表进行联合查询,本文仅示例如何通过 ODBC 接口进行联合查询,步骤如下:

  1. 在实验客户机上安装 CF 的客户端;
  2. 配置 ODBC 访问配置文件 cac.ini,CF 客户端的安装路径 /ODBC/bin 下面提供了 cac.ini 的配置范例;
  3. 添加 windows 的用户变量 CAC_CONFIG=cac.ini;
  4. 打开 CMD 窗口,运行命令 clisamp,并输入用户名和密码;
  5. 输入要执行的 SQL 语句。

实验结果如下图 10 所示:


图 10. 通 ODBC 接口实现 IMS 和 Adabas 的联合访问
图 10. 通 ODBC 接口实现 IMS 和 Adabas 的联合访问

至此,通过 CF Server 集成 IMS 与 Adabas 的过程解析完毕。

利用 Federation Server 集成 CF Server 与 Oracle 和 Sybase 过程解析

一:生产环境准备

如图 11 所示,Federation Server 可通过 ODBC 接口访问 CF Server,并将其作为数据源,与 LUW 上其他数据库进行集成以实现联合访问。本例以 CF Server 与 Oracle 和 Sybase 进行整合为例介绍如何使用 Federation Server 最终达到 IMS、Adabas、Oracle 和 Sybase 两种平台四种类型的数据整合。本示例假定实验所需的 Oralce,Sysbase 数据表均以建好并导入实验数据。


图 11. Federation Server
图 11. Federation Server
  • 安装 Federation Server 以及各数据源客户端

服务器需要安装 Federation Server 以及访问各数据源的客户端:CF client,Oracle client,Sybase client。具体步骤请参考各产品的安装说明。

  • 在 Federation Server 中配置各 client 的信息

此过程可在 Federation Server 安装过程中按照提示完成,如图 12 所示,或者在安装完 Federation Server 后通过编辑 db2dj.ini 来完成。假设本示例环境所搭建的 instance 为 db2inst1, db2dj.ini 的位置一般在 /home/db2inst1/sqllib/cfg 目录下。本示例通过编辑 db2dj.ini 来实现。


图 12. 在 Federation Server 配置各 client 的信息
图 12. 在 Federation Server 配置各 client 的信息

不同的数据源需要配置的信息不同:


清单 1.CF client:
					
 DJX_ODBC_LIBRARY_PATH= < CF client 的 CLI lib 路径 > 
 CAC_CONFIG= < cac.ini 文件的位置 > 
 DB2LIBPATH= < CF client 的 CLI lib 路径 > 
 LD_LIBRARY_PATH= < CF client 的 CLI lib 路径 > 
 LIBPATH= < CF client 的 CLI lib 路径 > 
 DB2ENVLIST = LIBPATH 
			


清单 2.Oracle client:
					
 ORACLE_HOME= < Oracle client 的安装路径 > 
 TNS_ADMIN= < tnsnames.ora 文件所在路径 > 
			


清单 3.Sybase client:
					
 SYBASE= < Sybase client 的安装路径 >  
 SYBASE_OCS = < OCS > 
			

值得注意的是,编辑 db2dj.ini 后需要重新启动 instance,通过运行 db2stop;db2start 完成。

  • 配置各数据源的连接信息

各数据源的连接信息的配置有所不同:

CF client:

通过编辑 cac.ini 文件来完成,CF 客户端的安装路径 /ODBC/bin 下面提供了 cac.ini 的配置范例。

Oracle client:

需要在 tnsnames.ora 文件里添加所访问的 Oracle server 的连接信息:Server IP/HOST, Port, Database Name 等信息。如下例,本文将所连接的 Oracle server 命令为 ora10g,将其作为 Oracle Server 的 node 名。


清单 4.连接的 Oracle server
					
 ora10g = 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = >IP/host>)(PORT = >PORT>)) 
    (CONNECT_DATA = 
      (SERVER = DEDICATED) 
      (SERVICE_NAME = <oracledb>) 
    ) 
  ) 
			

Sybase client:

需要在 interfaces 文件里添加所访问的 Server 连接信息,如下例。sybase1 将作为 Sybase server 的 node 名。


清单 5.连接的 Sybase server
					
 sybase1 
         master tcp ether <IP> <PORT> 
         query tcp ether <IP> <PORT> 
			

二:通过 Federation Server,实现 IMS、 Adabas、Oracle、Sybase 数据源的联合查询

环境配置完后,就可以使用 Federation Server 对各数据源进行整合操作了。在整合操作之前需要完成一系列准备工作,对各数据源建立 Wrapper、Server、User Mapping。具体分为几个步骤:


清单 6. 步骤一:设置 DBM, 使能 Federation Server 功能
					
 db2 update dbm cfg using federated yes 
 DB20000I  The UPDATE DATABASE MANAGER CONFIGURATION 
 command completed successfully. 
 SQL1362W  One or more of the parameters submitted for immediate 
 modification were not changed dynamically. Client changes will not be 
 effective until the next time the application is started or the TERMINATE 
 command has been issued. Server changes will not be effective until the 
 next DB2START command. 
 db2stop 
 SQL1064N  DB2STOP processing was successful. 
 db2start 
 SQL1063N  DB2START processing was successful. 
			


清单 7. 步骤二:建立 Federation DB
					
 db2 create db test 
 DB20000I  The CREATE DATABASE command completed successfully. 
			


清单 8. 步骤三:Catalog CF server
					
 catalog tcpip node GW10ADAS remote <CF_server_IP> server <PORT> 
 DB20000I  The CATALOG TCPIP NODE command completed successfully. 
 DB21056W  Directory changes may not be effective until the directory cache 
 is refreshed. 
 catalog db DSN2 at node GW10ADAS 
 DB20000I  The CATALOG DATABASE command completed successfully. 
 DB21056W  Directory changes may not be effective until the directory cache 
 is refreshed. 
			


清单 9.步骤四:建立 ODBC wrapper,用来访问 CF Server,进而访问 IMS、 Adabas 数据源
					
 connect to test 
   Database Connection Information 

 Database server          = DB2/AIX64 9.1.B 
 SQL authorization ID   = db2isnt1 
 Local database alias   = TEST 

 create wrapper ODBC library 'libdb2rcodbc.a' options 
 (DB2_FENCED 'Y', MODULE '<cf_lib>') 
 DB20000I  The SQL command completed successfully. 

 create server DATASTORE2 type odbc version 3 wrapper ODBC 
 authorization "<userid_cf>" password "<password_cf>" options 
 (node 'GW10ADAS', dbname 'DSN2', CODEPAGE '<cf_codepage>') 
 DB20000I  The SQL command completed successfully. 

 create user mapping for user server DATASTORE2 options 
 ( REMOTE_AUTHID '<userid_cf>', REMOTE_PASSWORD '< password_cf>' ) 
 DB20000I  The SQL command completed successfully. 
			


清单 10.步骤五:建立 Oracle wrapper,用来访问 Oracle 数据源
					
 create wrapper NET8 library 'libdb2net8.a' options (DB2_FENCED 'Y') 
 DB20000I  The SQL command completed successfully. 

 create server DATASTORE3 type oracle version 10.1 
 wrapper NET8 authorization "<userid_oragt;" password 
"<password_oragt;" options (node 'ora10g', password 'Y',  pushdown 'Y') 
 DB20000I  The SQL command completed successfully. 

 create user mapping for user server DATASTORE3 options 
 ( REMOTE_AUTHID '<userid_oragt;', REMOTE_PASSWORD '<password_oragt;' ) 
 DB20000I  The SQL command completed successfully. 
			


清单 11.步骤六:建立 Sybase wrapper,用来访问 Sybase 数据源
					
 create wrapper CTLIB library 'libdb2ctlib.a' options (DB2_FENCED 'Y') 
 DB20000I  The SQL command completed successfully. 

 create server DATASTORE4 type sybase version 15.0 
 wrapper CTLIB authorization "<userid_syb>" password "< password_syb>" 
 options (node 'sybase1', dbname '<sybasedb> ’ , password 'Y',  pushdown 'Y') 
 DB20000I  The SQL command completed successfully. 

 create user mapping for user server DATASTORE4 options 
 ( REMOTE_AUTHID '<userid_syb >',  REMOTE_PASSWORD '<password_syb>' ) 
 DB20000I  The SQL command completed successfully. 
			

以下是联合查询的实验结果:

使用 Federation Server 查询 Adabas 数据源中的 employees 表信息,如图 13 所示:


图 13. Adadbas_employees
图 13. Adadbas_employees

使用 Federation Server 查询 IMS 数据源中的 employees 表信息,如图 14 所示:


图 14. IMS_employees
图 14. IMS_employees

使用 Federation Server 查询 Oracle 数据源中的 departments 表信息,如图 15 所示:


图 15. Oracle_departments
图 15. Oracle_departments

使用 Federation Server 查询 Sybase 数据源中的 orders 表信息,如图 16 所示:


图 16. Sybase_orders
图 16. Sybase_orders

使用 Federation Server 实现 employees 表,orders 表,departments 表的联合查询,如图 17 所示:


图 17. Conjunctive_query
图 17. Conjunctive_query

其中,employees 表位于 IMS, Adabas 数据源,orders 表位于 Sybase 数据源,departments 位于 Oracle 数据源。

总结

至此,这个大型机与 LUW 数据整合系统就部署好了,用户无需考虑不同数据库之间的语法差异,无需编译复杂的 JCL 和 COBOL 程序,就能对 IMS,Adabas,Oracle,Sybase 四种数据库实现完全透明的,可重复的联合访问。如果需要部署更多的大型机数据库,只需要在 Classic Federation 端配置相应的接口并对数据库中的物理表做映射;如果需要部署更多的 LUW 机数据,只需安装并配置对应的客户端接口,建立对应的 Wrapper Server。通过本文,读者可以了解使用 Classic Federation Sever 和 Federation Server 进行数据整合的基本原理,以及部署一个复杂的数据整合环境,为读者提供一个初步了解和使用 Classic Federation Sever 和 Federation Server 的机会。


参考资料

学习

获得产品和技术

讨论

作者简介

郭玮的照片

郭 玮,BM 中国软件开发中心软件工程师,InfoSphere Classic QA,拥有北京师范大学计算机应用技术硕士学位和 IBM DB2 730/731/732 认证,目前从事 Mainframe 上 Classic Products 的 Regression/FVT Test 工作。

黄雪的照片

黄 雪,IBM 中国软件开发中心软件工程师,InfoSphere Federation QA,拥有北京工商大学管理科学与工程硕士学位和 IBM DB2 730/731/733/734 认证,目前从事 LUW 上 Federation Server 的 Regression/FVT Test 工作。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=783339
ArticleTitle=基于 InfoSphere Classic Federation Server&InfoSphere Federation Server 的大型机与 LUW 之间的数据集成
publish-date=12292011

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。