내 응용 프로그램은 IBM Websphere MQ를 통해 다른 시스템과 통신합니다. 때로는 내 대기열에 메시지가 들어오지 않지만 다른 시스템에서는 이미 나에게 보냈다 고 말했습니다. 따라서 대기열에 도착하는 모든 메시지의 기록을 유지하는 방법을 알고 싶습니다.Websphere MQ 메시지 히스토리
1
A
답변
0
MQ 아키텍처에 많은 미들웨어 대기열이있을 수 있으므로 여전히 네트워크를 통해 전달 될 수 있습니다. 마찬가지로 채널을 통해 즉시 메시지를 전송할 필요가 없습니다. 발신자는 메시지를 일괄 처리하여 트리거와 함께 보낼 수 있습니다.
도착하는 모든 항목을 기록하는 가장 좋은 방법은 인터셉터 큐를 사용하는 것입니다.
이것은 채널이 쓰는 대기열이며,이 변경 사항이 적용될 때까지 응용 프로그램이 읽는 대기열입니다 (A라고 부름). 그런 다음 A에서 읽는 전송 프로세스가 있고 메시지를 기록한 다음 두 번째 큐에 기록합니다 (B). 이 두 번째 대기열은 응용 프로그램이 현재 읽는 대기열입니다.
-1
대기열 끝 부분에 logging 문을 넣을 수 있으므로 메시지를 받자 마자 내용을 로그로 덤프 할 수 있습니다. 그렇게하면 다른 시스템에서 메시지를 보냈다 고 말하면서 언제해야하는지 알려주고 로그를보고 해당 시간에받은 메시지가 있는지 확인할 수 있습니다.
1
내가 생각할 수있는 유일한 다른 방법은 채널 이탈을 사용하는 것입니다.
이 응답은 다른 공급 업체의 큐 전송에 적합 할 수 있지만 WebSphere MQ에는 적용되지 않습니다. –
대기열 시스템 자체를 말하는 것이 아니라 대기열에서 메시지를 가져 오는 것으로 간주되는 응용 프로그램에 대한 것이 었습니다. – Elie
좀 더 유용하지만 문제를 해결하지는 못합니다. 메시지가 채널을 통과했지만 대기열에 착륙하지 못한 다양한 이유가있을 수 있습니다. 또는 대기열에 도착하여 앱이보기 전에 만료되거나 독으로 다시 대기열에 추가 될 수 있습니다. 메시지를 응용 프로그램 로그에 기록하면 긍정적 인 확인을 제공하지만 부정적인 확인은 고려하지 않습니다. 채널 또는 API exit는 * 앱에 전달하지 않은 메시지의 도착을 기록 할 수 있습니다. –