2013-09-23 5 views
0

Я использую IBM MQ и Java для записи сообщения в очередь байтов. Проблема здесь, я получаю здесь при чтении этого сообщения от клика JMS-клиента, который является ожидаемым форматом, я получаю как «BytesMessage» вместо сообщения в формате MQSTR.Обработка MQ ByteMessage с использованием JMS-клиента

Какие свойства я должен установить при записи сообщения в очередь, поэтому клиент JMS использует это сообщение как текст вместо байта?

Нужно ли мне переписывать любые из перечисленных ниже свойств или что-то еще?

openOptions =MQC.MQOO_OUTPUT 
putOptions=MQC.MQPMO_SYNCPOINT 

Ниже приведен образец кода производителя. Здесь я не упоминаю весь код.

String message="text"; 
final MQMessage mqm = new MQMessage(); 
mqm.write(message.getBytes()); 

С уважением,

Chaitu

+0

Посмотрите [здесь] (http://stackoverflow.com/questions/11002772/java-convert-bytemessage-to-string), он показывает, как преобразовать ByteMessage обратно в String (но полностью прочитать ответ accept, вы рискуете проблемой набора символов). – fvu

ответ

0

Ну, если ваше сообщение будет иметь формат текста только то, что смысл письма как Bytes.

Вместо этого, вы можете использовать другие функции, такие как:

String message="text"; 
MQMessage mqm = new MQMessage(); 
mqm.writeString(message); 

Кроме того, вы можете установить свойство "формат" Вашего сообщения в любом допустимом формате (MQRFH2, MQSTR и т.д.), как:

mqm.format="MQSTR"; 
+0

спасибо, в чем разница, если я пишу сообщение как строку и формат настройки в MQSTR. –

+0

@chaituk Я считаю, что когда вы используете writestring, вы сможете прочитать сообщение как строку в получающем приложении (используя функцию readstring). Но иногда несколько приложений не могут обрабатывать сообщения формата MQRFH2 и запрашивают, чтобы отправляющее приложение явно задало формат MQ как MQSTR. Хотя, если вы ничего не установили, по умолчанию его считают только MQSTR. – nitgeek

+0

спасибо.it сделать sesnse. –

Смежные вопросы