Java 클라이언트에 MQ 헤더 필드 'PutApplName'을 설정하고 JMS 헤더와 동일한 JMSXAppID 필드에 액세스하려고합니다. 그물에있는 문서는 MQ 헤더 필드가 JMS 필드로 매핑되는 것에 대해 이야기합니다. 아무도 이것을 시도 했습니까?Java 클라이언트에서 MQ 헤더 설정
답변
클라이언트와 서버에서 WMQ v7을 사용해야 JMS 휴대용 방식으로이 작업을 수행 할 수 있습니다. v6는 내년에 수명이 다르기 때문에 어쨌든 v7을 이미 사용하고 계실 것입니다. v7에서 모든 MQMD 특성은 메시지 특성을 사용하여 액세스 할 수 있습니다. v6에서는 WMQ 관련 Java 클래스를 사용하는 것이 필요했습니다.
그런데 모든 MQMD 필드를 해당 JMS 속성에 매핑하는 JMS fields and properties with corresponding MQMD fields을 살펴보십시오.
MQMD 필드에 쓰고 WMQ 클라이언트와 함께 설치되는 샘플 프로그램이 있습니다. jar 파일을 잡는 대신 전체 WMQ 클라이언트를 설치 한 경우이 프로그램은 다음에 있습니다. C:\Program Files\IBM\WebSphere MQ\tools\jms\samples\simple\SimpleMQMDWrite.java
샘플 프로그램은 문자열 값을 직접 코딩하는 대신 WMQConstants 클래스를 사용합니다. here에 대해 설명 된 WMQConstants를 찾을 수 있습니다. 상수 내에서 JMS_IBM_MQMD_PUTAPPLNAME here을 찾아야합니다. 이 필드의 JavaDoc을 말한다 :
JMS_IBM_MQMD_PUTAPPLNAME
공공 정적 최종 문자열 JMS_IBM_MQMD_PUTAPPLNAME
JMS_IBM_MQMD_PUTAPPLNAME 속성 이름입니다. 메시지를 보내는 MQ 응용 프로그램 을 설정하거나 가져옵니다. 을 사용하여 설정 setStringProperty (JmsConstants.JMS_IBM_MQMD_PUTAPPLNAME,); 얻으려면 getStringProperty (JmsConstants.JMS_IBM_MQMD_PUTAPPLNAME); Message 개체에 유효합니다.
mqm 그룹에서 실행하거나 (권장하지 않음) setmqaut 명령을 사용하여 응용 프로그램에 + setall 권한을 부여해야합니다. + setall 권한 부여는 QMgr과 특정 큐 모두에 적용되어야합니다.
MQHeader 객체 필드 esp에 액세스해야합니다. 'PutApplName' – hakish
좋아, 나는 그것을 통해 당신을 걸어 대답을 확장했습니다. –