IBM Support

IT29692: MQ traces the wrong byte position for the failing character if data conversion fails

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • This problem has been reported in a couple of different
    scenarios:
    
    Scenario 1 :
    When MQ attempts to convert a message - for example from
    code page 1208 to 500 and the data conversion code hits an
    unconvertible character then MQ trace should print the byte
    position of the character but a bug in the trace results in the
    wrong number being printed.  (The length of the buffer is
    printed instead of the position in the message: "Conversion
    failed due to DBCS error in input string at byte 9164 in
    string").
    
    e.g.
    
     21:21:58.297870 9863.1939 RSESS:000000 (08)---------}
    OpenConversion rc=OK FunctionTime=3822
     21:21:58.298032 9863.1939 RSESS:000000 Conversion failed:
    source character too long
     21:21:58.298080 9863.1939 RSESS:000000 0x0000: 436f6e76
    65727369 6f6e2066 61696c65 |Conversion faile|
     21:21:58.298080 9863.1939 RSESS:000000 0x0010: 64206475
    6520746f 20444243 53206572 |d due to DBCS er|
     21:21:58.298080 9863.1939 RSESS:000000 0x0020: 726f7220
    696e2069 6e707574 20737472 |ror in input str|
     21:21:58.298080 9863.1939 RSESS:000000 0x0030: 696e6720
    61742062 79746520 39313634 |ing at byte 9164|
     21:21:58.298080 9863.1939 RSESS:000000 0x0040: 20696e20
    73747269 6e67 | in string |
    
    
    Scenario 2 :
    MQ Explorer fails to connect to queue manager and MQ trace
    contains MQRC_DBCS_ERROR.
    
    In MQ trace, there is an error message "Conversion failed due
    to DBCS error in input string at byte 64 in string". At that
    point xecX_E_DBCS_ERR is returned.
    
     13:20:31.906966   128876.14     ZSESS:000007 --------{
            xxxNewCodeConv
     13:20:31.906968   128876.14     ZSESS:000007
                      xxiDO_NL_FIX(FALSE)
     13:20:31.906970   128876.14     ZSESS:000007      From Encoding
    xcsASCII. From Type xcsSBCS. To Encoding xcsUTF8. To
    Type xcsMixed.
     13:20:31.906973   128876.14     ZSESS:000007        0x0000:
       436f6e76 65727369 6f6e2066 61696c65  |Conversion faile|
     13:20:31.906973   128876.14     ZSESS:000007        0x0010:
       64206475 6520746f 20444243 53206572  |d due to DBCS er|
     13:20:31.906973   128876.14     ZSESS:000007        0x0020:
       726f7220 696e2069 6e707574 20737472  |ror in input str|
     13:20:31.906973   128876.14     ZSESS:000007        0x0030:
       696e6720 61742062 79746520 36342069  |ing at byte 64 i|
     13:20:31.906973   128876.14     ZSESS:000007        0x0040:
       6e207374 72696e67                    |n string        |
     13:20:31.906974   128876.14     ZSESS:000007 --------}!
           xxxNewCodeConv rc=xecX_E_DBCS_ERR
    
    Although it implies it's having problems with a particular
    character, the error message actually tells us the SIZE of the
    buffer (64 characters) rather than the ACTUAL character it was
    having problems converting. So ANY one of the characters in the
    buffer could be the cause.
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    Users of MQ V8 and later who need to troubleshoot a DBCS data
    conversion error
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    The problem occurred when MQ's data conversion routines
    encountered an error while converting a DBCS character.  MQ
    trace shows the errors "MQRC_DBCS_ERROR" and "xecX_E_DBCS_ERR"
    and a message should be printed to identify the byte position of
    the character in error, but instead the message printed an
    incorrect value (it actually printed the length of the buffer
    being converted).
    
    An example of the message is :
    
    "Conversion failed due to DBCS error in input string at byte
    9164 in string").
    
    e.g.
    
     21:21:58.297870 9863.1939 RSESS:000000 (08)---------}
    OpenConversion rc=OK FunctionTime=3822
     21:21:58.298032 9863.1939 RSESS:000000 Conversion failed:
    source character too long
     21:21:58.298080 9863.1939 RSESS:000000 0x0000: 436f6e76
    65727369 6f6e2066 61696c65 |Conversion faile|
     21:21:58.298080 9863.1939 RSESS:000000 0x0010: 64206475
    6520746f 20444243 53206572 |d due to DBCS er|
     21:21:58.298080 9863.1939 RSESS:000000 0x0020: 726f7220
    696e2069 6e707574 20737472 |ror in input str|
     21:21:58.298080 9863.1939 RSESS:000000 0x0030: 696e6720
    61742062 79746520 39313634 |ing at byte 9164|
     21:21:58.298080 9863.1939 RSESS:000000 0x0040: 20696e20
    73747269 6e67 | in string |
    

Problem conclusion

  • The message in trace has been corrected to print the correct
    byte position of the character in error.
    
    This APAR change does not alter any conversion behavior of MQ,
    and is made purely to improve the diagnostic capability around
    conversion failures.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v8.0       8.0.0.14
    v9.0 LTS   9.0.0.8
    v9.1 CD    9.1.4
    v9.1 LTS   9.1.0.4
    
    The latest available maintenance can be obtained from
    'WebSphere MQ Recommended Fixes'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037
    
    If the maintenance level is not yet available information on
    its planned availability can be found in 'WebSphere MQ
    Planned Maintenance Release Dates'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006309
    ---------------------------------------------------------------
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT29692

  • Reported component name

    IBM MQ BASE MP

  • Reported component ID

    5724H7251

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2019-07-11

  • Closed date

    2019-08-19

  • Last modified date

    2019-08-19

  • 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

    IBM MQ BASE MP

  • Fixed component ID

    5724H7251

Applicable component levels

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.0.0.0","Edition":"","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
19 August 2019