2013-07-24 2 views
2

MQ 대기열로 들어오는 메시지를 데이터베이스/파일 또는 다른 로깅 대기열에 기록하려고하며 기존 코드를 수정할 수 없습니다. HTTP 스니퍼처럼 작동하는 일종의 메시지 로깅 유틸리티를 구현하는 방법이 있습니까? 아니면 MQ는 메시지를 기록 할 수있는 몇 가지 기본 기능을 가지고 있습니까?MQ 메시지 로깅

미리 감사드립니다.

답변

4

이 문제는 주제를 가리키는 ALIAS QUEUE를 작성하면 가능하다고 생각합니다.

응용 프로그램이 현재 메시지를 받고 처리하는 대기열을 RECV.Q으로 가정합니다.

1) 먼저 주제를 작성하십시오 (예 : LOG.TO.DATABASE).
2) 으로 설정된 별칭 큐 ALIAS.LOG.TO.DATABASE을 만들고 Base TypeTopic으로 설정합니다.
3) 로컬 큐를 만듭니다. LOG.TO.DATABASE.Q
4) 수신 주소가 RECV.QSUB.FOR.RECV.Q의 영구 가입을 만듭니다.
5)

지금 송신자 응용 프로그램이 ALIAS.LOG.TO.DATABASE에 메시지를 넣을 필요가 대상으로 LOG.TO.DATABASE.Q을 가리키는 또 다른 내구성 가입 SUB.FOR.LOG.TO.DABASE을 만듭니다. 별칭 대기열이 실제로 topic을 가리키기 때문에 메시지는 LOG.TO.DATABASE에 게시됩니다. 이 주제에는 등록 된 두 개의 구독이 있으므로 둘 다 동일한 메시지를 받게됩니다. 소비자 응용 프로그램은 계속 작동하지만 새 응용 프로그램은 다른 응용 프로그램의 메시지를 처리하도록 작성 될 수 있습니다.

1

아니면 큐/기록 할 수 있습니다 필요한 경우 감사 당신은 MQ 감사보고 할 수 있습니다 메시지 멀티플렉서 (MMX)라고 (무료) 오픈 소스 프로젝트 http://www.capitalware.biz/mmx_overview.html

을 사용할 수 있습니다 (이것은 상용 제품입니다) : 샤시의 코멘트 @의 http://www.capitalware.biz/mqa_overview.html

+0

오해의 소지가 대답. 문제의 제품은 오픈 소스도 무료도 아닙니다. 비용은 999 달러입니다. –

1
여기

있습니다 명령 :

DEFINE QLOCAL ('RECV.Q') 
DEFINE TOPIC('LOG.TO.DB') TOPICSTR('DBLOG') 
DEFINE QALIAS('ALIAS.LOG.TO.DB') TARGET('LOG.TO.DB') TARGTYPE(TOPIC) 
DEFINE QLOCAL('LOG.TO.DB.Q') 
DEFINE SUB('SUB.FOR.RECV.Q') DEST('RECV.Q') TOPICOBJ('LOG.TO.DB') 
DEFINE SUB('SUB.FOR.LOG.TO.DABASE') DEST('LOG.TO.DB.Q') TOPICOBJ('LOG.TO.DB')