2016-07-04 2 views
0

우리는 애플리케이션에서 여러 AQ를 구현했습니다. 몇 가지 예외 시나리오로 인해 메시지가 AQ 중 하나에 도달하지 않습니다. 따라서 지난 10 분 동안 대기열에 대기열/대기열이 없으면 경보를 생성하는 모니터링을 구현해야합니다. 대기열 테이블에서 SCN_TO_TIMESTAMP (MAX (ora_rowscn)) 함수를 사용해 보았습니다.하지만 그 순간 대기열이 비어 있으면 아무 결과도 반환하지 않습니다.Oracle 고급 대기열에서 0 활동을 모니터하는 방법

이 방법을 구현하는 가장 좋은 방법을 권해주세요. 감사합니다!

답변

0

상태 테이블 만들기 - 1 행 (모니터링하려는 대기열 당).

DEQUEUE가 모니터 할 큐에 대해 언제든지 발생합니다. 해당 레코드에 대해 단순히 "LAST_DEQUEUE_TIME"의 UPDATE를 수행하십시오. ;)

이제 10 분마다 깨어나서 그 기록을 들여다보기 만하면됩니다.

"우아한"솔루션이 더 많을 수도 있지만 가장 간단한 방법 일 것입니다.

DEQUEUE가 현재 켜져 있는지 여부를 알려주는 열을 포함 할 수도 있습니다 (예 : 일부 유지 관리를 위해 DEQUEUE를 사용 중지 한 경우 (예 :이 상태 테이블에서 알 수있는) 프로세스를 스캔하면 말할 수있을 것 - "당황하지 말라"))

0

빠른 솔루션 덕분에 감사합니다. 맞습니다. GV $ PERSISTENT_QUEUES에서 LAST_ENQUEUE_TIME 및 LAST_DEQUEUE_TIME 필드를 사용하여 inbuilt 솔루션을 찾았음에도 불구하고.

관련 문제