IBM Support

LI76445: WITH DATA_ENCRYPT, WHEN USING COMMUNICATION BUFFER GREATER THAN 32K, RUNNING A QUERY MAY FAIL AND RETURN SQL0902C.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When AUTHENTICATION on the database server is set to
    DATA_ENCRYPT, any data transferred between the server and the
    client is encrypted.
    
    It was found that, with DATA_ENCRYPT, if the communication
    buffer greater than 32K is used, DB2 LUW client sometimes fails
    to parse the query result, and returns SQL0902C.
    
    The size of the communication buffer is controlled by RQRIOBLK
    for remote clients and ASLHEAPSZ for local clients.
    
    Here's the error message that will appear in db2diag.log.
    
    ====
    2008-01-28-11.00.09.403732-360 I4408A699 LEVEL: Info
    PID : 21299528 TID : 1 PROC : db2bp
    INSTANCE: db2inst1 NODE : 000
    APPID : *LOCAL.db2inst1.1234567890
    FUNCTION: DB2 UDB, DRDA Communication Manager,
    sqljcReadDssContLen, probe:50
    DATA #1 : String, 388 bytes
    CALL STACK:
    [0] 0x0900000000DD772C sqljrParseOpenSuccessReply__FP7
    [1] 0x0900000000E5B3B4 sqljrParseOpenQueryReply__FP7UC
    [2] 0x0900000000E7BBD0 sqljrParse__FP7UCintfc + 0xFFFF
    [3] 0x0900000000F230A8 sqljrDrdaArOpen__FP7UCintfcP15d
    [4] 0x0900000000F73B38 csmOpen__FP7UCintfcP15db2UCCurs
    
    2008-01-28-11.00.09.404170-360 I5108A411 LEVEL: Info
    PID : 21299528 TID : 1 PROC : db2bp
    INSTANCE: db2inst1 NODE : 000
    APPID : *LOCAL.db2inst1.1234567890
    FUNCTION: DB2 UDB, DRDA Application Requester, sqljrParseQryDta,
    probe:10
    RETCODE : ZRC=0x87360009=-2026504183=SQLJC_ERROR_BEOF "DATA DOES
    NOT EXIST"
    DIA8506C Unexpected end of file was reached.
    
    2008-01-28-11.00.09.405007-360 I5520A626 LEVEL: Info
    PID : 21299528 TID : 1 PROC : db2bp
    INSTANCE: db2inst1 NODE : 000
    APPID : *LOCAL.db2inst1.1234567890
    DATA #1 : SQLCA, PD_DB2_TYPE_SQLCA, 136 bytes
    sqlcaid : SQLCA sqlcabc: 136 sqlcode: -902 sqlerrml: 2
    sqlerrmc: 9
    sqlerrp : sqljrqry
    sqlerrd : (1) 0x87360009 (2) 0x00000009 (3)
    0x00000000
    (4) 0x00000000 (5) 0x00000000 (6)
    0x00000000
    sqlwarn : (1) (2) (3) (4) (5) (6)
    (7) (8) (9) (10) (11)
    sqlstate:
    ====
    
    The LUW client in question can be CLP, CLI/ODBC or legacy JDBC
    (using CLI under the covers). JCC type 4 driver does not have
    this problem.
    
    The data in the server is never corrupted. The problem is only
    on the client that fails to parse the encrypted data. Any
    fixpak containing the fix for this problem must be applied to
    clients.
    

Local fix

  • If this problem occurs for a local connection, reduce the value
    of ASLHEAPSZ to 7. This will reduce the communication buffer
    size to 7*4096 bytes, which is less than 32KB.
    
    If the problem occurs for a remote connection, reduce the value
    of RQRIOBLK to 32767 on the client side. 32767 is the default
    value for RQRIOBLK, and is one byte short of 32KB. Note that
    changing the value on the server side does not avoid this
    problem.
    
    Also note that this problem is only applicable to DATA_ENCRYPT.
    One may choose to change AUTHENTICATION on the server side to
    some other value to work around it.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * CLI/ODBC or legacy JDBC                                      *
    * (using CLI under the covers)                                 *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * When AUTHENTICATION on the database server is set to         *
    * DATA_ENCRYPT, any data transferred between the server and    *
    * the                                                          *
    * client is encrypted.                                         *
    *                                                              *
    * It was found that, with DATA_ENCRYPT, if the communication   *
    * buffer greater than 32K is used, DB2 LUW client sometimes    *
    * fails                                                        *
    * to parse the query result, and returns SQL0902C.             *
    *                                                              *
    * The size of the communication buffer is controlled by        *
    * RQRIOBLK                                                     *
    * for remote clients and ASLHEAPSZ for local clients.          *
    *                                                              *
    * Here's the error message that will appear in db2diag.log.    *
    *                                                              *
    * ====                                                         *
    * 2008-01-28-11.00.09.403732-360 I4408A699 LEVEL: Info         *
    * PID : 21299528 TID : 1 PROC : db2bp                          *
    * INSTANCE: db2inst1 NODE : 000                                *
    * APPID : *LOCAL.db2inst1.1234567890                           *
    * FUNCTION: DB2 UDB, DRDA Communication Manager,               *
    * sqljcReadDssContLen, probe:50                                *
    * DATA #1 : String, 388 bytes                                  *
    * CALL STACK:                                                  *
    * [0] 0x0900000000DD772C sqljrParseOpenSuccessReply__FP7       *
    * [1] 0x0900000000E5B3B4 sqljrParseOpenQueryReply__FP7UC       *
    * [2] 0x0900000000E7BBD0 sqljrParse__FP7UCintfc + 0xFFFF       *
    * [3] 0x0900000000F230A8 sqljrDrdaArOpen__FP7UCintfcP15d       *
    * [4] 0x0900000000F73B38 csmOpen__FP7UCintfcP15db2UCCurs       *
    *                                                              *
    * 2008-01-28-11.00.09.404170-360 I5108A411 LEVEL: Info         *
    * PID : 21299528 TID : 1 PROC : db2bp                          *
    * INSTANCE: db2inst1 NODE : 000                                *
    * APPID : *LOCAL.db2inst1.1234567890                           *
    * FUNCTION: DB2 UDB, DRDA Application Requester,               *
    * sqljrParseQryDta,                                            *
    * probe:10                                                     *
    * RETCODE : ZRC=0x87360009=-2026504183=SQLJC_ERROR_BEOF "DATA  *
    * DOES                                                         *
    * NOT EXIST"                                                   *
    * DIA8506C Unexpected end of file was reached.                 *
    *                                                              *
    * 2008-01-28-11.00.09.405007-360 I5520A626 LEVEL: Info         *
    * PID : 21299528 TID : 1 PROC : db2bp                          *
    * INSTANCE: db2inst1 NODE : 000                                *
    * APPID : *LOCAL.db2inst1.1234567890                           *
    * DATA #1 : SQLCA, PD_DB2_TYPE_SQLCA, 136 bytes                *
    * sqlcaid : SQLCA sqlcabc: 136 sqlcode: -902 sqlerrml: 2       *
    * sqlerrmc: 9                                                  *
    * sqlerrp : sqljrqry                                           *
    * sqlerrd : (1) 0x87360009 (2) 0x00000009 (3)                  *
    * 0x00000000                                                   *
    * (4) 0x00000000 (5) 0x00000000 (6)                            *
    * 0x00000000                                                   *
    * sqlwarn : (1) (2) (3) (4) (5) (6)                            *
    * (7) (8) (9) (10) (11)                                        *
    * sqlstate:                                                    *
    * ====                                                         *
    *                                                              *
    * The LUW client in question can be CLP, CLI/ODBC or legacy    *
    * JDBC                                                         *
    * (using CLI under the covers). JCC type 4 driver does not     *
    * have                                                         *
    * this problem.                                                *
    *                                                              *
    * The data in the server is never corrupted. The problem is    *
    * only                                                         *
    * on the client that fails to parse the encrypted data. Any    *
    * fixpak containing the fix for this problem must be applied   *
    * to                                                           *
    * clients.                                                     *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Upgrade to DB2 9.5 FP9 or higher                             *
    ****************************************************************
    

Problem conclusion

  • Problem First Fixed in DB2 Version 9.5 Fix Pack 9
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI76445

  • Reported component name

    DB2 UDE ESE LIN

  • Reported component ID

    5765F4104

  • Reported release

    950

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-10-05

  • Closed date

    2012-03-13

  • Last modified date

    2012-04-03

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

    LI76443

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

Fix information

  • Fixed component name

    DB2 UDE ESE LIN

  • Fixed component ID

    5765F4104

Applicable component levels

  • R950 PSY

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSEPGG","label":"DB2 for Linux, UNIX and Windows"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"950","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
03 April 2012