bmwm3 发表于 2016-11-14 08:31:29

DB2 V8fp5 SQLSTATE 01517

Problem summary


[*]USERS AFFECTED:
All
PROBLEM DESCRIPTION:
Inserting large amount of multi-byte character data into a
CLOB column can result in data corruption. The result data in
the CLOB column in such case would contain characters 0xFC.

PROBLEM SUMMARY:
The problem can occur when working with large lob data (>128kB).
The lob data is processed in chunks as they are passed by the
client.When an internal lob processing buffer containg the
data chunks is full and there is still data to process, the lob
data is translated by codepage conversion functions, moved into
a temporary table and next chunk of data is processed.In this
particular defect situation the buffer full condition occurs in
the middle of the multi-byte character.The last byte in the
buffer is not valid multi-byte character so it suppose to be
remembered and used as the first character of the following
chunk.Due to a defect this dangling character is dropped,
causing all the next multi-byte characters in the following
chunk to be byte shifted.
Good data:
006A006100760061002E006C0061006E    .j.a.v.a...l.a.n
0067002E0053007400720069006E0067    .g...S.t.r.i.n.g
0022003E003C0021005B004300440041    .".>.<.!.[.C.D.A
Bad data (byte shifted):
7400720069006E00670022003E003C00    t.r.i.n.g.".>.<.
21005B00430044004100540041005B00    !.[.C.D.A.T.A.[.
63006F006D002E006100700074007200    c.o.m...a.p.t.r.

Since these byte shifted characters may be invalid (according to
the used codepage), the the codepage conversion functions can
throw a warning like this:
SQLSTATE 01517:A character that could not be converted was
replaced with a substitute character.

A db2 trace of the problem would show errors SQLO_DBCSTRUNC
followed by SQLO_BUFFSMALL:
| | | sqlnlscpcv data
| | | | sqlnlsCodePageConvert entry
| | | | | sqlnlscpcv_noUTF entry
| | | | | sqlnlscpcv_noUTF data
| | | | | | sqlnls_valtab entry
| | | | | | sqlnls_valtab exit
| | | | | sqlnlscpcv_noUTF exit
| | | | sqlnlsCodePageConvert data
| | | | sqlnlsCodePageConvert exit
| | | sqlnlscpcv exit
| | sqlnlscpcv exit
| sqlocpcv exit
sqlricpcv exit
sqlri_write_lob_field entry

Problem conclusion


[*]First fixed in DB2 UDB Version 8, FixPak 5 (s040212).

Temporary fix


[*]

Comments


[*]

APAR Information


[*]
APAR number
  JR25158

[*]
Reported component name
  DB2 UDB WSE WIN

[*]
Reported component ID
  5765F3501

[*]
Reported release
  820

[*]
Status
  CLOSED PER

[*]
PE
  NoPE

[*]
HIPER
  NoHIPER

[*]
Special Attention
  NoSpecatt

[*]
Submitted date
  2006-10-30

[*]
Closed date
  2006-10-30

[*]
Last modified date
  2006-10-30




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

Fix information


[*]
Fixed component name
  DB2 UDB WSE WIN

[*]
Fixed component ID
  5765F3501


Applicable component levels


[*]
R810 PSN
  UP

[*]
R820 PSN
  UP

[*]
R910 PSN
  UP

页: [1]
查看完整版本: DB2 V8fp5 SQLSTATE 01517