IBM WebSphere Business Integration Adapter for JDBC V2.6.9 说明

本文档包含下列部分:
增强功能和修订
新增和修改的连接器属性
添加、更改和修改的文件
升级说明

下表列示了修订包 V2.6.9 中的增强功能和修订。
增强功能
#CRAPAR标题详细信息
190337需要提供对 HP Integrity 平台上的 HP-UX 的支持
症状:对于 HP Integrity 平台上的 HP-UX,该适配器应该受到支持
解决方案:已提供支持
295501TimingStats 功能部件的增强
症状:TimingStats 的日志文件中的信息不完整
解决方案:属性 BOInstanceTimingStats 已添加至业务对象。BOInstanceTimingStats 属性比配置文件中的 TimingStats 属性具有更高优先级。如果同时对这两个属性设置了有效值,那么适配器将仅使用 BOInstanceTimingStats。
395505如何使空闲代理连接超时
症状:存在太多未使用的空闲连接
解决方案:已添加属性 IdleTimeAndCheckInterval 以清除空闲连接。它是一对整数:IdleTime 和 CheckInterval。定界符为逗号。CheckInterval 指定循环来检查 JDBC 连接池中闲置连接的空闲时间。IdleTime 指定最大的空闲时间。如果一个闲置连接的空闲时间超过为 IdleTime 设置的值,那么适配器会关闭连接。当 JDBC 连接池中的连接数量达到 MinimumDatabaseConnections 中指定的数量时,即使某些连接已经闲置了很长时间,适配器也不会关闭任何连接。
495525JDBC 连接器连接池
症状:对 JDBC 连接器连接池重新进行设计
解决方案:已经添加了五个新属性,以使您能够在 JDBC 连接池中创建连接。 MaximumDatabaseConnections 属性指定由 JDBC 连接池保留的最大连接数量。它是一个整数,缺省值为 5;MinimumDatabaseConnections 属性指定应该保留在 JDBC 连接池中的最小连接数量。它是一个整数,缺省值为 1;MaxDBConnectionsInBatch 属性指定采用批处理方式每次可以创建的最大连接数量。它是一个整数。如果未指定此属性,那么将禁用创建批处理连接的功能;ThresholdOfCreatingConnectionsInBatch 属性指定开始创建批处理连接的阈值。它是一个整数,缺省值为 0;UsingDriverConnect 属性是布尔类型。如果此属性为 true,那么 WBI JDBC 适配器将使用 Driver.connect API 来建立数据库连接。否则,将使用 DriverManager.getConnection 来建立数据库连接。
修订
#CRAPAR标题详细信息
190735JR27571JDBC 2.6.6.IF1 适配器接收到 JDBCEventmontior 异常
症状:在获取有效连接之前,当 pollForEvent 开始时,入站操作失败。
解决方案:已经添加新的属性 RetryConnCountAndInterval,以便在访存事件之前测试连接。
295480JR28117适配器未将计时消息写入日志
症状:使用 TimingStats 属性时,适配器未将计时消息写入日志文件,而是写入跟踪文件。
解决方案:采用该修订,适配器会将计时消息写入日志文件。
391600打印与“BOInstanceTimeOut”相关的错误消息
症状:打印与 BOInstanceTimeOut 相关的错误消息。
解决方案:此问题已经在增强功能 95501 中解决。
489811JR27130JDBC 连接器消息 34043 未提供第二个参数
症状:JDBC 连接器消息 34043 未提供第二个参数。
解决方案:已经为消息 34043 添加第二个参数。


下表列示了修订包 V2.6.8 中提供的增强功能和修订。
增强功能
#CRAPAR标题详细信息
189151WebSphere Business Integration Adapter for JDBC 业务对象实例级超时
症状:Adapter for JDBC 不支持业务对象实例级超时。业务对象实例级超时意味着可以为不同业务对象实例设置不同超时。
解决方案:适配器现在包括 BOInstanceTimeOut 属性(业务对象实例超时)。BOInstanceTimeOut 属性的优先级高于 QueryTimeOut 属性。如果同时对 BOInstanceTimeOut 和 QueryTimeOut 设置了有效值,那么适配器将使用 BOInstanceTimeOut。并且,BOInstanceTimeOut 的包含范围大于 QueryTimeOut。除了包含检索操作以外,BOInstanceTimeOut 还包含了所有其他操作,甚至包括运行存储过程。
修订
#CRAPAR标题详细信息
189540JR27085只能对最后一个子业务对象运行存储过程。
症状:在调用 AfterretrieveSP 存储过程时,适配器仅使用最后一个子对象的存储过程来检索数据;因此,只有最后一个子对象可以具有正确的数据。
解决方案:适配器能够以递归方式对子业务对象运行 AfterretrieveSP 存储过程,并且将使用每个子业务对象来获取数据。
269922当 CloseDBConnection 设置为 true 并且 PreserveUIDSeq 设置为 false 时,将生成 NullPointerException 异常。
症状:当 CloseDBConnection 设置为 true 并且 PreserveUIDSeq 设置为 false 时,将生成 NullPointerException 异常。适配器将用时三分钟关闭。
解决方案:已修正此问题。


下表列示了修订包 V2.6.7 中的增强功能和修订。
增强功能
#CRAPAR标题详细信息
169348支持 Redhat Linux 4 平台
症状:在 Redhat Linux 4 平台上,适配器应该受支持。
解决方案:已提供支持。
269137支持 Suse Linux 9 平台
症状:在 Suse Linux 9 平台上,适配器应该受支持。
解决方案:已提供支持。
修订
#CRAPAR标题详细信息
188523JR26435多次处理事件
症状:当适配器检索到入站操作的客户数据时,如果连接无效,那么适配器将从连接池中清除所有无效连接。在此过程中,适配器会清除该入站连接的资源(事件监视器)。因此,在完成先前的检索操作后,适配器无法更新事件状态,并且它将重新启动。在重新启动后,适配器将继续处理未完成的事件。因此,同一个事件将被处理两次。
解决方案:清除无效连接后,适配器启动新的事件监视器,以便对新的轮询连接创建必需资源。然后,入站操作可以正常继续。
287258JR25638使用 Adapter for JDBC V2.6.5 时,发生 Parseexception 异常。
症状:当属性值为 ""(CxBlank),并且数据类型为布尔型、整型、浮点型、双精度型或日期型时,发生“属性值无效”错误。发生此问题的原因是适配器根据属性值的数据类型对其进行解析,对于这些数据类型而言,"" (CxBlank) 不是有效的值。
解决方案:如果属性值为 "" (CxBlank) ,并且数据类型为布尔型、整型、浮点型、双精度型或日期型时,适配器会将该属性值转换为空,而不是生成“属性值无效”错误。
387160JR25527当适配器突然停止轮询时,请求处理仍然继续。
症状:在长时间运行适配器之后,数据库连接可能会失效。如果该连接无效,那么出站操作将失败,并且适配器将清除所有无效连接。当适配器清除入站连接的资源(事件监视器)时,轮询事件操作将失败。
解决方案:清除无效连接后,适配器将启动新的事件监视器,以便对入站连接创建必需资源。然后,入站操作将正常地继续。


下表列示了修订包 V2.6.6 中的增强功能和修订。
增强功能
#CRAPAR标题详细信息
此修订包中未提供任何增强功能。
修订
#CRAPAR标题详细信息
185008JR24342CxBlank 值解释为空。
症状:如果关键属性值为 CxBlank 并且动词为 Update 或 Retrieve,那么在 WHERE 子句中会将 CxBlank 解释为空。
解决方案:已添加特定于应用程序信息 BLANKFLAG。如果对特定于应用程序的属性信息设置了“BLANKFLAG=true”,那么在 WHERE 子句中会将 CxBlank 值解释为 ""。
268865JR25076UNVL=NULL 时,动词 Create 和 Update 处理空日期的方式不一致。
症状:根据 Adapter for JDBC 文档,当属性值为 CxIgnore(空)时,特定于应用程序的信息“UNVL=NULL”应该生效。但是,对于 Create 操作,此特定于应用程序的信息在属性值为 CxBlank("")时生效,这不正确。
解决方案:对于 Create 操作,特定于应用程序的信息“UNVL=NULL”将在属性值为 CxIgnore 时生效。因此,Create 和 Update 动词具有相同的行为,对于特定于应用程序的信息“UNVL=NULL”,它们都使用 CxIgnore。
385595JR24704在 JDBC 中运行带有整数输入参数的存储过程时,将显示错误消息。
症状:运行存储过程时,适配器将检查输入参数值是否与其数据类型相匹配。但是,由于验证代码中存在错误,因此当数据类型为整型时,适配器将生成错误。
解决方案:已添加代码,以便相应地检查该值的数据类型。
485363JR24549当 PingQuery 失败时,适配器不停止。
症状:当适配器处理将动词设置为 Update 的业务对象时,即使 SQL 语句 PingQuery 失败,它也不会停止并重新启动。
解决方案:当 SQL 语句 PingQuery 失败时,适配器会将返回状态设置为 -2,以便 Adapter Framework 正确地停止然后重新启动适配器。
585144JR24427如果属性的数据类型为整型、浮点型和双精度型,那么 UNVL 在动词为 Update 时无效。
症状:对属性使用 UNVL、将 CxIgnore 设置为此属性的值并且将动词设置为 Update 时,适配器会尝试将 CxIgnore(空)的值解析为数字。因此,将发生 NumberFormatException 异常。
解决方案:当使用查找 UNVL,属性的值为 CxIgnore 并且动词设置为 Update 时,适配器将不解析 CxIgnore。适配器将使用特定于应用程序的信息 UNVL 的值来继续工作。
684876JR24278适配器生成解析错误时,它未在错误消息中提供属性名。
症状:在解析属性时产生错误的情况下,适配器未在错误消息中提供属性名。
解决方案:错误消息提供了属性名,以帮助您确定问题。


下表列示了修订包 V2.6.5 中的增强功能和修订。
增强功能
#CRAPAR标题详细信息
167678需要更新适配器的 getVersion() 实现。
症状:应该通过清单文件而不是代码中设置的静态变量来实现适配器版本。
解决方案:已进行此更新。
283827需要支持 Solaris 10 平台。
症状:在 Solaris 10 平台上,适配器应该受支持。
解决方案:现在已提供支持。
383686应该除去 JDBC ODA 启动脚本中对 DataDirect 驱动程序的引用。
症状:需要从 JDBC ODA 的启动脚本中除去类路径中的 DataDirect 驱动程序 JAR 文件。
解决方案:已除去 DataDirect 驱动程序引用。必须在类路径中添加相应的 JDBC 驱动程序文件。
修订
#CRAPAR标题详细信息
167959有两个位置错误地使用了跟踪消息号 32016。
症状:有两个位置错误地使用了跟踪消息 32016,正确的跟踪消息号是 32017。
解决方案:已经在这两个位置中将跟踪消息 32016 替换为跟踪消息 32017。
267929返回的 CWConnectorExceptionObject 类实例的消息不正确。
症状:当适配器处理由于异常而失败的服务请求时,它会重试该操作。第二次尝试处理此服务请求再次失败时,返回的 CWConnectorExceptionObject 类实例的消息不正确。
解决方案:已修正此缺陷。现在,第二次失败时返回的消息正确。
382879JR22976在执行 RetrieveSP 操作时,适配器接收到“Ref-Cursor 无效”错误。
症状:在尝试使用通过游标返回结果集的存储过程从表中检索业务对象时,适配器遇到来自 Oracle 的“Ref-Cursor 无效”错误。
解决方案:已修正此缺陷。
474554JR22906发生 java.sql.SQLException 错误:SP 中的 CLOB 没有足够的内存。
症状:适配器需要更多内存来读取和存储 CLOB 类型的数据。
解决方案:已修正此缺陷。适配器已优化了用于 CLOB 类型数据的内存分配。
574241JR23258特定于应用程序的信息 UNVL=NULL 不能正常工作。
症状:当指定了特定于应用程序的信息 UNVL=NULL,并且此属性的值为空时,适配器会忽略该属性,因此无法按预期方式在数据库中将它的值更新为空。
解决方案:已修正此缺陷。
674237JR22731适配器生成诸如“where ... xxx is null”之类的 SQL 语句,这会导致出现 CLI0612E 异常。
症状:对于动词 RetrieveByContent,在生成 SQL 查询“where ... is null”时,适配器尝试在预编译语句中设置冗余属性值。
解决方案:已修正此缺陷。
774225JR22760ODA 将 Oracle 数据库中的 NUMBER 字段转换为字符串。
症状:ODA 未使用分隔符,但精度与小数位之间必须使用分隔符。另外,算术运算符 +/- 没有任何空格。
解决方案:对于那些数据类型为“十进制”的列,长度将增加 2 个字节。
867361UID 表中没有记录时,适配器将显示不正确的错误消息。
症状:当 UID 表中没有记录时,适配器将显示一条错误消息,指出数据库连接存在问题。
解决方案:已修正此缺陷,适配器现在将显示相应的错误消息。
983714JR23663适配器将不完整的业务对象写至 Oracle 数据库。
症状:如果适配器在事务处理期间接收到关闭消息,那么它会执行连接关闭操作。但对于 Oracle 数据库,要求在执行连接关闭操作前执行落实操作,而不是执行回滚操作。否则,该事务可能导致 Oracle 数据库中的数据不一致。
解决方案:接收关闭消息时,为确保数据库中的数据保持一致,适配器显式地执行回滚操作。
1083595JR23449对适配器的 DB2(R) 序列支持有错误。
症状:DB2 8.0 和更高版本支持序列;因此,对于 DB2 8.0 和更高版本,适配器支持序列。但是,无法为 DB2 序列生成正确的 SQL 语句。
解决方案:已修正此缺陷,并且将为 DB2 序列生成正确的 SQL 语句。将使用正确的 SQL 语句从 DB2 序列中获取数据库中 UID 的值。
1168092JR23653将特定于应用程序的信息 PSC 设置为 true 时,会生成 java.lang.ClassCastException 异常。
症状:在将特定于应用程序的信息 PSC 设置为 true 的情况下,运行存储过程时,适配器将生成 java.lang.ClassCastException 异常。这是存储过程的预编译语句高速缓存中存在的错误。
解决方案:首先为存储过程 SQL 语句声明预编译语句。然后,将此预编译语句强制转换为可调用语句。


下表列示了修订包 V2.6.4 中的增强功能和修订。
增强功能
#CRAPAR标题详细信息
此修订包中未提供任何增强功能。
修订
#CRAPAR标题详细信息
173915修订包代码行中缺少代码。
症状:在将临时修订代码行中的代码合并到修订包代码行时,从 JDBCDBManager 类中删除了一个很小的代码块。
解决方案:已修正此问题。


下表列示了修订包 V2.6.3 中的增强功能和修订。
增强功能
#CRAPAR标题详细信息
170569应该除去适配器启动脚本中对 DataDirect 驱动程序的引用。
症状:需要从适配器的启动脚本中除去类路径中的 DataDirect 驱动程序 JAR 文件。
解决方案:已除去 DataDirect 驱动程序引用。必须在类路径中添加相应的 JDBC 驱动程序文件。
修订
#CRAPAR标题详细信息
171314JR21597额外的 WHERE 子句和“is null”支持
症状:当额外的 WHERE 子句包含多个属性,并且使用特定于应用程序的 Retrieve 动词信息时,“is null”支持不起作用。
解决方案:在特定于应用程序的动词信息中使用包含多个属性的正确查询。
271139JR21480用于通过“is null”子句检索业务对象的事件键为空白值
症状:当事件的某些键设置为空时,适配器不会生成带有“is null”子句的 SQL 查询。
解决方案:已修正事件对象键中 CxBlank 的用法,现在,适配器进行轮询时将正确地构建“is null”子句。
371391JR22459游标泄漏导致最大游标数超出设定的限制。
症状:游标泄漏导致最大游标数超出设定的限制。
解决方案:现在,从存储过程调用返回空结果集时,将关闭该结果集。
472378JR22444在业务对象的键中使用空白值,以便使用“is null”子句进行检索
症状:当适配器处理某些键已被指定为空的入局业务对象时,它不会生成带有“is null”子句的查询。
解决方案:已将适配器更改为在键值中提供 CxBlank 值,以便适配器正确地构建“is null”子句。
572988JR22446检索由数据库中运行的函数返回的输出参数时,顺序不正确。
症状:检索类型为字符串的输出参数时,使用了错误的索引值。
解决方案:已修正此缺陷。
667474JR22154如果 CloseDBConnection 设置为 true,那么适配器将无限期地等待获取连接。
症状:达到最大数据库连接数之后,仅当释放连接并且通知线程时,该线程才会退出 fetchConnection。如果 CloseDBConnection 设置为 false,那么将调用通知操作。但是,当 CloseDBConnection 设置为 true 时,不会调用通知操作。
解决方案:已修正此缺陷。
767496JR22431适配器不允许对存储过程的输入参数插入大于 32k 的数据。
症状:对于类型为 CLOB 的存储过程输入参数,不会进行任何特殊处理。
解决方案:已修正此缺陷。
845825JR22463Windows 的启动脚本包含多余的暂停语句。
症状:Windows(R) 的启动脚本中有两个暂停语句。
解决方案:已除去额外的语句。
961153JR21014当 UseDefaultsForPolling 设置为 true 时,不会对子业务对象运行 RetrieveSP。
症状:如果 RetrieveSP 属性值设置为 CxBlank,并且 UseDefaultsForPolling 设置为 true,那么特定于应用程序的存储过程信息检索器不会解析特定于应用程序的存储过程信息。如果 UseDefaultsForPolling 设置为 true,那么会发生这种情况。
解决方案:已修正此缺陷。
1066540将 TimingStats 设置为缺省值时,适配器会记录错误。
症状:模板文件中缺少 TimingStats 属性。
解决方案:已修正此缺陷。
1167621JR22378适配器无法处理长度在 4000 到 4096 之间的 CLOB 数据。
症状:对 CLOB 数据大小进行的检查不正确。
解决方案:已修正此缺陷。
1271729JR21809JDBC ODA V2.6.2 无法与 Adapter Framework 中的业务对象设计器配合工作。
症状:Adapter Framework V2.4 不支持双向脚本。因为 JDBC ODA 的版本 2.6.2 具有支持双向的功能部件,所以在与 Adapter Framework V2.4 配合使用时,它会失败。
解决方案:已对 JDBC ODA 进行修正,以检查对象发现工具箱是否支持双向功能并相应地进行调用,从而确保与较早版本兼容。
1372255JR21999适配器无法检索带有空 CLOB 列的行。
症状:当 CLOB 类型变量为空时,将生成 NullPointerException 异常。
解决方案:适配器现在能够正确地检查空值。
1473153JR22462在进度数据库中检索基数为 n 的业务对象时失败。
症状:如果对已关闭的结果集执行关闭操作,那么进度数据库将生成异常。
解决方案:已对适配器进行更正,从而确保只调用一次关闭操作。
1573466JR22458RetrieveSP 似乎已被调用,但未返回结果集。
症状:在处理 RetrieveSP 存储过程的输出参数完成前调用了 AfterRetrieveSP 存储过程。
解决方案:已修正此缺陷。
1673476JR22447存储过程不支持长整型数据类型。
症状:适配器在处理存储过程的参数时,未使用 DriverSupportForLong 属性。
解决方案:已修正此缺陷。


下表列示了修订包 V2.6.2 中的增强功能和修订。
增强功能
#CRAPAR标题详细信息
此修订包中未提供任何增强功能。
修订
#CRAPAR标题详细信息
161712JR21196当 CloseDBConnections 的值为 true 时,发生适配器内存泄漏
症状:当 CloseDBConnections 的值设置为 true 时,发生适配器内存泄漏。
解决方案:检查 closeDBConnection 的值是否设置为 true。如果该值设置为 false,那么适配器会创建连接的散列表条目,以便在预编译语句高速缓存中使用。
245017JR21320复制属性时,未将值传播至子业务对象。
症状:如果子业务对象的属性具有下列特定于应用程序的信息值,那么可以正确地将适当的值复制至子属性:PH=true:CA=..[ParentAttrName]。但是,整体操作将失败。发生此情况的原因是,未正确处理特定于应用程序的 PH 信息属性。
解决方案:已修正此缺陷。
361625JR21339进行遍历时,适配器不会返回准确的错误。
症状:如果在检索时找不到非必需的归属子对象,那么连接器会生成错误消息。
解决方案:已修正此缺陷。
444568JR21317对存储过程进行日期处理导致了空指针异常。
症状:对存储过程进行日期处理导致了空指针异常。
解决方案:已修正此缺陷。
566453JR21272未使用借助 archive_table_oracle.sql 脚本创建的表 xworlds_batch_events。
症状:未使用借助 archive_table_oracle.sql 脚本创建的表 xworlds_batch_events。
解决方案:不再创建 xworlds_batch_events 表,已从脚本 archive_table_oracle.sql 中除去该表。


下表列示了修订包 V2.6.1 中的增强功能和修订。
增强功能
#CRAPAR标题详细信息
此修订包中未提供任何增强功能。
修订
#CRAPAR标题详细信息
158941JR20679计时统计信息未显示方法名称。
症状:已将方法名称传递至跟踪该消息的实用程序方法,但是跟踪消息中并不包括该方法名称。
解决方案:已修正此缺陷。
260212未使用父代中的新标识列值来填充子对象的外键。
症状:当数据库类型为 DB2(R) 时,在数据库的表中生成标识值之后,却在数据库中检索不到该标识值。
解决方案:已修正此缺陷。
344732JDBC ODA 去掉了业务对象属性名称中的下划线(“_”)字符。
症状:JDBC ODA 去掉了业务对象属性名称中的下划线(“_”)字符,因为它被视为特殊字符。
解决方案:现在,将下划线字符作为业务对象属性的一部分包括在内。


下表列示了新增的连接器属性
#版本平台添加或除去属性(请注意,属性名区分大小写)
在此版本的修订包中,未新增/修改任何连接器属性。


下表列示了新增文件或更改的文件
#版本平台添加、除去或替换文件(从 %INSTALLDIR% 目录开始)
在此版本的修订包中,未新增/修改任何新文件。


升级说明
在此版本的修订包中,未提供任何特殊的升级说明指示信息。

要查看此修订包中已更新的文件列表,请参阅“updatedFileList.txt”文件。

2008 年 4 月 4 日下午 6:00
© 2008 IBM Corporation. Proprietary and Confidential. All Rights Reserved.