A fix is available
APAR status
Closed as program error.
Error description
DB2 development has found a timing window in the code that incorrectly returns a no record found NRF SQLCODE100 when a ISO(UR) access is reading a lob column. Code added in V9 remove reading the pseudo deleted Aux Index key/rid which is allowing the access to the lob column during an SQL update of the lob column to incorrect sqlcode +100
Local fix
n/a
Problem summary
**************************************************************** * USERS AFFECTED: All DB2 9 and DB2 10 for z/OS users of LOBs * * (large objects) with isolation level UR * * (Uncommitted Read). * **************************************************************** * PROBLEM DESCRIPTION: An unexpected SQLCODE100 (SQLCODE +100) * * or no records found is returned for an * * ISO(UR) reader when fetching LOB * * columns. * **************************************************************** * RECOMMENDATION: * **************************************************************** An unexpected SQLCODE100 (SQLCODE +100) or no records found can be returned for an ISO(UR) reader when fetching LOB columns. Apar PM18903 (v9 ptf UK60323) intended to close a small serialization window to avoid LOB corruption in a data sharing environment when a LOB updater and a LOB UR reader are accessing the same LOBs. At the time, it was thought that the fix provided in PM18903 (which was not to read a pseudo deleted LOB) might close the serialization window. Unfortunately, it was later discovered that this was not the case for v9. As a result, an SQLCODE +100 could be returned as now reported. In summary, PM18903 did not correct the inconsistency involving the read LRSN problem but did restore code that always requests a pseudo delete. The following paragraph provides additional information about the serialization which could lead to this LOB inconsistency. Today, when a LOB is deleted, DB2 always does a pseudo delete on both the LOB data storage and its associated Aux index. DB2 deploys a read LRSN to claim the LOB data storage and its Aux index entry when there is no active thread to access the data. In the past, due to an inconsistent read LRSN value, DB2 could mistakenly lose both the LOB data storage and its Aux index when there is still an active thread accessing the data.
Problem conclusion
The code in DB2 is modified to prevent the SQLCODE +100 or no records found condition for ISO(UR) readers of LOB columns. Additional Keywords: SQLCODE100 SQLLOB INCORROUT SQLINCORR SQLINCORROUT DB2INCORR/K
Temporary fix
********* * HIPER * *********
Comments
APAR Information
APAR number
PM69866
Reported component name
DB2 OS/390 & Z/
Reported component ID
5740XYR00
Reported release
A10
Status
CLOSED PER
PE
NoPE
HIPER
YesHIPER
Special Attention
NoSpecatt
Submitted date
2012-07-31
Closed date
2012-08-29
Last modified date
2012-10-01
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UK81415 UK81416
Modules/Macros
DSNODCRL
Fix information
Fixed component name
DB2 OS/390 & Z/
Fixed component ID
5740XYR00
Applicable component levels
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEPEK","label":"Db2 for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.1","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
01 October 2012