DB2 Everyplace
 

DB2 Everyplace V8.1.4 发行说明

欢迎阅读 DB2 Everyplace V8.1.4 发行说明。在以下目录中提供了新的 DB2 Everyplace V8.1.4 信息中心:%DSYINSTDIR%\doc\lang\infocenter

这些发行说明包含有关 DB2 Everyplace V8.1.4 发行版中新功能、增强功能和更新的过程的信息。


DB2 Everyplace 数据库的新修订和新功能

以下一节以功能列表开始,然后是 DB2 Everyplace 数据库的最新修订。

数据库引擎的新功能

  • 对 PocketPC 和 Windows 平台的 ADO.Net 支持
  • DB2 Everyplace 具有两个新的系统定义标量函数,它们使您能够在执行 SQL 查询时不必考虑正在查询的数据的大小写。这些新函数是 LCASE() 和 UCASE()。
  • 现在可与同一进程中的不同数据库有多个连接。
  • 自动增量(标识列)支持
  • 通过 CLI 逐步检索大量数据
  • 对 Symbian OS V7 的支持
  • 对 Symbian OS V6 和 V7 的远程存储过程支持及其 JDBC 支持
  • 对 Neutrino 和 Linux 平台上的附加处理器类型的支持
  • 更多 JDBC 支持以及 JSR 169 兼容性
  • 附加 CLI 支持包括:SQLColumns、SQLGetConnectAttr、SQLGetInfo、SQLGetStmtAttr、SQLNumParams、SQLSetConnectAttr、SQLSetStmtAttr 和 SQLTables。
  • 对所有平台(包括 Neutrino、Linux、Symbian OS 6 和 OS 7)上的本地数据加密的支持。

数据库引擎的修订

在 DB2 Everyplace V8.1(包括修订包 1 和修订包 2)以及 V8.1.4 中修正的问题,同时提供了 APAR 编号以供参考(如果适用的话):

  • (APAR IC34759)数据加密问题:
    • 如果在单个连接会话期间应用程序存取多于 8 个表(其中一个是加密表),DB2 Everyplace 将失败。
    • 对加密表的使用可滚动游标的选择查询失败。
    • 对加密表的 GROUPBY 查询(对列分组)失败。
    • 对带有索引的加密表的列的更新查询失败。
  • (APAR IC34782)在列具有索引的情况下,如果将 LIKE 谓词与参数标记配合使用(例如,C1 LIKE ?),DB2 Everyplace 数据库引擎会异常终止。索引结构可能会因为更新语句而毁坏。当表有多个索引且 SET 值不更改行的原始值时,将发生该故障。如果更改列值,就不会发生此问题。
  • (APAR IC35328)在发生下列操作的情况下使用 DELETE 语句,DB2 Everyplace 引擎中的表变得不可存取。
    • 执行物理删除
    • 读取逻辑上删除的记录
    • DELETE 语句中未使用 WHERE 子句
  • (APAR IC35106)使用可滚动游标重新执行已准备的 SELECT 语句未能返回任何行。
  • (APAR IC35043)在 Palm OS 上,如果安装了 PVCPKCS11.prc 库并反复地按 On/Off(开/关)按钮,设备最终将显示系统警报并需要复位。
  • (APAR IC35585)如果对列号为下列一种组合(17-32、48-64、80-96、112-128、144-160、176-192、208-226 和 240-256)的列创建了索引,在执行更新和删除操作时,Palm OS 上会发生索引毁坏并返回错误消息 SQLSTATE=58004。
  • (ARAR IC35710)当对 Pocket PC 平台使用 db2ecli.bas 文件来创建 DB2 Everyplace Visual Basic 应用程序时,该应用程序在 Pocket PC 2002 仿真器上运行时将会挂起。
  • (APAR IC35966)Palm 上的远程存储过程调用问题。当使用包含 SQL_PARAM_OUTPUT 的 SQLBindParameter 时以及获取 ResultSet 时发生致命错误。
  • (APAR IC36026)在没有 GROUPBY 子句的情况下执行带有聚集函数的 SELECT 查询的已准备语句会返回错误应答。
  • (APAR IC36027)当在搜索限定行的过程中使用 TIMESTAMP 列的索引时,搜索型 DELETE(带有 WHERE 子句)无法除去所有限定行。
  • (APAR IC36083)如果对列号大于或等于 128 的列创建索引或主键,CREATE TABLE 和 CREATE INDEX 语句会导致故障。
  • (APAR IC36069)如果对超过 256 的列位置创建了索引,可能会发生数据毁坏或者将返回 SQLSTATE 58004。此修订还可防止创建超过 256 列的表。
  • (APAR IC36070)对具有可变大小的记录(例如,VARCHAR 或 BLOB)的表执行的 REORG 语句可能导致不可预测的数据文件毁坏或应用程序故障。当记录大小因为执行 UPDATE 语句而增加时,很有可能发生这种情况。
  • (APAR IC36256)使用 Microsoft 嵌入 Visual C++ 3.0 不能成功构建 DB2 Everyplace 样本应用程序。
  • (APAR IC36270)DB2 Everyplace 不会优化某些 ORDER BY 查询,原因是它无法选择可用的索引。
  • (APAR IC37280)当应用程序尝试连接至包含空的 DB2eSYSUSERS 表的数据库时,DB2 Everyplace 数据库引擎会异常终止。当应用程序尝试建立数据库连接并在创建第一个用户标识后立即提供错误密码时,可能会看到同样的行为。
  • (APAR IC36430)当 SELECT 的项数超过 GROUP BY 的项数时,DB2 Everyplace 可能会在执行 GROUP BY 查询期间异常终止。
  • (APAR IC36695)尝试与加密数据库连接会导致 DB2 Everyplace 数据库引擎异常终止。
  • (APAR IC36570)当尝试存取存储在 PalmOS 设备上的外部介质(例如,SD 卡、CompactFlash 卡和 IBM Microdrive)上的数据库时,DB2 Everyplace 数据库引擎会返回 SQLState 57011 或 58004。
  • (APAR IC36688)当使用涉及包含空字符串的 VARCHAR 列的连接条件连接两个表时(索引正用于访存数据),DB2 Everyplace 数据库引擎会返回 SQLState 58004。
  • (APAR IC36702)DB2 Everyplace 不对空字符串匹配谓词“LIKE '%'”。
  • (APAR IC37281)当导入以引号结束的 VARCHAR/CHAR 列时,DB2 Everyplace SampleCLP 会返回错误或无效数据。
  • (APAR IC37045)当应用程序将两个十进制数字(它们的值稍微有点不同)插入到主键列中时,DB2 Everyplace 不返回 SQL State 23505。DB2 Everyplace 错误地将它们作为相同值接受。
  • (APAR IC37046)DB2 Everyplace 对字符串 concat '||' 运算符返回语法错误。
  • (APAR IC37048)DB2 Everyplace 在装有 Palm 中文操作系统的 Acer S60 设备上不接受繁体中文字符。
  • (APAR IC37329)当执行使用主键索引的 UPDATE SQL 语句(后跟使用脏位索引的 DELETE SQL 语句)时,对 DB2 Everyplace 数据库引擎的后续查询将返回不正确的结果。

DB2 Everyplace Sync Server 的新修订和新功能

以下一节以功能列表开始,然后是 DB2 Everyplace Sync Server 的最新修订。

DB2 Everyplace Sync Server 的新功能

  • 对 DataPropagator V8 的支持

    管理“DataPropagator V8 表预订”需要具有 DataPropagator V8 的使用知识。必须使用 DB2 通用数据库“复制中心”来创建并启用 DataPropagator Capture 和 Apply 服务器以及预订集。然后,可以使用“DB2 Everyplace XML 脚本编制”工具来创建“DB2 Everyplace DataPropagator 表预订”并使它与“DataPropagator 预订集”相关联。

  • XML 脚本编制工具

    现在,可以使用“XML 脚本编制”工具来改变“移动式设备管理中心”中的现有对象。

  • 与作为后端数据源的 Cloudscape 同步
  • 对 Solaris 操作系统的支持
  • “移动式设备管理中心”中的更新:

    注意:如果 Sync Server 是随 DB2 UDB 版本 8.1 安装的并且您在使用 MDAC 浏览预订时经历长时间延迟,则安装 DB2 UDB 版本 8.1 修订包 4。

    • “创建 JDBC 预订和编辑 JDBC 预订”窗口:
      • 新的立即复制复选框(除非选择此项,否则在管理操作期间不执行复制)
    • 控制预订集的顺序

      现在,可以指定将预订集发送至客户机的顺序。可以控制组中的预订集的顺序、预订集中的预订的顺序和预订中表的顺序。

    • “更改用户”窗口

      现在,可以为每个移动式设备指定多个用户。

    • “添加表”窗口中已添加了新的复选框。如果选择覆盖连接过滤器全局设置复选框,您将启用行过滤器作用域外参数。必须设置此参数才能避免作用域外的行过滤问题。
    • 远程移动式设备管理中心和服务器组管理

      允许“移动式设备管理中心”通过它支持的服务器远程运行。这通过允许从单独的物理机器和位置完成所有服务器的管理工作来支持多服务器配置。

    • 对于 DB2 数据源,用户现在可以对 Sync Server 创建的内部控制表指定缺省数据库和表空间。
  • 对使用 DB2 Everyplace ISync.NET 提供程序的 .NET 的同步支持。
  • 在 JDBC 复制源中允许外键约束

    现在,可以“父至子”顺序预订表(假定引用完整性关系包含在 JDBC 预订中)。

  • 独立和安装时迁移

    安装 Sync Server V8.1.4 会自动将较早版本的配置迁移至 V8.1.4。迁移包括控制表。此外,还可将评估版升级为完全许可版安装而不必卸载评估版。

DB2 Everyplace Sync Server 的修订

在 DB2 Everyplace V8.1(包括修订包 1 和修订包 2)以及 V8.1.4 中修正的问题,同时提供了 APAR 编号以供参考(如果适用的话):

  • (APAR IC35310)如果在“组”定义中未定义或拼错了垂直过滤参数名称,则 Sync Server 将在同步期间挂起。
  • (APAR IC35329)如果在“移动式设备管理中心”中复位文件预订然后再执行同步,则服务器上新的文件更改将不会与客户机同步。
  • (APAR IC34823)如果将 DB2 通用数据库与修订包 7 配合使用,则“移动式设备管理中心”将不启动。
  • (APAR IC35308)当同步所花的时间超过指定的传输超时(加上 30 秒)时,Palm 设备会自动关闭电源。
  • (APAR IC35309)如果源关闭,则“XML 脚本编制”工具无法删除预订。
  • (APAR IC35334)在 Palm OS 图形用户界面中某种特定顺序的连续单击将导致图形用户界面故障。
  • (APAR IC35335)Symbian 6 移动式设备上的文件预订不起作用。
  • (APAR IC36067)服务器组标识设置为“安装已毁坏”。
  • (APAR IC36016)当启用本地数据加密时,WinCE Sync Client 上的刷新事件将失败。客户机会给出一个类型为 ISCEVTTYPE_Error 而代码为 ISCEVT_ErrUnauthorized 或 ISCEVT_ErrConnectData 的错误。
  • (APAR IC35794)在非 UNICODE 的 Windows32 上,配置文件(CONFIG-ISYN)中的代码页设置对于非拉丁字符集(Cp1252)是不正确的。同步后,数据会显示为“垃圾”字符。对于中文、日语、韩国语、阿拉伯语、希伯莱语和捷克语会发生此问题。
  • (APAR IC36082)当尝试恢复已取消的同步时,发生“对 getUpdate 的意外调用”断言故障。
  • (APAR IC35403)当尝试使客户机同步时,接收到错误 SQL1040N。
  • (APAR IC35539)对 OS/390 源表的插入和更新失败,错误为 DSYD028I。
  • (APAR IC35535)MDAC 中的“高级预订定义”面板不保留您的选择。
  • (APAR IC35653)在复位最近同步的设备后复制失败(DSYS005E),而且该复制不能通过自动恢复来恢复。
  • (APAR IC35398)在 WHERE 子句中,右括号不能紧跟在参数名称后面。否则,它将导致 DB2 错误:“SQL0312N 在动态 SQL 语句、视图定义或触发器定义中使用了主变量“{parameter}”。SQLSTATE=42618。”
  • (APAR IC35980)当对预订执行编辑或删除时,DB2 Everyplace 控制数据库(DSYCTLDB)可能会毁坏。
  • (APAR IC36017) ReplicationDbMgr 报告 NullPointerException。
  • (APAR IC36165)当编辑文件预订时,如果预订名称和链接的文件(或指针)已更改,则在“移动式设备管理”中复位用户标识之前,新的链接的文件不会传送至设备。
  • (APAR IC36189)当对 DB2 OS/400 版源数据库上的表创建 JDBC 表预订时,在创建预订之后“移动式设备管理中心”进程关闭之前,预订的表可能是不可写的。错误消息为:[SQL0913] 复制期间行或对象 xxxx xxxx 类型 *FILE。在 JDBC 和上载预订中也会发生此问题。
  • (APAR IC36261)Domino 源数据库无法使用 DB2 Everyplace 镜像数据库进行复制。
  • (APAR IC36262)当关闭“移动式设备管理中心”时,java.exe 进入无限循环收集阶段,最终公布错误消息“java.lang.OutOfMemory”。
  • (APAR IC36264)当尝试从客户机设备同步至 Domino 数据源时,出现错误消息“DSYC401 未能连接至目标数据”。
  • (APAR IC36265)当使用 JDBC 复制预订源表时,不能在复制进行时读取源表上的数据。在大多数平台上没有任何错误消息,而在复制完成之前阅读器只能等待,之后阅读器才能正常地继续工作。如果源是 AS/400 上的 DB2(具有缺省 AS/400 文件配置),则阅读器将接收到以下错误消息:SQL0913N 死锁或超时导致执行不成功。
  • (APAR IC36266)现在可以创建最多 256 个字符的加密密码。先前的限制是 18 个字符。
  • (APAR IC36267)在同步期间,将 iPlanet HTTP Server 与 IBM WebSphere Application Server 配合使用(以运行 DB2 Everyplace Sync Server)的客户会在客户机设备上接收到认证错误。错误消息为“DSYC304E:出现致命错误,认证失败”。因为 iPlanet 服务器对 Sync Client 发送的消息的标题执行大小写转换,所以会发生此问题。
  • (APAR IC36419)在“移动式设备管理中心”中,如果通过取消选择“复制”页面上的复选框禁用复制,然后再重新启动 Synchronization Server,则将恢复缺省值并错误地启用复制。
  • (APAR IC36409)在预订(它涉及具有用户定义的 WHERE 子句的水平过滤器,用来将一些行从镜像数据库过滤至设备)的同步期间,Sync Server 可能因为以下错误而突然终止:“java.lang.ArrayIndexOutOfBoundsException: 1 at java.util.Vector.elementAt(Vector.java(Compiled Code)) at com.ibm.mobileservices.adapter.rdb.LookupFiltering.genUnionPhrase(LookupFiltering.java:1534)”。 遇到此错误的可能性通常很低,但在高并行性的情况下会增加这种可能性。
  • (APAR IC36411)创建 JDBC 预订(它存取 Microsoft SQL 数据源)失败,“移动式设备管理”日志中出现以下错误:DSYJ001E 发生了数据库错误。“[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer] 关键字“TABLE”附近的语法不正确。SQL 状态=HY000 错误代码=156”
  • (APAR IC36407)如果 JDBC 预订中的表具有数据类型为 CHAR 的列,并且使用了“AS/400 工具箱”JDBC 驱动程序,则 Sync Server 将拒绝用户发送的每一行并显示以下错误消息:CLI0143E 精度值无效。SQLSTATE=HY104f
  • (APAR IC36330)如果水平过滤器包含的参数后面未紧跟下列其中一个字符,您将接收到此错误:
    • 空格
    • 单引号
    • 换行符
    • 逗号
    • 垂直笔画
    • 小于号
    • 大于号
    • 等于号
    如果参数名后未跟有上面列示的其中一个字符,Sync Server 不会将参数替换为适当的值。

DB2 Everyplace Sync Client 的新修订和新功能

以下一节以功能列表开始,然后是 DB2 Everyplace Sync Client 的最新修订。

DB2 Everyplace Sync Client 的新功能

  • IBM Sync 的新图形用户界面,它利用了下列新功能而且用户界面更友好:
    • 客户机上对应每个预订的可配置目标目录
    • 基于网络速度的可配置 Sync Client 消息大小
    • 服务器代理支持
    • 可配置的 servlet 路径
  • 使用新的 DB2 Everyplace Cloudscape Sync Client 使数据同步
  • 对使用 DB2 Everyplace ISync.NET 提供程序的 .NET 的同步支持
  • 所有客户机平台上的可配置超时
  • SSL 支持:
    • 仅适用于 WebSphere Everyplace Access V4.3 环境:Palm OS、Win32 和 WinCE(仅 Pocket PC 2002)和 Linux 上的 SSL 支持。

      要在 IBM Sync 中使用 SSL:在 IBM Sync 图形用户界面的“服务器设置”面板中,在服务器 URL(统一资源定位器)中指定 HTTPS 协议。如果配置的 SSL 端口不是缺省端口(443),还应提供该 SSL 端口。要对 SSL 配置 Sync Server,请参阅相应的 WebSphere Everyplace Access 文档。

      开发使用 SSL 的应用程序: 为开发具有 SSL 支持的应用程序创建了新的 Sync Client C-API(iscServiceOpenEx)。

  • 新的受支持的客户机设备:
    • Symbian 7(Sony Ericsson P800)
    • Linux(Sharp Zaurus SL 5500 和 SL 5600)
    • Palm OS V5.0
  • 通常可从 IBM Sync 应用程序中获取目标目录(辅助存储器),也可从“客户机设置”面板中指定它。
  • Sync Client API for Java

    Java 应用程序开发者现在可以使用 Sync Client Java API(isync4j 包)来执行数据同步。有两个本机同步提供程序可用。一个同步提供程序使用 JNI 来调用本机 Sync Client 库以执行同步。另一个提供程序仅用于 J9 VM for PalmOS。有关附加信息,请参阅《DB2 Everyplace 应用程序开发指南》和 isync4j Javadoc。

  • Sync Client API for C

    IBM Sync Client API 已更改,它将更清晰,更灵活并提供了新功能。API 包装器仍然支持 IBM Sync Client API v.7.2.1,但只能使用新的 API 访问新功能。

  • MIDP 设备的同步

    现在只有 DB2 Everyplace SDK Edition 包括此功能。创建新的 J2ME MIDP Sync Client 以支持为 J2ME MIDP 构建应用程序,这些应用程序可使预订与 MIDP 文件系统同步以供应用程序使用。利用 J2ME MIDP 记录管理系统而不是 DB2 Everyplace(它不能在 J2ME MIDP 上运行)。

DB2 Everyplace Sync Client 的修订

在 DB2 Everyplace V8.1(包括修订包 1 和修订包 2)以及 V8.1.4 中修正的问题,同时提供了 APAR 编号以供参考(如果适用的话):

  • (APAR IC35552)在将本地加密与 Java Sync API 配合使用的 Palm OS 上,方案如下所示:
    1. 同步。
    2. 输入用户标识和密码,从而产生成功的同步。
    3. 尝试查询表并接收到错误消息 SQLSTATE42501“不允许授权标识对标识的对象执行指定的操作”。
  • (APAR IC35910)在 WinCE 安装 CAB 文件中找不到 Java Sync API(isync4j.jar)和代理进程代理(dsyagent.dll)文件。
  • (APAR IC35980)Sync Client 的行为异常:客户机返回“同步成功结束”,但实际上未同步任何用户预订。
  • (APAR IC36166)当尝试与 Pocket PC 和 Sprint Wireless PCMCIA 卡同步时,接收到以下 Sync Client 错误:“dsyc699e 未知的网络错误”。Verizon Wireless 卡上不会发生此问题。
  • (APAR IC36206)Palm 认证过程期间存在问题。如果三次输入不正确的用户密码或在“DB2e 认证”窗口中按“取消”按钮,IBM Sync 会停止正常工作。在这之后尝试同步将失败,并出现以下错误:“DSYC698I:内部 SQLstate 错误”。
  • (APAR IC36408)当在 WinCE 设备上使用繁体中文版的 IBM Sync 时,详细预订信息面板和用于输入加密表的用户标识和密码的面板上出现乱码。只会在用户界面上发生此问题,不会影响同步。
  • (APAR IC36410)在 Palm 设备上,德语版的 IBM Sync 程序在同步期间遇到致命错误并出现警报窗口,显示“致命异常”消息以请求系统复位。只会在德语版本中发生此问题。
  • (APAR IC36413)在同步后,如果从“移动式设备管理中心”中除去预订,客户机在更新后续同步中的配置时存在问题。客户机仍将尝试使这些待除去的预订同步。
  • (APAR IC36412)当在 Palm 设备上使用 Java 样本程序(ISyncSample)时,表同步将导致设备异常终止。在 Palm 仿真器上,将显示堆栈溢出异常。
  • (APAR IC36574)当使主键由所有列组成的表同步时,如果取消同步然后再次同步,Sync Client 可能报告 SQLstate 23505。
  • (APAR IC36685)当 Sync Client 正在使文件预订同步时,如果同步失败,则在 MDAC 上复位文件预订(或用户)之前,它将不会在将来同步期间再次尝试使文件预订同步。
  • (APAR IC26366)根据 API 的当前规范,DB2 Everyplace 对数据库密码具有 18 个字符的长度限制,Sync Client 也分配了 18 个字符的存储空间以供应用程序传入密码。因此,如果应用程序因为使用超过 18 个字符的密码而溢出预先分配的存储空间,将导致 Sync Client 异常终止。此限制适用于所有平台。
  • (APAR IC37573)当使用 Sync Client API 为 Palm OS 开发 Sync Client 应用程序时,会发生此问题。每次调用 DB2 Everyplace Sync Client API 函数 iscEngineSync 或 iscEngineSyncConfig 时,客户机都会在同步开始时建立(或拨号)RAS 连接,然后在同步完成时关闭连接。因此,如果连续调用这两个 API 函数,您会看到 Sync Client 建立和重新建立 RAS 连接若干次。
  • (APAR IC37580)当通过无线电话从 Handspring Treo 设备进行同步时,Sync Client 会报告连接故障错误。

已知注意事项和限制

本节包含适用于此发行版的 DB2 Everyplace 的已知注意事项和限制的列表:

  • 在 UPDATE、INSERT 或 DELETE 语句的自动落实方式中,DB2 Everyplace 客户机数据库的用户可能会遇到性能降低的问题。此问题的变通方法是显式使用手动事务并将多个更改组合到单个落实操作中。
  • 对于数据库引擎上的 Ado.NET:
    • 使用远程存储过程调用的结果集检索对结果集的大小有限制。会在将来的发行版中除去此限制。
    • 对于不受支持的方法或属性,将抛出“System.NotSupportedException”。
  • 当 Sync Client 正在与多个目标数据库同步时,如果有多个数据库包含加密表,则本地数据库加密不受支持。
  • Cloudscape 客户机并不支持 DB2 Everyplace 客户机支持的所有功能。例如,多服务器、对预订集/预订/表的排序和本地数据加密不受支持。
  • “连接过滤”功能不支持多个表引用。如果用户 WHERE 子句包含多个表引用,则将对该 WHERE 子句禁用“连接过滤”功能并记录警告 DSYD029W。在没有“连接过滤”功能的情况下,WHERE 子句继续工作。
  • DataPropagator 表预订不支持引用完整性。
  • 对于“DataPropagator 表预订”,复制必须总是在镜像数据库服务器上运行。这意味着如果在管理性操作期间需要执行复制,“移动式设备管理中心”必须在镜像数据库服务器上运行。
  • 不支持需要用双引号括起来的数据库对象名。
  • 一般说来,表中行的最大大小受数据源限制。将表添加至 JDBC 预订会进一步限制最大行大小。最大行大小的附加限制大约是 125 个字节。

商标

以下各项是国际商业机器公司在美国和/或其他国家或地区的商标:
AIX
DB2
DB2 Universal Database
IBM

Microsoft、Windows、Windows NT 和 Windows 徽标是 Microsoft Corporation 在美国和/或其他国家或地区的注册商标。

其他公司、产品或服务名可能是其他公司的商标或服务标记。