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":"LOB45","label":"Automation"}}]
Document Information
Modified date:
19 August 2019