用户指南

收集信息

附录 B, 目录定制工作表显示了您需要收集的信息。 您可能会发现制作该工作表的一个副本并输入系统值会更方便。

节点目录

在节点目录中可以指定以下信息:

节点名
远程数据库所驻留的主机或 AS/400 数据库服务器系统的别名。 此名称是由用户定义的。在“节点目录参数”表和“系统数据库目录参数”表中需写入相同的节点名。

格式:1 到 8 个单字节字母数字字符, 包括正负符号 (#)、at 符号 (@)、美元符号 ($) 和下划线 (_)。 它不能以下划线或数字开头。

协议
可以是 APPC 或 TCPIP。

符号目的地名
当定义 APPC 节点时,使用在“CPI 通信辅助信息表”中所指定的符号目的地名, (例如,当使用“ Microsoft SNA 服务器”时,“CPI-C 符号目的地特性”的名称)。 您应该从安装和/或配置了 SNA 的人员那里获得此值。 符号目的地名是区分大小写的, (若大写字母和小写字母名称之间存在不匹配,则可能会遇到 SQL1338 返回码)。

安全性类型
将执行的安全性检查的类型。对于 APPC 节点, 有效选项是 SAMEPROGRAMNONE。 对于 TCP/IP 节点,SECURITY SOCKS 选项指定节点将启用 SOCKS, 在此情况下,SOCKS_NS 和 SOCKS_SERVER 环境变量是必需的,并且必须将它们设置为启用 SOCKS。有关详情,参见安全性,并参考 Command Reference

TCP/IP 远程主机名或 IP 地址
当定义 TCP/IP 节点时的远程 TCP/IP 主机名, 或者是远程 TCP/IP 地址。若指定了主机名, 则必须在 DB2 Connect 工作站中通过“域名服务器”(DNS) 查找或者通过本地 TCP/IP 主机文件中的项目来解析主机名。

对于“DB2 OS/390 版”远程主机, 当启动“分布式数据设施”(DDF) 时,主机名将出现在 DSNL004I 信息中 (DOMAIN=hostname)。

TCP/IP 服务名或端口号
当定义 TCP/IP 节点时的远程 TCP/IP 服务名, 或者是端口号。必须在远程主机上向 TCP/IP 定义它。 端口号 446 已被注册为 DRDA 的缺省端口号。

对于“DB2 OS/390 版”远程主机,在“引导数据集”(BSDS) 中将端口号定义为 PORT, 并且,当启动“分布式数据设施”(DDF) 时,还在 DSNL004I 信息中提供了端口号 (TCPPORT=portnumber)。
注意:服务器指定用于基于 TCP/IP 连接的两阶段落实的重新同步操作的第二个端口。 例如,DB2 通用数据库 OS/390 版引导数据集将指定一个端口号 (RESPORT), 该端口号只用于 DB2 通用数据库 OS/390 版入站连接的重新同步。 这不需要定义服务名。

DCS 目录

在 DCS 目录中可以指定以下信息:

数据库名
主机或 AS/400 数据库服务器的用户定义别名。 在“DCS 目录参数”表和“系统数据库目录参数”表中需使用相同的数据库名。

格式:1 到 8 个单字节字母数字字符, 包括正负符号 (#)、at 符号 (@)、美元符号 ($) 和下划线 (_)。 它不能以下划线或数字开头。

目标数据库名
主机或 AS/400 数据库服务器系统上的数据库,如下所示:

MVS/ESA
由其 LOCATION NAME 标识的 DB2 通用数据库 OS/390 版子系统。

通过向 TSO 注册,并使用其中一个可用的查询工具发出以下 SQL 查询, 就可以确定 LOCATION NAME:

   select current server from sysibm.sysdummy1

在“MVS/ESA 引导数据集”(BSDS) 和 DSNL004I 信息中也定义了 LOCATION NAME (LOCATION=location), 它是在启动“分布式数据设施”(DDF) 时写入的。

OS/390
由其 LOCATION NAME 标识的 DB2 通用数据库 OS/390 版子系统。

通过向 TSO 注册,并使用其中一个可用的查询工具发出以下 SQL 查询, 就可以确定 LOCATION NAME:

   select current server from sysibm.sysdummy1

在“引导数据集”(BSDS) 和 DSNL004I 信息 中也定义了 LOCATION NAME (LOCATION=location),它是在启动“分布式数据设施”(DDF) 时写入的。

VSE 或 VM
数据库名 (DBNAME)

OS/400
关系数据库名 (RDBNAME)

其他
对于 OS/2、Windows NT、Windows 2000 和基于 UNIX 的系统, 在数据库目录中找到的数据库别名。

应用程序请求器名
将 SQL 请求转发至 DRDA 应用程序服务器的应用程序请求器的名称。 应用程序请求器为应用程序处理请求。

格式:AR <application_requester_name>

缺省值为 DB2 Connect 应用程序请求器。

参数字符串
若想更改缺省值,则按下列次序指定下列任何或所有参数。 不能使用“客户机配置辅助程序”来设置参数字符串, 并且当使用 CLP 时,必须用单引号(例如,在 OS/2 或 Windows NT 上) 或者使用双引号(例如,在 AIX 上)将参数字符串引起来:

map-file
覆盖了缺省 SQLCODE 映射的 SQLCODE 映射文件的名称。 要关闭 SQLCODE 映射,指定 NOMAP。 有关详情,参见SQLCODE 映射

,D
这是第二个位置参数。若指定了该参数, 则当返回下列 SQLCODES 之一时,应用程序将与主机或 AS/400 数据库服务器断开连接:

   SQL30000N
   SQL30040N
   SQL30050N
   SQL30051N
   SQL30053N
   SQL30060N
   SQL30070N
   SQL30071N
   SQL30072N
   SQL30073N
   SQL30074N
   SQL30090N

当未指定断开连接参数 ,D 时, 仅当返回下列 SQLCODE 时,才将执行断开连接:

   SQL30020N
   SQL30021N
   SQL30041N
   SQL30061N
   SQL30081N

有关这些代码的说明,参考信息参考
注意:若 DB2 Connect 由于发生错误而断开连接, 则将自动执行回滚。

,,INTERRUPT_ENABLED
这是第三个位置参数。若在 DB2 Connect 工作站的 DCS 目录中配置了 INTERRUPT_ENABLED,并且在连接至主机或 AS/400 数据库服务器时, 客户机应用程序发出中断,则 DB2 Connect 将通过断开连接和回滚工作单元来执行中断。 在 AIX、OS/2、Windows NT 和 Windows 2000 上,支持此中断行为。

应用程序将接收到 sqlcode (-30081), 它指示已经终止了与服务器的连接。因此,应用程序必须与 主机或 AS/400 数据库服务器建立新的连接,以便处理其他数据库请求。 在 AIX V4.1 和更高版本、SNA 服务器 V3.1 和更高版本、OS/2、 Windows NT 和 Windows 2000 之外的其他平台上,DB2 Connect 不支持这样的选项: 当应用程序使用该选项来接收中断请求时将自动断开连接。
注意:在任何平台上,此支持都可用于 TCP/IP 连接。 客户机可能断开套接字,但是根据服务器实现,可能有也可能没有未完成接收。 DB2 通用数据库 OS/390 版利用了异步套接字调用,因此,可以检测到连接的丢失, 并且回滚正在进行的任何长时间运行的 SQL 语句。

,,,,,SYSPLEX
此参数是第 6 个位置参数,可以使用该参数来 显式地对特定数据库启用 DB2 Connect SYSPLEX 支持。

还引进了称为 DB2SYSPLEX_SERVER 的新的简要表(环境或注册表)变量, 可以使用该变量来禁用工作站级别的 SYSPLEX 支持。

,,,,,,LOCALDATE="<value>"
此参数是第七个位置参数,可用它来启用 DB2 Connect 日期格式化支持。 这是通过对 <value> 使用日期时间标志来实现的, 如下所示:

假定您发出下列 CLP(命令行处理器)语句:

   catalog appc node nynode remote nycpic security program 
   catalog dcs database nydb1 as new_york
   catalog database nydb1 as newyork1 at node nynode 
        authentication dcs

数据库别名 newyork1 将用于存取主机数据库, 而不进行日期变换,因为尚未指定日期时间标志。

然而,借助新的日期格式化支持, 您现在可以使用下列 CLP 命令。在此情况下, 因为使用了 CLP,并且参数字符串本身是使用双引号指定的, 所以,必须在两对双引号内指定 LOCALDATE 值。 注意使用操作系统转义字符 "\"(反斜杠),以确保在 LOCALDATE 规范中不会拆散双引号。另见指定参数字符串

   catalog dcs database nydb2 as new_york
        parms \",,,,,,LOCALDATE=\"\"YYYYMMDD\"\"\"
   catalog database nydb2 as newyork2 at node nynode
        authentication dcs

数据库别名 "newyork2" 为您提供了对相同主机数据库的存取权, 但是,它还指定了日期格式时间标志。 此示例说明日期格式时间标志是使用关键字 LOCALDATE 指定的, 并且,它是 DCS 目录项的 PARMS 字段中的第七个位置参数。

要使日期时间标志有效,下列各项都必须为真:

  1. 每组 Y、M 和 D 都只能有一个序列。 其中,Y 是年份位、M 是月份位、D 是日期位。
  2. 在一个序列中,Y 的最大位数为 4。
  3. 在一个序列中,M 的最大位数为 2。
  4. 在一个序列中,D 的最大位数为 2。

例如,以下是所有有效的日期时间标志:

   "YYyyMmDd"   - Y、M 和 D 位是区分大小写的
   "MM+DD+YYYY" - 允许具有多于 10 个字节的时间标志,
                  并且在时间标志中可以具有不是 Y、M 和 D 的字符
   "abcYY+MM"   - 可以没有 D 序列

下列是所有无效的日期时间标志:

   "YYYYyMMDD"  - 无效,因为在一个序列中有 5 个 Y
   "YYYYMDDM"   - 无效,因为有 2 个 M 序列

若日期格式时间标志无效,将不会发出错误。只是将忽略它。 日期时间标志有效并不意味着将使用它。 仅当下列各项“全部”为真时,才会根据有效日期时间标志来执行日期格式转换:

  1. 没有 SQL 错误。
  2. 输出是采用类似于 ISO(ISO 和 JIS)格式的日期值。
  3. 输出数据区至少有 10 个字节长。 这是输出数据区的最小大小(即使不执行日期格式转换),以便将数据值存储在那里。即使日期格式时间标志结束时少于 10 个字节, 此需求仍然适用。
  4. 在 DCS 目录项中指定了有效的日期格式时间标志, 并且此标志适合输出数据区。

,,,,,,,CHGPWD_SDN=<name>
此参数是第八个位置参数, 可用它来指定用于“口令到期管理”(PEM) 的符号目的地名。 为 <name> 指定的值是区分大小写的。

更改 MVS 口令显示了通过使用 CHGPWD_SDN 来编目 DCS 数据库目录的示例,如下所示:

   catalog dcs database db1 as dsn_db_1 parms 
      ",,,,,,,CHGPWD_SDN=pempgm"

,,,,,,,,BIDI=<ccsid>
此参数是第九个位置参数,可用此参数来指定用于覆盖缺省服务器数据库 BiDi CCSID 的“双向”(BiDi) CCSID。 例如:
    ",,,,,,,,BIDI=xyz" 

其中, xyz 表示 CCSID 覆盖(参见(BIDI_NOTE1))。

要获得受支持的 BiDi CCSID 及其字符串类型的列表, 参考管理指南

要正确地处理不同平台上的 BiDi 数据,下列 BiDi 属性是必需的:

因为不同平台上的缺省值不一样, 因此在将 DB2 数据从一个平台发送到另一个平台时会出现问题。 例如,Windows 平台使用 LOGICAL UNSHAPED 数据, 而 MVS 和 OS/390 上的数据通常采用 SHAPED VISUAL 格式。 因此,若没有提供对 BiDi 属性的任何支持, 则将数据从“DB2 MVS 版”或“DB2 OS/390 版”发送至 Windows 上的 DB2 Connect 时, 显示的数据将是错误的。

当在 DB2 Connect 与服务器上的数据库之间交换数据时, 通常是接收方对输入数据执行转换。同一约定通常还将适用于 BiDi 布局转换, 该转换是对常用的代码页转换的补充。然而,目前没有主机 DB2 产品支持 BiDi 特定的 CCSID 或 BiDi 布局转换。 因此,已经用可选功能增强了 DB2 Connect, 以便对要发送到服务器数据库的数据、以及从服务器数据库中接收的数据执行 BiDi 布局转换。

要使 DB2 Connect 对发送至服务器数据库数据执行 BiDi 布局转换, 一定要覆盖该服务器数据库的 BiDi CCSID(参见(BIDI_NOTE2))。 这是通过在服务器数据库的 DCS 数据库目录项的 PARMS 字段中使用 BIDI 参数来完成的。

最好用一个示例来说明此功能部件的使用。

假定 Hebrew DB2 客户机正在运行 CCSID 62213(BiDi 字符串类型 5), 而您想存取正在运行 CCSID 424(BiDi 字符串类型 4)的 DB2 主机数据库。 然而,您知道 DB2 主机数据库中包含的数据却是基于 CCSID 8616(BiDi 字符串类型 6)的。

在此情况下存在两个问题。第一个问题就是 DB2 主机数据库不知道 CCSID 424 和 CCSID 8616 BiDi 字符串类型之间的区别。第二个问题就是 DB2 主机数据库不识别 DB2 客户机 CCSID 62213。它只支持与 CCSID 62213 基于同一代码页的 CCSID 862。

您将需要确保发送到 DB2 主机数据库的数据是以 BiDi 字符串类型 6 格式开头,并且还应该让 DB2 Connect 知道它必须对从 DB2 主机数据库中接收的数据执行 BiDi 布局转换。将对 DB2 主机数据库使用下列编目:

   catalog dcs database nydb1 as TELAVIV parms ",,,,,,,,BIDI=8616"

这告诉 DB2 Connect 要用 CCSID 8616 来覆盖 DB2 主机数据库 CCSID 424。 此覆盖包括下列处理:

  1. DB2 Connect 将使用 CCSID 862 来连接至 DB2 主机数据库。
  2. DB2 Connect 将对要发送到 DB2 主机数据库的数据执行 BiDi 布局转换, 从 CCSID 62213(BiDi 字符串类型 5)转换为 CCSID 62221(BiDi 字符串类型 6)。
  3. DB2 Connect 将对它从 DB2 主机数据库中接收的数据执行 BiDi 布局转换, 从 CCSID 8616(BiDi 字符串类型 6)转换为 CCSID 62213(BiDi 字符串类型 5)。

记录:

  1. 为了使 BIDI 参数生效,必须将环境变量或注册表值 DB2BIDI 设置为“是”。

  2. 若您想要 DB2 Connect 对要发送到 DB2 主机数据库的数据执行布局转换,则即使您不需要覆盖主机数据库的 CCSID, 您仍然需要在 DCS 数据库目录 PARMS 字段中添加 BIDI 参数。在此情况下, 您应该提供的 CCSID 就是缺省 DB2 主机数据库 CCSID。

  3. 在某些情况下,使用双向 CCSID 可能会导致 SQL 查询本身被修改,以致于 DB2 服务器不能识别它。 特别是,当可以使用不同的字符串类型时,应尽量避免使用 IMPLICIT CONTEXTUAL 和 IMPLICIT RIGHT-TO-LEFT CCSID。 若 SQL 查询中包含用引号引起来的字符串,则 CONTEXTUAL CCSID 可能会产生无法预料的结果。 在 SQL 语句中要尽量避免使用用引号引起来的字符串,而应尽可能使用主变量。

    若特定的双向 CCSID 导致了通过使用下面这些建议措施无法校正的问题, 则应该将环境变量或注册表值 DB2BIDI 设置为“否”。

指定参数字符串

下面是您可以指定的一些参数字符串的示例。

例如,您可以指定下列任何内容, 其中,"\"(反斜杠)是操作系统转义字符:

在 AIX 上:

   NOMAP
   /u/username/sqllib/map/dcs1new.map,D
   ,D
   ,,INTERRUPT_ENABLED
   NOMAP,D,INTERRUPT_ENABLED,,,SYSPLEX,LOCALDATE=\"\"YYMMDD\"\",,

在 OS/2、Windows NT 或 Windows 2000 上:

    NOMAP
    d:\sqllib\map\dcs1new.map,D
    ,,INTERRUPT_ENABLED
    NOMAP,D,INTERRUPT_ENABLED,,,SYSPLEX,LOCALDATE=\"\"YYMMDD\"\",,  

另外,若不指定参数字符串,也可以接受缺省值。
注意:因为在参数字符串中指定 LOCALDATE 时间标志时需要指定两对双引号, 所以您必须使用操作系统转义字符 "\"(反斜杠),例如:
   db2 catalog dcs db x as y parms \",,,,,,LOCALDATE=\"\"YYMMDD\"\"\"
这将生成下列 DCS 目录项:
   DCS 1 项:
 
    本地数据库名                    = X
    目标数据库名                    = Y
    应用程序请求器名                =
    DCS 参数                        = ,,,,,,LOCALDATE="YYMMDD"
    注解                            =
    DCS 目录发行版级别              = 0x0100

系统数据库目录

在系统数据库目录中可以指定以下信息:

数据库名
与您写入“DCS 目录参数”表中的值相同的值。

数据库别名
主机或 AS/400 数据库服务器的别名。此名称将被存取该数据库的任何应用程序使用。 缺省情况下,使用您为“数据库名”指定的值。

格式:1 到 8 个单字节字母数字字符, 包括正负符号 (#)、at 符号 (@)、美元符号 ($) 和下划线 (_)。 它不能以下划线或数字开头。

节点名
与您写入“节点目录参数”表中的值相同的值。

认证
指定将在何处执行对用户名和口令的验证。 有效选项是:SERVERSERVER_ENCRYPTCLIENTDCEDCSDCS_ENCRYPT。 有关详情,参见安全性

为同一数据库定义多个项目

对于每个数据库,必须在三个目录(节点目录、DCS 目录和系统数据库目录)的每个目录中至少定义一个项目。 在某些情况下,您可能想为数据库定义多个项目。

例如,若从主机或 AS/400 数据库服务器中移植了应用程序, 但是却接受了为客户机/服务器环境开发的应用程序的缺省映射,  则您可能想对这些应用程序关闭 SQLCODE 映射。 您将按下列步骤执行此操作:

两个别名存取同一个数据库,一个别名具有 SQLCODE 映射, 另一个没有 SQLCODE 映射。


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]