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 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
  • 对 Power PC、Strong ARM 及 XScale 处理器上的 Linux 操作系统的支持(仅在 DB2 Everyplace 的 SDK 版本中可用)
  • 通常可从 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 会报告连接故障错误。

软件开发工具箱(SDK)组件

以下一节描述在 DB2 Everyplace SDK Edition 中提供的组件。

SDK 是一个软件包,封装了评估版许可证 DB2 Everyplace 数据库、Mobile Application Builder、附加 DB2 Everyplace 开发工具和技术以及用于开发 DB2 Everyplace 应用程序的文档。

  • DB2 Everyplace Mobile Application Builder(MAB)

    有关版本 8.1.4 的 MAB 修订和功能的详细信息,请参阅随 MAB 8.1.4 提供的发行说明。

    Mobile Application Builder(MAB)是一个快速应用程序开发(RAD)工具,它使您能够生成复杂的关系型 DB2 Everyplace 数据库应用程序,而无需具备编程技巧或特定的目标设备属性知识。MAB 生成“胖客户机”应用程序, 与使用无线标记语言的应用程序相比,用来产生这些应用程序的编程语言具有更高的逻辑复杂性和可使用性。通常, 这些应用程序可使用临时连接或同步,而关键数据驻留在设备本地。MAB 为使用 PalmOS 的移动式设备生成 C 语言代码,为支持“Java(TM) 虚拟机”的设备生成 Java 代码,包括基于 WinCE/PocketPC(例如,Compaq iPAQ StrongARM 设备)、Symbian OS V6(例如,Nokia Communicator 92XX series)、Symbian OS V7(例如,Sony Ericsson P800)和嵌入式 Linux(例如,Sharp Zaurus 5500/5600)的设备。

  • 用于 IBM Websphere Studio Device Developer(WSDD)的 DB2 Everyplace 插件和其它基于 Eclipse 的开发工具

    用于 WebSphere Studio 的 IBM DB2 Everyplace 插件使开发者能够创建复杂的 Java J2ME 应用程序以使用 DB2 Everyplace 关系数据库和同步技术。

    该插件支持在 WSDD 中受支持的那些目标设备平台(支持 J2ME 的目标设备),DB2 Everyplace 数据库也支持这些平台。该插件扩展了对基于 PalmOS 和 PocketPC 平台的设备开发的应用程序的支持,包括 IBM J9 Java 虚拟机运行时封装。

    尽管该插件被设计为在任何基于 Eclipse 的“集成开发环境”工具中都可用,但它具有在 WSDD 中使用时特别有用的功能。

    此 SDK 附带包括该插件的 1.0.1 版本。如果正在使用 WSDD 5.0,则表示在使用版本 1.0.0 的 DB2 Everyplace 插件。版本 1.0.0 的 DB2 Everyplace 插件可从 WSDD Web 站点下载。在下载页面上,选择 5.0 and related downloads 以获取正确的 DB2 Everyplace WSDD 插件。如果在使用 WSDD 5.5,则表示在使用版本 1.0.1 的 DB2 Everyplace 插件。

  • 用于 AppForge MobileVB(TM) 的 DB2 Everyplace 插件

    通过使用此插件,Microsoft Visual Basic 开发者可以使用 AppForge's MobileVB(TM) 编写 DB2 Everyplace 应用程序。使用 MobileVB 的 Visual Basic 程序员现在可以很容易地开发使用 DB2 Everyplace 关系数据库和同步技术的移动式设备应用程序。受支持的移动式平台是基于 PalmOS 或 Nokia 9200 Communicator(SymbianOS)的设备或基于 WinCE/PocketPC 的设备。

    版本 8.1.2 的修订:在使用版本 8.1 的“用于 AppForge MobileVB(TM) 的 DB2 Everyplace 插件”开发的 WinCE 应用程序中,同步失败。此问题已在版本 8.1.2 中作出修正。

  • 使用 Java Server Pages(JSP)的应用程序开发

    包括了用于使用数据库驱动的 JSP 页的 JSP 工具,这些页面是通过 WebSphere Studio Java Bean 构建的。使用一个小工具分析 WebSphere Studio JSP 页,于是就能够在移动式设备上浏览这些页面和非连接环境中的本地 DB2 Everyplace 数据库提供的数据。

    版本 8.1.2 的新功能:

    • 对 Symbian OS V6 的新的 JSP 支持。对使用 WebSphere Studio Application Developer V5.0 开发的 DB2 Everyplace JSP 应用程序的支持。

    版本 8.1.4 的新功能:

    • 对使用 WebSphere Studio Application Developer V5.0 开发的 DB2 Everyplace JSP 应用程序的支持。
  • 用于 Pocket PC、Palm(68 K)和 Linux(Monta Vista)设备平台的 IBM J9 Java(TM) 虚拟机运行时

    有关详细信息,请参阅 \SDK\J9 目录中的自述文件。

  • 附加应用程序开发文档

    包括了附加出版物和白皮书以帮助您使用 DB2 Everyplace 和开发应用程序。

    • \Samples 目录包括未与其它 DB2 Everyplace 组件包括在一起的附加 DB2 Everyplace 样本应用程序。
    • \Tutorials 目录包括使用 DB2 Everyplace 的逐步教程。

已知注意事项和限制

本节包含适用于此发行版的 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 在美国和/或其他国家或地区的注册商标。

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