PQ57523: MSSQLPORTABILITYLAYER CLASS CONVERTS TIMESTAMP TO DATETIMESTAMP

Fixes are available
WebSphere Application Server Version 4.0 Fix Pack 3 (Version 4.0.3)
3.5.4-3.5.7, 4.0.2-4.0.7: Component cumulative Connection Manager fix

APAR

APAR status
Closed as program error.

Error description
If a timestamp is passed to MSSQLPortabilityLayer createTableFor
Persister, the call:
doctoredSql = replaceString(doctoredSql, " TIME", " DATETIME");
.
Will change a TIMESTAMP to DATETIMESTAMP, which is not a valid S
QLServer data type.
TIMESTAMP is a valid type and should not be changed.
Persister, the call:doctoredSql = replaceString(doctoredSql, " TIME", " DATETIME");.Will change a TIMESTAMP to DATETIMESTAMP, which is not a valid SQLServer data type.TIMESTAMP is a valid type and should not be changed.
Local fix
Problem summary
****************************************************************
* USERS AFFECTED: All Websphere Application Server users of    *
*                 Microsoft SQL server as their Database.      *
****************************************************************
* PROBLEM DESCRIPTION: The MSSQL portability layer was         *
*                      converting DATE -> DATETIME,            *
*                      TIME -> DATETIME, and DOUBLE -> FLOAT.  *
*                      This would result in TIMESTAMP being    *
*                      converted to DATETIMESTAMP, which is    *
*                      not valid.                              *
****************************************************************
* RECOMMENDATION:                                              *
****************************************************************
MSSQLServer does not support the DATE, TIME, or DOUBLE data
types so the createTableForPersister method converts occurrences
of these Strings as follows,
DATE --> DATETIME,  TIME --> DATETIME, AND DOUBLE --> FLOAT
The problem here is that ALL occurrences of these Strings (in
this case " TIME") within the CREATE TABLE statement are being
replaced.  Sometimes it is valid to do so; sometimes it is not.
In this case, the customer was correctly using another
MSSQLServer type, called TIMESTAMP, which happens to begin with
the String TIME.  This was then converted to DATETIMESTAMP,
which is not a valid data type.
Problem conclusion
The code was changed to increase the amount of text in the SQL
statement which must be matched for replacement.  This should
avoid inadvertently converting parts of column names and other
data types.
Temporary fix
Comments
APAR information
APAR numberPQ57523
Reported component nameWAS STANDARD NT
Reported component ID5648C8301
Reported release350
StatusCLOSED PER
PENoPE
HIPERNoHIPER
Submitted date2002-02-05
Closed date2002-03-21
Last modified date2002-03-21

APAR is sysrouted FROM one or more of the following:

APAR is sysrouted TO one or more of the following:APAR is sysrouted FROM one or more of the following:

PQ59311

Modules/Macros
JDBC
APAR is sysrouted TO one or more of the following:PQ59311Modules/Macros

Fix information
Fixed component nameWAS STANDARD NT
Fixed component ID5648C8301

Applicable component levels
R350 PSYUP











Document Information

Product categories: Software, Application Servers, Distributed Application & Web Servers, WebSphere Application Server, General
Software version: 350
Reference #: PQ57523
IBM Group: Software Group
Modified date: 2002-03-21