当使用 IXF 文件格式和 SELECT * 子句发出 export 命令时,适用时将收集索引信息。
如果索引中指定的列名包含 - 或 + 字符,则将不会收集索引信息,并且将接收到 SQL 代码 SQL27984W。导出将完成,并且被导出的数据不会受到影响。但是,索引信息将不会保存在 IXF 文件中。
如果将使用带有 CREATE 参数的 import 命令重新创建表,则将不会重新创建索引。要单独创建索引,使用 db2look 实用程序。
如果应用程序与数据库断开连接并且在断开连接之前未执行落实或回滚时,从该应用程序调用 db2ReadLog API 可能导致错误:
对于非嵌入式 SQL 应用程序,在调用 db2ReadLog API 之前将自动落实方式设置为“打开”。
在调用 db2ReadLog API 之后并且在断开与数据库的连接之前,发出 COMMIT 或 ROLLBACK 语句。
db2gcf 命令通常从自动运行的脚本启动、停止或监视 DB2 通用数据库(TM)(UDB)实例(例如,在 HA(高可用性)集群中)。
在 DB2(R) UDB 工作组服务器上将 db2gcf 系统命令与 -k 参数配合使用将失败。
“db2gcf -k”命令仅在 DB2 UDB 企业服务器版上起作用,在 DB2 UDB 工作组服务器版上不起作用。
如果 32 位 DB2 通用数据库(UDB)服务器在 AIX(R) 系统上运行且在同一系统上运行的应用程序通过 DRDA(R) 包装器进行了多个本地数据库连接,则该应用程序可能会接收到以下错误:
SQL1822N 从数据源“W3_SERVER2”接收到意外错误代码“-1224”。 相关联的文本和标记如下: func="DriverConnect" msg="SQL1224N 不能启动数据库代理进程来响应请求,或者数据库代理 进程因为数据库系统关系或强制命令已终止。" SQLSTATE=560BD
为了避免此错误,将以下条目置于联合配置文件(instance_directory/cfg/db2dj.ini)中:
EXTSHM=ON
或者,可象在 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(R) Visual Studio .NET Framework 1.1 中不起作用,可从 Microsoft Web 站点下载最新修订程序。可在 Microsoft Knowledge Base 文档 Q836745 中找到最新修订程序。
在下列系统上,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 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(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 驱动程序库的名称。
要在 AIX、HP-UX 或 Solaris 操作环境上切换至非 Unicode ODBC 库,请参阅以下指示信息。由于这是一个手工过程,所以每次更新产品时(包括应用后续修订包或修改级别之后)都必须执行它。
要在 AIX 上创建备用库:
cp db2_36.o db2.o -r--r--r-- bin:bin for db2.o
要切换回到原始对象,请遵循同一过程,但请使用备份文件,而不是 db2_36.o 文件。
要在 Solaris 操作环境中创建备用库:
cp libdb2_36.so.1 libdb2.so.1 -r-xr-xr-x bin:bin libdb2.so.1
要切换回到原始对象,请遵循同一过程,但请使用备份文件,而不是 libdb2_36.so.1 文件。
要在 HP-UX PA-RISC 上创建备用库:
cp libdb2_36.sl libdb2.sl -r-xr-xr-x bin:bin for libdb2.sl
要切换回到原始对象,请遵循同一过程,但请使用备份文件,而不是 libdb2_36.sl 文件。
要在 HP-UX on IA64 上创建备用库:
cp libdb2_36.so libdb2.so -r-xr-xr-x bin:bin for libdb2.so
要切换回原始对象,遵循同一过程(使用备份文件而不是 libdb2_36.so 文件)。
如果您需要关于 DB2 UDB 和其他 UNIX 操作系统上的“Merant 驱动程序管理器”的帮助,请与 IBM(R) 支持机构联系。
AIX 5 NFS APAR IY32512 可能导致 db2stop 命令在带有大量分区的系统上失败。
在接收到大量请求(请求阻止锁定已锁定的文件)的服务器上,锁定守护程序可能会不响应。如果所有可用的锁定线程都已分配给等待锁定变为可用的线程,于是在发生解锁请求时没有可用线程来完成此工作,就可能发生这种情况。
如果发生这种情况,必须重新启动已停止的节点。针对这种情况,DB2 通用数据库的变通方法是使用 db2stop 命令的 NODENUM 选项停止这些节点(一次停止一个)。
如果启用 SQLFLAG(STD) 预编译选项,则会导致以下错误:当运行预编译程序 DSNHPC 时发生异常终止 C6 错误。
当使用开发中心来创建要在 DB2 通用数据库 z/OS(R) 版版本 8 上运行的 SQL 存储过程时,除去 SQLFLAG(STD)预编译选项。
当 OS390 上的数据共享组中的 DDF 的连接成员已关闭时,DB2 Connect(TM) 不会将连接路由至“分布式数据设施”(DDF)的另一个成员。在启用综合系统(sysplex)的情况下,DB2 Connect(TM) 会根据服务器列表将连接路由至 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(TM) 用户指南》中作了说明,但是 DB2 Connect 定制顾问程序在版本 8.2 中不再受支持。
当安装 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。
db2 update admin config using JDK_PATH /opt/java1.3
db2admin stop db2admin start
如果使用 DB2 图形用户界面工具时显示印度字符时有问题,则您可能没有在您的系统上安装必需的字体。
DB2 通用数据库(UDB)已打包以下 IBM TrueType 和 OpenType 对应印度语言字体以供您使用。这些字体可在下列任何 CD 上的 font 目录中找到:
这些字体仅与 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 图形用户界面工具配合使用的印度字体:
除了 DB2 安装向导之外, 在运行 Linux 操作系统的 zSeries(R) 服务器上,图形用户界面工具不能工作。此局限性包含通常从“安装”启动板启动的任何项,例如,“快速导览”。
如果要对这些系统之一使用图形用户界面工具,应在有不同系统配置的客户机系统上安装管理工具,并使用此客户机来连接 zSeries 服务器。
为了在 DB2 信息中心中获得精确的搜索结果,必须用引号将包括数字的搜索项引起来。
例如,如果搜索以下词条,将接收不到任何结果:
1.4.1
但是,如果用引号将该语句括起来,将接收到相应的结果:
"1.4.1"
搜索以下词条将返回额外主题:
DB20000I
但搜索以下词条将正常工作:
"DB20000I"
如果在将标记语言文件导入到信息目录中心时不生成信息目录中心日志文件,则执行下列故障诊断步骤:
db2javit -j:com.ibm.db2.common.icm.tag.IcmImport -w: -i: -o:"-Xmx128m -Xms32m" -g:"d:\temp\myimport.trc" ...
如果在应用修订包之后不绑定 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 程序包。
如果 Windows XP 或 Windows 2003 上没有其他可用端口,在 Query Patroller 中提交的查询可能会接收到 SQL 代码 -29007。随着访问 Query Patroller 的客户机的数量增加,发生此错误的可能性也会增加。
设置下列 Windows 注册表变量:
MaxUserPort=65534 TcpTimedWaitDelay=30
并重新启动系统以使更改生效。
可以在 Microsoft(R) 帮助和支持 Web 站点上找到有关设置 Windows 注册表变量的详细信息,网址为 http://support.microsoft.com/。
如果您正在 Windows 上使用 DB2 通用数据库(UDB),并且您不是 Windows 系统上的管理员,则可能会遇到文件许可权问题。如果接收到 SQL1035N、SQL1652N 或 SQL5005C 错误消息,则可能的原因和变通方法显示在以下信息中:
至少授予用户对 instance_dir 目录的文件系统级别的 MODIFY 许可权。
有些 XML Extender 样本程序可能与其他已安装的程序同名。意外调用与 XML Extender 样本程序同名的另一程序可能会损坏 XML 文件。以下列表显示了旧的 XML Extender 样本程序名以及将不太可能会导致冲突的新替换程序名。确保使用新样本程序名而不是旧样本程序名以防止损坏 XML 文件。
旧程序(不使用) | 新程序(使用) |
---|---|
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 |
旧程序(不使用) | 新程序(使用) |
---|---|
insertx | dxxisrt |
retrieve | dxxretr |
retrieve2 | dxxretr2 |
retrievec | dxxretrc |
shred | dxxshrd |
tests2x | dxxgenx |
tests2xb | dxxgenxb |
tests2xc | dxxgenxc |
前面列出的可执行文件的源代码(.sqx 文件)位于安装的 samples\db2xml\c 目录中。源文件仍用它们的旧名称标记。如果您对源代码进行更改,则将新编译的可执行文件(用旧名称)复制到 sqllib\bin 目录中。
在 Windows 平台上,必须建立另一个副本,将它重命名为上面的新名称,然后将它复制到 bin 目录。这两个副本都会替换 bin 目录中的现有文件。例如,在编译了新版本的 shred.exe 之后,需要建立两个副本并替换 bin 目录中的文件:一个标记为 shred.exe,另一个重命名为 dxxshrd.exe。
在 Linux 和 UNIX 平台上,只需要用新编译版本替换有旧名称的文件。如果从这些样本创建新的可执行文件,则必须将新文件从 \SQLLIB\samples\db2xml\c\ 目录复制到 \SQLLIB\bin\ 目录中,然后建立其他副本,并根据前面的表重命名这些副本。
现在可以分解包含非唯一属性或非唯一元素名称的文档,这些属性或元素名映射到(相同或不同表的)不同的列,而不会接收到 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
当使用 SNA 连接至 OS/390(R) 系统时,主机 VTAM(R) 层将在建立新的连接时自动执行落实。一旦自动落实允许主机端线程状态为不活动,该线程将立即成为不活动的。
但是,当使用 TCP/IP 连接至 OS/390 系统时,没有自动落实。在建立连接之后,应用程序本身必须执行显式落实以让线程在主机上成为不活动的。如果没有显式落实,则线程将进入空闲线程超时状态。
建议的变通方法是重新编写应用程序以便在连接之后在该连接成为空闲的情况下执行显式落实。
[ 页的顶部 |上一页 | 下一页 | 目录 ]