У нас возникла интересная проблема.
У нас есть интеграция между системой AS400, которая отправляет сообщения MQ в формате EBCDIC, принимается плагином TIBCO BW MQ и обрабатывается. Это финансовые операции.
Проблема заключается в том, что когда элемент данных (упакованный десятичный) содержит нечетные цифры, такие как 251
-259
или 25001
-25999
и т. д., элемент данных интерпретируется плагином TIBCO BW MQ как 151
-159
и т. д.
Таким образом, у нас была сумма 25125
, интерпретируемая как 15125
, что привело к отсутствию подсчета транзакции в размере 100 долларов США (суммы в центах). Плагин TIBCO BW MQ использует Java внизу, поэтому, вероятно, это проблема Java. AS400 может отправлять и получать как 25125
. Но когда мы просматриваем сообщение из проводника MQ, мы видим, что значение элемента данных также отображается как 15125
.
Команда AS400 указывает, что, поскольку они могут отправлять и получать как 25125
, проблема не на их стороне. Кто-нибудь сталкивался с подобной проблемой раньше? Если да, то как вы ее решили? Это проблема с клиентом MQ или проблема с доставкой сообщения AS400 MQ?