2012-08-14 3 views
2

TextMessage msg.setLongProperty("publishSequence", pubSeq);에 Long 특성을 설정하고 원격 큐로 보내기 위해 로컬 IBM WebSphere MQ 큐 관리자로 보내고 있습니다. 메시지는 정상적으로 전송되고 있지만 MQ 등록 정보를 메시지 헤더에 넣을 때 MQ는 Long 등록 정보를 제거합니다.IBM WebSphere MQ TextMessage 특성 겹쳐 쓰기

다른 누구도이 문제가 발생 했습니까? 그렇다면 어떻게 그 문제를 해결 했습니까?

+0

참고 ... JMS TextMessage 개체를 사용하고 있습니다. – srowley

답변

2

다음 링크는 내 질문에 대답 할 수있었습니다. 나는 시험을했고 작동한다.

MQQueue 객체에 queue.setMessageBodyStyle(WMQConstants.WMQ_MESSAGE_BODY_JMS);을 사용하여 본문 스타일을 JMS로 설정하여 속성을 유지하게했습니다.

+0

http://www-01.ibm.com/support/docview.wss?uid=swg21573858 – srowley

1

설정중인 속성이 메시지 머리글에 매핑되지 않습니다. 이전 버전의 WMQ에서는 RFH2 헤더에 매핑되었지만 최신 버전의 WMQ (V7.1 이상)에서는 메시지 속성 setter/getter 메서드를 사용하여 속성에 액세스 할 수 있으므로 일반적으로 RFH2 헤더가 표시되지 않습니다.

PROPCTLqueueschannels에 있으며 RFH2 헤더의 표시 여부를 제어합니다. RFH2 헤더가 생성되지 않으므로 설정 방법에 따라 등록 정보가 페이로드에 표시되지 않습니다. PROPCTL을 설정하면 RFQ 헤더를 사용하여 메시지를 전달할 수있는 WMQ를 얻을 수 있으며 속성을 볼 수 있습니다. 그렇지 않으면 getter 메소드의 속성을 사용해야하지만 매핑 된 메소드가 없기 때문에 메시지 헤더의 속성을 볼 수 없습니다.

자세한 내용은 정보 센터 주제 Mapping JMS fields onto WebSphere MQ fields (outgoing messages)을 참조하십시오.

+0

메시지를받을 때 getLongProperty를 통해 속성을 가져 오려고하는데 존재하지 않습니다. 나는 당신의 설명을 읽으려고 노력했고, 나는 아직도해야할 일을 잃었습니다. – srowley

+0

속성을 설정할 때 MessageNotWriteableException 및 JMSException을 catch하고 있습니까? 처리되지 않은 예외로 인해 속성 집합은 실패하지만 메시지를 계속 쓸 수 있습니다. 로컬 QMgr에서 속성을 검색하려고 시도 했습니까? 등록 정보는 채널 또는 원격 대기열의 RFH2로 변환 될 수 있습니다. 이들을 국부적으로 검색하는 것은 방정식으로부터 이러한 실패 지점을 제거합니다. –

+0

필요한 사이트에서 작동 할 수있는 링크가 있습니다 (http://www-01.ibm.com/support/docview.wss?uid=swg21573858). 나는 오늘 밤 내 시험 창에서 그것을 시험 할 것이고, 나의 결과와 함께 돌아올 것이다. – srowley