当使用 DB2® 数据库产品的多个 DB2 副本或者多个数据服务器驱动程序副本时,提供了各种选项供应用程序来访问 DB2 数据库。现有应用程序将继续正常工作。
限制
对于下列每种连接至数据库的方式,在同一进程中只能使用一个副本。
当本主题主要讲述 Windows® 操作系统、Linux® 和 UNIX® 操作系统上的问题时,您也无法在同一个进程中访问与多个 DB2 副本相关联的实例。
过程
查看与下列每种用于连接至 DB2 数据库的方法相关联的注意事项:
要使用除缺省副本外的 DB2 副本,在连接字符串中,指定此 DB2 副本的 IBMDADB 驱动程序名称,其格式为:IBMDADB2.$DB2_COPY_NAME。某些应用程序在不进行重新编译的情况下可能无法更改连接字符串,因此这些应用程序将只能使用缺省 DB2 副本。如果应用程序使用缺省程序标识 ibmdadb2 或缺省 clsid,那么它始终将使用缺省 DB2 副本。
尤其是,将需要更改连接字符串中的 "provider=IBMDADB2" 的值。例如,如果要使用的 DB2 副本称为 MY_COPY,那么将在连接字符串中指定 "provider=IBMDADB2.MY_COPY"。如果安装期间必须显式地指定 GUID,那么使用响应文件关键字 OLEDB_GUID 来指定 GUID,并且允许您输入自己的 GUID。否则,将使用生成的标识,如 DB2 安装日志中所列示的。
IBM 数据服务器 ODBC 和 CLI 驱动程序将副本名称作为驱动程序名称的一部分。缺省驱动程序 IBM DB2 ODBC 驱动程序设置为缺省 IBM 数据库客户机接口副本。每个安装的驱动程序名称为"IBM DB2 ODBC DRIVER - Copy Name"。
IBM 数据服务器 .NET 提供程序不是通过由副本名称标识的 DB2 数据库产品来访问的。它查找应用程序需要的提供程序版本并使用标准方法来使用该版本。
JDBC 在类路径中使用驱动程序的当前版本。2 类 JDBC 驱动程序使用本机 DLL。缺省情况下,类路径配置为指向缺省 DB2 副本。从要使用的 DB2 副本中运行 db2envar.bat 将更新此副本的 PATH 和 CLASSPATH 设置。
MMC 管理单元为缺省 DB2 副本启动 DB2 控制中心。
WMI 不支持多个 DB2 副本。一次只能注册一个 WMI 副本。要注册 WMI,请遵循以下过程:
WMI 不是在 DB2 安装期间注册的。您必须完成两个注册步骤。在 DB2 数据库产品 DB2 个人版和更高版本中,WMI 是一个可选功能部件。您必须在定制安装期间选择此功能部件。它未包括在典型安装中。
动态装入 IBM 数据服务器客户机库的 CLI 应用程序应使用带有 LOAD_WITH_ALTERED_SEARCH_PATH 选项(而不是 LoadLibrary 选项)的 LoadLibraryEx API。如果不使用带有 LOAD_WITH_ALTERED_SEARCH_PATH 选项的 LoadLibraryEx API,那么通过从要使用的 DB2 副本的 bin 目录运行 db2envar.bat 来实现在 Path 中指定 db2app.dll。要让使用 db2apie.lib 链接的应用程序使用另一个 DB2 副本,可以在 link 命令中使用 /delayload 选项来延迟装入 db2app.dll,并在进行任何 DB2 调用之前调用 db2SelectDB2Copy API。
要减少在系统上运行的系统任务栏可执行文件的数目,缺省情况下,在更改缺省副本后,运行在先前缺省 DB2 副本中的系统任务栏中的任何项被禁用。