2017-12-22 30 views
0

I는 다음과 같습니다위한 그래서 내가 한 일을 MQJavaClient를 통해 메시지 ID로 사용자 정의 문자열을 설정하려고 통해 메시지 ID를 설정하는 방법 :MQJavaClient

  1. 문자열 내가 메시지 ID에 배치 할

    example :92f5fd96300e8dce 
    
  2. 은 진수 번호를 가져옵니다 온라인 [codebeautify.org] 자바 클라이언트 코드 A의

    example:39326635666439363330306538646365 
    
  3. 시도가의 MessageID를 인쇄 할 때

    String str = "39326635666439363330306538646365"; 
    sendmsg.messageId = str.getBytes(); 
    

아래의, 그것은

sendmsg.messageId : [[email protected] 

여전히 필요의 MessageID는 MQ 메시지로 채워되지 않은 다른 결과를주고있다.

MQ 메시지에 대한 사용자 지정 메시지 ID를 설정하는 데 도움을주십시오.

로저/조쉬 2017년 12월 26일

당신은/메시지 속성 또는 상관 관계 ID 필드를 다음 당신의 자신의 메시지 ID 또는 거래 ID를 저장 사용할 필요가 있다면이
에 도움이 필요하십니까 MQMD의 - 단지 MQMD의 메시지 ID를 사용하지 마십시오.
우리 응용 프로그램에서는 msgid/txnid와 상관 ID를 모두 사용합니다. msgstr/txnid는 각 트랜잭션마다 다릅니다 (응답 요청시 동일해야 함).
상관 ID는 모든 트랜잭션에서 동일합니다.

지금 어떤 시도가 있습니까?
1. 시스템 A 및 시스템 B는 MQ를 통해 통신합니다.
2. 이제 갑자기 시스템 B가 응답으로 다른 형식으로 응답하고 시스템 A는 작동을 수행 할 수 없습니다.
3. 이제 Java 클라이언트를 통해 시스템 B 응답을 시뮬레이트하는 것이 내 업무입니다.
4. 우리 응용 프로그램에서 우리는 msgid와 correl id를 모두 사용했습니다.
5. 시스템 ID는 Id와 해당 ID를 완벽하게 읽었습니다.
6.이 msgid는 java 클라이언트를 통해 채워지지 않고 다음과 같이 표시됩니다. msgid는 로그에서 null입니다.

+0

바이트 배열을 문자열로 인쇄하고 원본 문자열을 다시 얻으려면 다음과 같이 문자열로 다시 변환하십시오. new String (sendmsg.messageId); 그리고 왜 16 진수로 인코딩 된 부분이 필요합니까? 그리고 Roger와 동의하는 방식으로, 메시지 ID는 (메타) 데이터를 전송하는 것이 아닙니다. –

답변

0

IBM MQ에서 자신의 메시지 ID를 생성하는 것은 좋지 않은 아이디어입니다. MQ는 응용 프로그램이 MQPUT 및/또는 MQPUT1을 발행 할 때 메시지에 대한 고유 한 메시지 ID를 자동으로 생성합니다.

고유 한 메시지 ID 또는 트랜잭션 ID를 저장해야하는 경우 메시지 속성이나 MQMD의 상관 ID 필드를 사용하십시오. MQMD의 메시지 ID를 사용하지 마십시오.