Можно ли использовать MQPUT с помощью MQCCSI_EMBEDDED?

Я ищу чистый способ размещения сообщения XML через очередь. В настоящее время мы должны проверить XML encoding декларацию и убедитесь, что MQMD.ccsid соответственно (utf-8 = 1208). Мы также установили MQMD.format в MQFMT_NONE,

Это, кажется, хорошо, однако некоторые потребители делают MQGET с MQGMO_CONVERT и это разрушает кодировку UTF-8.

Они не должны вызывать опцию преобразования при использовании нетекстовых сообщений. Но они имеют дело со смешанным текстом + нетекст в одной и той же очереди.

Я хотел бы использовать специальный CCSID MQCCSI_EMBEDDED в котором говорится, что информация о кодировке находится внутри сообщения, именно то, что делает XML.

К сожалению, установка CCSID для MQPUT на это значение по умолчанию соответствует ccsid QMGR.

Смотрите документацию CCSID

1 ответ

Если вы установите для MD.Format значение MQFMT_NONE, когда ваше приложение помещает сообщение в очередь, то получающее приложение "get with convert" НЕ выполняет преобразование.

Либо вы установите для MD.Format значение MQFMT_STRING, либо получающее приложение испортилось.

Кроме того, вы знаете, что если вы читаете сообщение в строковый буфер в Java, JVM преобразует его в кодировку, в которой работает JVM.

Другие вопросы по тегам