2015-03-09 2 views
0

Я пытаюсь установить пользовательский заголовок сообщения MQ, но когда я это сделаю, я получаю MQException (2142) с 2195, также записанным в StdErr. В приведенном ниже коде есть вызов для mqMessage.setStringProperty ... если я удалю эту строку, этот код работает. Я пытаюсь следовать тому, что я вижу здесь: How to use JMS Properties on IBM MQ JMS Interface?Ошибка MQ при настройке заголовка сообщения

private MQQueueManager qm; 
private MQQueue queue; 

private void initialize() throws Exception { 
    MQEnvironment.hostname = "myhost"; 
    MQEnvironment.port = 1234; 
    MQEnvironment.channel = "channelname"; 

    qm = new MQQueueManager("QMgrName"); 
    queue = qm.accessQueue( 
       "QueueName", 
       CMQC.MQOO_OUTPUT | CMQC.MQOO_FAIL_IF_QUIESCING); 
} 

private void sendMessage() throws Exception { 
    MQMessage mqMessage = new MQMessage(); 
    mqMessage.format = CMQC.MQFMT_STRING; 
    mqMessage.messageId = CMQC.MQMI_NONE; 

    MQPutMessageOptions pmo = new MQPutMessageOptions(); 
    pmo.options = CMQC.MQPMO_NO_SYNCPOINT; 

    // The problem line 
    mqMessage.setStringProperty("header.name", "value"); 

    mqMessage.writeString("This is a test"); 
    queue.put(mqMessage, pmo); 
} 
+0

ОК - проблема в том, что я не включал в себя pcf jar (не уверен, что это на самом деле делает.) Нашел ответ из этой [ссылки] (http://www.mqseries.net/phpBB2/viewtopic .php? t = 61573 & sid = 721fe70577840f9044504a1d11d5a2d3) – Steve

ответ

0

Проблема заключается в том, что переменное имя недействительно:

"header.name"

Изменить его HeaderName и это будет работать.

+0

Спасибо - я попробовал это и получил тот же результат. – Steve

+0

Странно. Можете ли вы опубликовать свой полный стек? –

+0

com.ibm.mq.MQException: MQJE001: Код завершения «2», причина «2142». \t на com.ibm.mq.MQMessage.writePropertiesRfh2 (MQMessage.java:3310) \t на com.ibm.mq.MQMessage.performProcessingBeforePut (MQMessage.java:3156) \t в com.ibm.mq.MQDestination.put (MQDestination.java:1108) \t на com.wellsfargo.isg.logmanager.mq.HeaderTest.sendMessage (HeaderTest.java:48) \t в com.wellsfargo.isg.logmanager.mq.HeaderTest.simpleTest (HeaderTest.java : 22) – Steve

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