已知问题和变通方法

| | |

使用包含 - 和 + 字符的列上的索引导出到 IXF 文件

|

当使用 IXF 文件格式和 SELECT * 子句发出 export 命令时,适用时将收集索引信息。

|
|问题 |

如果索引中指定的列名包含 - 或 + 字符,则将不会收集索引信息,并且将接收到 SQL 代码 SQL27984W。导出将完成,并且被导出的数据不会受到影响。但是,索引信息将不会保存在 IXF 文件中。

|
|变通方法 |

如果将使用带有 CREATE 参数的 import 命令重新创建表,则将不会重新创建索引。要单独创建索引,使用 db2look 实用程序。

| | |

调用 db2ReadLog API 时 CLI0116E 或 SQL0428N 错误

|
|问题 |

如果应用程序与数据库断开连接并且在断开连接之前未执行落实或回滚时,从该应用程序调用 db2ReadLog API 可能导致错误:

|
|
|变通方法 1 |

对于非嵌入式 SQL 应用程序,在调用 db2ReadLog API 之前将自动落实方式设置为“打开”。

|
|变通方法 2 |

在调用 db2ReadLog API 之后并且在断开与数据库的连接之前,发出 COMMIT 或 ROLLBACK 语句。

“db2gcf -k”命令在 DB2 UDB 工作组服务器上失败

问题

db2gcf 命令通常从自动运行的脚本启动、停止或监视 DB2 通用数据库(TM)(UDB)实例(例如,在 HA(高可用性)集群中)。

在 DB2(R) UDB 工作组服务器上将 db2gcf 系统命令与 -k 参数配合使用将失败。

变通方法

“db2gcf -k”命令仅在 DB2 UDB 企业服务器版上起作用,在 DB2 UDB 工作组服务器版上不起作用。

来自 DRDA 包装器的 SQL1224 错误(AIX)

如果 32 位 DB2 通用数据库(UDB)服务器在 AIX(R) 系统上运行且在同一系统上运行的应用程序通过 DRDA(R) 包装器进行了多个本地数据库连接,则该应用程序可能会接收到以下错误:

SQL1822N  从数据源“W3_SERVER2”接收到意外错误代码“-1224”。
相关联的文本和标记如下:
  func="DriverConnect"
  msg="SQL1224N  不能启动数据库代理进程来响应请求,或者数据库代理
       进程因为数据库系统关系或强制命令已终止。"
SQLSTATE=560BD

为了避免此错误,将以下条目置于联合配置文件(instance_directory/cfg/db2dj.ini)中:

EXTSHM=ON
注:
在向联合配置文件添加条目时,必须停止并重新启动 DB2 UDB 以使更改生效。

或者,可象在 TCP/IP 节点上那样编目本地 DB2 UDB 数据库。例如:

CATALOG TCPIP NODE my_node REMOTE my_host SERVER 123;
CATALOG DB mydb AT NODE my_node;
CREATE WRAPPER drda;
CREATE SERVER my_server TYPE DB2/UDB VERSION 8 WRAPPER drda
   AUTHORIZATION "my_id" PASSWORD "my_pw"
   OPTIONS(ADD DBNAME 'MYDB');

热键在 Microsoft Visual Studio .NET Framework 1.1 中不起作用

如果热键在 Microsoft(R) Visual Studio .NET Framework 1.1 中不起作用,可从 Microsoft Web 站点下载最新修订程序。可在 Microsoft Knowledge Base 文档 Q836745 中找到最新修订程序。

简体中文语言环境(AIX)

在下列系统上,AIX 已更改绑定至简体中文语言环境 Zh_CN 的代码集:

代码集已从 GBK(代码页 1386)更改为 GB18030(代码页 5488 或 1392)。由于 DB2 通用数据库(UDB)AIX 版本身就支持 GBK 代码集,并且通过 Unicode 还支持 GB18030 代码集,所以 DB2 UDB 将把 Zh_CN 语言环境的代码集缺省设置为 ISO 8859-1(代码页 819),并且在某些操作中,还将把语言环境的地域缺省设置为美国(US)。

要消除此局限性,可以使用下面两种方法:

如果选择使用第一个选项,则发出下列命令:

db2set DB2CODEPAGE=1386
db2set DB2TERRITORY=86
db2 terminate
    db2stop
db2start 

如果选择第二个选项,则将语言环境从 Zh_CN 更改为 ZH_CN 或 zh_CN。ZH_CN 语言环境的代码集是 Unicode(UTF-8),而 zh_CN 语言环境的代码集为 eucCN(代码页 1383)。

简体中文语言环境(Red Hat Linux)

Red Hat V8 和更新版本(包括 Red Hat Enterprise Linux(TM) [RHEL] V2.1 和 V3)已将简体中文的缺省代码集从 GBK(代码页 1386)更改为 GB18030(代码页 5488 或 1392)。

由于 DB2 通用数据库(UDB)Linux 版本身就支持 GBK 代码集,并且通过 Unicode 还支持 GB18030 代码集,所以 DB2 UDB 将把它的代码集缺省设置为 ISO 8859-1(代码页 819),并且在某些操作中,还将把它的地域缺省设置为美国(US)。

要消除此局限性,可以使用下面两种方法:

如果选择使用第一个选项,则发出下列命令:

db2set DB2CODEPAGE=1386
db2set DB2TERRITORY=86
db2 terminate
    db2stop
db2start 

如果选择使用第二个选项,则发出下列任何一个命令:

export LANG=zh_CN.gbk
export LANG=zh_CN
export LANG=zh_CN.utf8

其中,与 zh_CN 相关联的代码集为 eucCN 或代码页 1383,与 zh_CN.utf8 相关联的代码集为代码页 1208。

Merant 驱动程序管理器不兼容性(UNIX)

当“Merant 驱动程序管理器”访问 UNIX(R) 上的 DB2 ODBC 驱动程序时,存在与 Unicode 支持不兼容的情况。即使应用程序未请求使用 Unicode,这些不兼容情况也会导致“Merant 驱动程序管理器”使用 Unicode。这种情况可能会导致要求“Merant 驱动程序管理器”支持非 IBM 数据源的组件(例如,数据仓库中心、信息目录管理器和 MQSI)遇到问题。在有永久解决方案之前,可使用未启用 Unicode 支持的备用 DB2 ODBC 驱动程序库。

DB2 通用数据库(UDB)版本 8.1 AIX 版、HP-UX 版和 Solaris 操作环境版附带包括了未启用 Unicode 支持的备用 DB2 ODBC 驱动程序库。要使用此备用库,必须创建它的副本,并将副本命名为原始 DB2 ODBC 驱动程序库的名称。

注:
备用(_36)库包含 DB2 JDBC 驱动程序所需要的 Unicode 功能。使用此库允许 JDBC 应用程序(包括 WebSphere(R) Application Server)与 DB2 UDB 成功配合工作。

要在 AIX、HP-UX 或 Solaris 操作环境上切换至非 Unicode ODBC 库,请参阅以下指示信息。由于这是一个手工过程,所以每次更新产品时(包括应用后续修订包或修改级别之后)都必须执行它。

过程

AIX

要在 AIX 上创建备用库:

  1. 以实例所有者身份,使用 db2stop force 命令来关闭所有数据库实例。
  2. 使用 DB2 管理服务器(DAS)实例标识,通过使用 db2admin stop force 命令来关闭 DAS 实例。
  3. 备份 /usr/lpp/db2_81/lib 目录中的原始 db2.o 文件。
  4. 使用 root 用户权限,发出 slibclean 命令。
  5. 将文件 db2_36.o 复制为备份文件 db2.o,并确保所有权和许可权仍保持一致。使用以下命令:
    cp db2_36.o db2.o
    -r--r--r-- bin:bin for db2.o

要切换回到原始对象,请遵循同一过程,但请使用备份文件,而不是 db2_36.o 文件。

Solaris 操作环境

要在 Solaris 操作环境中创建备用库:

  1. 以实例所有者身份,使用 db2stop force 命令来关闭所有数据库实例。
  2. 使用 DB2 管理服务器(DAS)实例标识,通过使用 db2admin stop force 命令来关闭 DAS 实例。
  3. 备份 /opt/IBMdb2/V8.1/lib 目录中的原始 libdb2.so.1 文件。
  4. 将文件 libdb2_36.so.1 复制为备份文件 libdb2.so.1,并确保所有权和许可权仍保持一致。使用以下命令:
    cp libdb2_36.so.1 libdb2.so.1
    -r-xr-xr-x bin:bin libdb2.so.1
  5. 对每个数据库实例发出 dasupdt <instance> 命令,并对 DAS 实例发出 dasupdt <das_instance> 命令。

要切换回到原始对象,请遵循同一过程,但请使用备份文件,而不是 libdb2_36.so.1 文件。

HP-UX PA-RISC

要在 HP-UX PA-RISC 上创建备用库:

  1. 使用 db2stop force 命令来关闭所有数据库实例。
  2. 使用 db2admin stop force 命令关闭 DB2 管理服务器(DAS)实例。
  3. 备份 /opt/IBMdb2/V8.1/lib 目录中的原始 libdb2.sl 文件。
  4. 将文件 libdb2_36.sl 复制为备份文件 libdb2.sl,并确保所有权和许可权仍保持一致。使用以下命令来确保一致性:
    cp libdb2_36.sl libdb2.sl
    -r-xr-xr-x bin:bin for libdb2.sl
  5. 对每个数据库实例发出 dasupdt <instance> 命令,并对 DAS 实例发出 dasupdt <das_instance> 命令。

要切换回到原始对象,请遵循同一过程,但请使用备份文件,而不是 libdb2_36.sl 文件。

HP-UX on IA64

要在 HP-UX on IA64 上创建备用库:

  1. 使用 db2stop force 命令来关闭所有数据库实例。
  2. 使用 db2admin stop force 命令关闭 DB2 管理服务器(DAS)实例。
  3. 备份 /opt/IBMdb2/V8.1/lib 目录中的原始 libdb2.so 文件。
  4. 将文件 libdb2_36.so 复制为备份文件 libdb2.so,并确保所有权和许可权仍保持一致。 使用以下命令来确保一致性:
    cp libdb2_36.so libdb2.so
    -r-xr-xr-x bin:bin for libdb2.so
  5. 对每个数据库实例发出 dasupdt <instance> 命令,并对 DAS 实例发出 dasupdt <das_instance> 命令。

要切换回原始对象,遵循同一过程(使用备份文件而不是 libdb2_36.so 文件)。

其它 UNIX 操作系统

如果您需要关于 DB2 UDB 和其它 UNIX 操作系统上的“Merant 驱动程序管理器”的帮助,请与 IBM(R) 支持机构联系。

NFS APAR IY32512 - 不可用线程(AIX)

AIX 5 NFS APAR IY32512 可能导致 db2stop 命令在带有大量分区的系统上失败。

在接收到要求阻止对已经锁定的文件的锁定的大量请求的服务器上,锁定守护进程可能会不作响应。如果所有可用已锁定线程已分配给等待锁定变为可用的线程,于是在发生解锁请求时没有可用线程来完成此工作,就可能发生这种情况。

如果发生这种情况,必须重新启动已停止的节点。针对这种情况,DB2 通用数据库的变通方法是使用 db2stop 命令的 NODENUM 选项停止这些节点(一次停止一个)。

SQLFLAG(STD) 预编译器选项错误

如果启用 SQLFLAG(STD) 预编译选项,则会导致以下错误:当运行预编译程序 DSNHPC 时发生异常终止 C6 错误。

当使用开发中心来创建要在 DB2 通用数据库 z/OS(R) 版版本 8 上运行的 SQL 存储过程时,除去 SQLFLAG(STD)预编译选项。

| | |

在 DB2 Connect 中使用综合系统(sysplex)时必须启用连接池

|
|问题 |

当 OS390 上的数据共享组中的 DDF 的连接成员已关闭时,DB2 Connect(TM) 不会将连接路由至“分布式数据设施”(DDF)的另一个成员。在启用综合系统(sysplex)的情况下,DB2 Connect 会根据服务器列表将连接路由至 DDF 中的另一个成员。

|

设计 DB2 Connect V8 综合系统(sysplex)时考虑了代理进程池。如果没有代理进程并且没有与数据库的连接,则将释放综合系统(sysplex)服务器列表。因此,至少必须保留一个代理进程以维护综合系统(sysplex)服务器列表。

|
|变通方法 |

通过运行下列命令启用连接池:

|
db2 update dbm cfg using num_poolagents number
|    db2stop
|   db2start

其中 number 是 DB2 实例上允许存放的最大代理进程数。当 number 大于 0 时,将启用连接池。

|
|建议 |

num_poolagents 设置为 -1,这将得到分配给 maxagents 配置参数的值的一半。

DB2 Connect 定制顾问程序

尽管在《DB2 Connect(TM) 用户指南》中作了说明,但是 DB2 Connect 定制顾问程序在版本 8.2 中不再受支持。

创建工具目录数据库失败(HP-UX)

问题
当在 HP-UX 上安装 DB2 通用数据库(UDB)版本 8.2 时,如果在 32 位实例下运行 CREATE TOOLS CATALOG 命令,并且 DB2 管理服务器 jdk_path 配置参数指向 HP-UX SDK 1.4,则该命令将产生 SQLCODE -22209。发生这种故障的因为,缺省情况下 DB2 UDB 版本 8.2 将安装 HP-UX SDK 1.4,但是,版本 8.2 32 位实例需要 HP-UX SDK 1.3 才能成功地运行 CREATE TOOLS CATALOG 命令。

当安装 DB2 UDB 版本 8.1 修订包 7 时,如果您将 DB2 管理服务器 jdk_path 配置参数手工更新为指向 HP-UX SDK 1.4,或者如果您先删除然后再重新创建 DB2 管理服务器(DAS),也会发生此故障。之所以发生故障是因为在任何一种情况下 jdk_path 配置参数都更改为指向 HP-UX SDK 1.4。

DB2 UDB 版本 8.2 32 位实例要求成功运行 HP-UX SDK 1.3。

变通方法 1
在 64 位实例下创建工具目录。
变通方法 2
通过执行下列步骤在 32 位实例下创建工具目录:
  1. 从以下 HP-UX Web 站点下载 HP-UX SDK 1.3:
    http://www.hp.com/products1/unix/java/
  2. 安装 HP-UX SDK 1.3。
  3. 将 DB2 管理服务器 jdk_path 配置参数更新为指向 HP-UX SDK 1.3。例如:
    db2 update admin config using JDK_PATH /opt/java1.3
  4. 重新启动 DB2 管理服务器。
    db2admin stop
    db2admin start
  5. 在 32 位实例下重新运行 CREATE TOOLS CATALOG 命令。

在 DB2 图形用户界面工具中显示印度字符

如果使用 DB2 图形用户界面工具时显示印度字符时有问题,则您可能没有在您的系统上安装必需的字体。

DB2 通用数据库(UDB)已打包以下 IBM TrueType 和 OpenType 对应印度语言字体以供您使用。这些字体可在下列任何 CD 上的 font 目录中找到:

这些字体仅与 DB2 UDB 结合使用。您不能将这些字体用于一般的或无限制的销售或分发:

表 9. 与 DB2 UDB 打包在一起的印度字体
字型 字形 字体文件名
Devanagari MT for IBM devamt.ttf
Devanagari MT for IBM 粗体 devamtb.ttf
Tamil TamilMT.ttf
Tamil 粗体 TamilMTB.ttf
Telugu TeluguMT.ttf
Telugu 粗体 TeleguMTB.ttf

有关如何安装字体和修改 font.properties 文件的详细指示信息位于 IBM Development Kit for Java 文档的 Internationalization 一节。

此外,下列 Microsoft 产品还带有可与 DB2 图形用户界面工具配合使用的印度字体:

zSeries 服务器不支持图形用户界面工具(Linux)

除了 DB2 安装向导之外, 在运行 Linux 操作系统的 zSeries(R) 服务器上,图形用户界面工具不能工作。此局限性包含通常从“安装”启动板启动的任何项,例如,“快速导览”。

如果要对这些系统之一使用图形用户界面工具,应在有不同系统配置的客户机系统上安装管理工具,并使用此客户机来连接 zSeries 服务器。

用引号将包含数字的 DB2 信息中心搜索项引起来

为了在 DB2 信息中心中获得精确的搜索结果,必须用引号将包括数字的搜索项引起来。

例如,如果搜索以下词条,将接收不到任何结果:

  1.4.1

但是,如果用引号将该语句括起来,将接收到相应的结果:

  "1.4.1"

搜索以下词条将返回额外主题:

  DB20000I

但搜索以下词条将正常工作:

  "DB20000I"

导入标记语言文件时未生成的信息目录中心日志文件

如果在将标记语言文件导入到信息目录中心时不生成信息目录中心日志文件,则执行下列故障诊断步骤:

当从命令行运行 db2icmimport 时:
当使用信息目录中心图形用户界面导入标记语言文件时:

绑定 Query Patroller 程序包

如果在应用修订包之后不绑定 Query Patroller 程序包,则没有 DBADM 权限或适当的 Query Patroller 特权的用户在使用 Query Patroller 中心或 Query Patroller 命令行时可能会遇到以下错误:

SQL0001N - 绑定或预编译未成功完成。

如果正在使用 Query Patroller 中心,就会在 qpdiag.log 文件中记录 SQL0001N 错误。如果正在使用 Query Patroller 命令行,SQL0001N 会被返回给控制台。

存在自动绑定代码,以便可以启动自动绑定。然而,当正在连接的用户没有执行 Query Patroller 程序包中所有语句的必需特权时,自动绑定会失败。此问题的症状是 Query Patroller 中心中缺少文件夹。

要避免此问题,在应用了修订包之后,应由有 DBADM 权限或必需特权的用户手工绑定 qpserver.lst 程序包。

Query Patroller 没有端口可用(Windows)

问题

如果 Windows XP 或 Windows 2003 上没有其它可用端口,在 Query Patroller 中提交的查询可能会接收到 SQL 代码 -29007。随着访问 Query Patroller 的客户机的数量增加,发生此错误的可能性也会增加。

变通方法

设置下列 Windows 注册表变量:

   MaxUserPort=65534
   TcpTimedWaitDelay=30 

并重新启动系统以使更改生效。

可以在 Microsoft(R) 帮助和支持 Web 站点上找到有关设置 Windows 注册表变量的详细信息,网址为 http://support.microsoft.com/

安全环境(Windows)

如果您正在 Windows 上使用 DB2 通用数据库(UDB),并且您不是 Windows 系统上的管理员,则可能会遇到文件许可权问题。如果接收到 SQL1035N、SQL1652N 或 SQL5005C 错误消息,则可能的原因和变通方法显示在以下信息中:

用户对 sqllib 目录没有足够的权限

问题
用户在尝试打开 DB2 CLP 或命令窗口时接收到 SQL1035N 或 SQL1652N 错误。DB2 UDB 代码(核心文件)被安装到写特权受限制的目录结构中,但是某些 DB2 UDB 工具需要在 DB2INSTPROF 目录中写和创建文件。
变通方法
创建可以在其中至少授予用户 MODIFY 许可权的新目录,并使用 db2set -g db2tempdir 来指向该新目录,或者在 Windows 系统环境中设置 db2tempdir 变量。
即使用户属于 SYSADM_GROUP,用户也没有足够的权限来写至 sqllib\<instance_dir> 目录

问题
用户在尝试更新数据库管理器配置文件(update dbm cfg)时接收到 SQL5005C 系统错误。即使已将此用户添加至 SYSADM_GROUP,此用户也没有必需的 NTFS 许可权来写至 sqllib\instance_dir 目录。
第一个变通方法

至少授予用户对 instance_dir 目录的文件系统级别的 MODIFY 许可权。

第二个变通方法
创建新目录,可在该目录中至少授予用户 MODIFY 许可权。使用 db2set db2instprof 命令来指向该新目录。您将需要重新创建实例以便将信息存储在 db2instprof 指定的新实例目录下面,或者将需要把旧实例目录移至新目录。

XML Extender 样本程序已重命名

有些 XML Extender 样本程序可能与其它已安装的程序同名。意外调用与 XML Extender 样本程序同名的另一程序可能会损坏 XML 文件。以下列表显示了旧的 XML Extender 样本程序名以及将不太可能会导致冲突的新替换程序名。确保使用新样本程序名而不是旧样本程序名以防止损坏 XML 文件。

表 10. XML Extender 的替换样本程序(Windows)
旧程序(不使用) 新程序(使用)
insertx.exe dxxisrt.exe
retrieve.exe dxxretr.exe
retrieve2.exe dxxretr2.exe
retrievec.exe dxxretrc.exe
shred.exe dxxshrd.exe
tests2x.exe dxxgenx.exe
tests2xb.exe dxxgenxb.exe
tests2xc.exe dxxgenxc.exe
表 11. XML Extender 的替换样本程序(Linux 和 UNIX
旧程序(不使用) 新程序(使用)
insertx dxxisrt
retrieve dxxretr
retrieve2 dxxretr2
retrievec dxxretrc
shred dxxshrd
tests2x dxxgenx
tests2xb dxxgenxb
tests2xc dxxgenxc

将新的样本程序与样本 sqx 文件配合使用

前面列出的可执行文件的源代码(.sqx 文件)位于安装的 samples\db2xml\c 目录中。源文件仍用它们的旧名称标记。如果您对源代码进行更改,则将新编译的可执行文件(用旧名称)复制到 sqllib\bin 目录中。

在 Windows 平台上,必须建立另一个副本,将它重命名为上面的新名称,然后将它复制到 bin 目录。这两个副本都会替换 bin 目录中的现有文件。例如,在编译了新版本的 shred.exe 之后,需要建立两个副本并替换 bin 目录中的文件:一个标记为 shred.exe,另一个重命名为 dxxshrd.exe。

Linux 和 UNIX 平台上,只需要用新编译版本替换有旧名称的文件。如果从这些样本创建新的可执行文件,则必须将新文件从 \SQLLIB\samples\db2xml\c\ 目录复制到 \SQLLIB\bin\ 目录中,然后建立其它副本,并根据前面的表重命名这些副本。

分解 XML Extender 中包含非唯一属性和元素名称的文档

现在可以分解包含非唯一属性或非唯一元素名称的文档,这些属性或元素名映射到(相同或不同表的)不同的列,而不会接收到 DXXQ045E 错误。以下示例显示了包含非唯一属性和非唯一元素名称的一个 XML 文档:

<Order ID="0001-6789">
       <!-- Note: attribute name ID is non-unique -->
       <Customer ID="1111">
                    <Name>John Smith</Name>
       </Customer>
       <!-- Note: element name Name is non_unique -->
       <Salesperson ID="1234"> 
              <Name>Jane Doe</Name>
       </Salesperson>
       <OrderDetail>
              <ItemNo>xxxx-xxxx</ItemNo>
              <Quantity>2</Quantity>
              <UnitPrice>12.50</UnitPrice>
       </OrderDetail>
       <OrderDetail>
              <ItemNo>yyyy-yyyy</ItemNo>
              <Quantity>4</Quantity>
              <UnitPrice>24.99</UnitPrice>
       </OrderDetail>
</Order>

伴随的 DAD(它将重复的元素和属性映射至不同的列)如下:

<element_node name="Order">
        <RDB_node>
    <table name="order_tab" key="order_id"/>
    <table name="detail_tab"/>
    <condition>
      order_tab.order_id=detail_tab.order_id
    </condition>
        </RDB_node>

  <!--attribute ID duplicated below, but mapped to a different col-->
    <attribute_node name="ID">
        <RDB_node>
          <table name="order_tab" />
      <column name="order_id" type="char(9)"/>
        </RDB_node>
    </attribute_node>
  
  <element_node name="Customer">
    <!--attribute ID duplicated above, but mapped to a different col-->
    <attribute_node name="ID">
        <RDB_node>
          <table name="order_tab" />
        <column name="cust_id" type="integer"/>
        </RDB_node>
    </attribute_node>

    <!--element name duplicated below, but mapped to a different col-->
    <element_node name="Name"> 
      <text_node>
        <RDB_node>
          <table name="order_tab" />
          <column name="cust_name" type="char(20)" />
        </RDB_node>
      </text_node>
  </element_node>
  </element_node>
    
  <element_node name="Salesperson">
    <!--attribute ID duplicated above, but mapped to a different col-->
    <attribute_node name="ID">
        <RDB_node>
          <table name="order_tab" />
        <column name="salesp_id" type="integer"/>
        </RDB_node>
    </attribute_node>
          
    <!--element name duplicated above, but mapped to a different col--> 
    <element_node name="Name"> 
      <text_node>
        <RDB_node>
          <table name="order_tab" />
          <column name="salesp_name" type="char(20)" />
        </RDB_node>
      </text_node>
  </element_node>
  </element_node>
    
  <element_node name="OrderDetail" multi_occurrence="YES">
    <element_node name="ItemNo">
      <text_node>
        <RDB_node>
          <table name="detail_tab" />        
          <column name="itemno" type="char(9)"/>
        </RDB_node>
      </text_node>
  </element_node>
    <element_node name="Quantity">
      <text_node>
        <RDB_node>
          <table name="detail_tab" />        
          <column name="quantity" type="integer"/>
        </RDB_node>
      </text_node>
  </element_node>
    <element_node name="UnitPrice">
      <text_node>
        <RDB_node>detail_tab" />
          <table name="detail_tab" />        
          <column name="unit_price" type="decimal(7,2)"/>
        </RDB_node>
      </text_node>
  </element_node>
  </element_node>
</element_node>

在分解了前面的文档之后,表的内容将如以下示例所示:

ORDER _TAB:

ORDER_ID       CUST_ID       CUST_NAME       SALESP_ID       SALESP_NAME
0001-6789      1111          John Smith      1234            Jane Doe

DETAIL_TAB:

ORDER_ID          ITEMNO         QUANTITY          UNIT_PRICE
0001-6789         xxxx-xxxx      2                 12.50
0001-6789         yyyy-yyyy      4                 24.99
注:
要将多个元素和属性映射至同一个表的同一列,为该表定义别名并在 DAD <table> 元素的其中一个映射中使用该别名。

使用 DB2 Connect 时 SNA 与 TCP/IP 之间的差别

当使用 SNA 连接至 OS/390(R) 系统时,主机 VTAM(R) 层将在建立新的连接时自动执行落实。自动落实将让主机端线程状态为不活动的,并且该线程立即成为不活动的。

但是,当使用 TCP/IP 连接至 OS/390 系统时,没有自动落实。在建立连接之后,应用程序本身必须执行显式落实以让线程在主机上成为不活动的。如果没有显式落实,则线程将进入空闲线程超时状态。

建议的变通方法是重新编写应用程序以便在连接之后在该连接成为空闲的情况下执行显式落实。

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