2011-12-14 2 views
1

Oracle 스케줄러 작업 체인 (11gR2)에서 예외 (모든 단계의 실패)를 처리하는 가장 좋은 방법을 찾고 싶습니다.dbms_scheduler 작업 체인 예외

20 단계가 들어있는 체인이 있습니다. 언제든지 체인이 FAILURE로 종료되면 일련의 작업을 수행하고 싶습니다. 이러한 작업은 해당 단계에만 해당되며 개별 단계가 아닙니다 (각 단계의 절차는 스케줄러 외부 또는 다른 체인에서 사용될 수 있음).

11gR2 덕분에 체인의 고장에 대한 전자 메일 알림을 설정할 수 있지만이 작업은 내가해야 할 몇 가지 조치 중 하나 일뿐입니다.

내가 생각할 수있는 유일한 점은 폴링 작업이 x 분마다 내 체인의 상태를 확인하고 실패 상태로 종료 된 체인의 최신 작업을 볼 때 실패 작업을 시작한다는 것입니다. 하지만 이것은 최고의 해킹입니다.

주어진 작업 체인에 대한 예외를 처리하는 가장 좋은 방법은 무엇입니까?

감사

답변

1

일반적으로 작업의 예외를 처리하는 가장 유연한 방법은 작업 예외 모니터링 절차를 사용하여 작업 상태 변경에 따라 이벤트를 생성하는 작업을 정의하는 것입니다. 작업 예외 모니터링 절차는 루프에서 scheduler event queue을보고 사용자가 정의한 방식으로 이벤트에 반응해야합니다.

이렇게하면 체인의 모든 작업 단계마다 실패 단계를 작성해야하는 부담이 없어집니다. 이것은 매우 강력한 메커니즘입니다.

시간 부족 : 이벤트 기반 스케줄링의 in the book is a complete scenario. 나중에 그것을 파헤 치겠다.

+0

감사합니다. 그래서 Oracle AQ를 사용하고 체인에서 실패 이벤트를 발생시킨 다음 해당 대기열을 사용하여 별도의 이벤트 기반 작업을 설정합니까? AQ에 대한 경험이별로 없지만 간단한 예제를 줄 수 있습니까? 다시 한 번 감사합니다 – tbone

+0

안녕하세요, 의견보기; 나중에 실행해야합니다! –

+0

나를 위해 행운이,이 책에 대해 그들이 제공하는 하나의 무료 챕터 이벤트에 있습니다! 나는 책 tho에서보기를 베끼거나 풀칠하지 않으며, 아마 아직도 ebook를 살 것이다, 좋게 본다. 감사합니다 @ik_zelf, 당신이 모두를위한 간단한 예제가 있다면, 그것은 여전히 ​​많이 감사 할 것입니다. – tbone