2016-07-05 3 views
0

현재 Spring의 JMS 메시징 (JMSTemplate)을 사용하는 응용 프로그램을 작성 중입니다. 응용 프로그램은 JMSTemplate이 메시지에 추가하는 "RFH"헤더를 해독 할 수없는 메인 프레임 큐에 메시지를 보내야합니다. 메인 프레임이 머리글없이 메시지의 원시 내용 만 가져올 수 있도록 모든 헤더 정보를 프로 그램 적으로 완전히 제거하는 방법이 있습니까?Spring JMS 템플릿 - RFH 헤더 정보 제거

다음

내 코드는 ... 여기

MQQueueConnectionFactory connectionFactory = new MQQueueConnectionFactory(); 
    connectionFactory.setHostName("127.0.0.1"); 
    connectionFactory.setPort(1414); 
    connectionFactory.setChannel("S_LOCALHOST"); 
    connectionFactory.setQueueManager("QM_LOCALHOST"); 
    connectionFactory.setTransportType(1); 

    UserCredentialsConnectionFactoryAdapter credentials = new UserCredentialsConnectionFactoryAdapter(); 
    credentials.setUsername(""); 
    credentials.setPassword(""); 
    credentials.setTargetConnectionFactory(connectionFactory); 

    JmsTemplate jmsTemplate = new JmsTemplate(credentials); 
    jmsTemplate.setPubSubDomain(false); 
    jmsTemplate.setDeliveryMode(javax.jms.DeliveryMode.NON_PERSISTENT); 
    jmsTemplate.setExplicitQosEnabled(true); 
    jmsTemplate.setReceiveTimeout(60000); 

    jmsTemplate.convertAndSend("MY.QUEUE", "cobol data"); 

는 메시지가 웹 스피어 MQ 탐색기의 모습입니다. 이 값들을 어떻게 제거 할 수 있습니까? Spring JMS에서도 가능합니까? 당신이 더 이상 정보를 필요로하는 경우 맞쳐 ... 비 JMS 대기열로 전송되는 것을 RFH 헤더를 해제하는

enter image description here

답변

1

한 가지 방법을 알고있는 것은, 예를 들어, targetClient 큐 URI 속성을 사용하는 것입니다

queue.setTargetClient(WMQConstants.WMQ_CLIENT_NONJMS_MQ); 

는 WebSphere MQ 참조 :

https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.0.0/com.ibm.mq.dev.doc/q032240_.htm

http://www.ibm.com/support/knowledgecenter/SSFKSJ_9.0.0/com.ibm.mq.javadoc.doc/WMQJMSClasses/com/ibm/mq/jms/MQDestination.html

jmsTemplate.convertAndSend("queue:///MY.QUEUE?targetClient=1", "cobol data"); 

또는, Queue 객체 자체에이 설정 한 다음 jmsTemplate의 대상으로 사용할 수

+0

감사합니다. 많은 ck1, 첫 번째 스 니펫이 트릭을 완료 한 것 같습니다! 두 번째 발췌 문장에 대한 질문, 다른 게시물에서 targetClient 설정에 대해 언급 한 적이 있지만 어떤 큐 객체인지 알 수 없습니다. 큐 객체에 대한 완전한 패키지 이름을 말해 줄 수 있습니까? – Jason