DBMS_ALERT
DBMS_ALERT 패키지의 기본 개념과 패키지 내의 프러시저와 함수를 사용하는 방법을 설명합니다.
개요
DBMS_ALERT 패키지는 Tibero의 ALERT 기능과 관련한 프러시저와 함수를 제공합니다. Tibero의 ALERT 은 Tibero 데이터베이스와 통합되어 있는 알림/기다림 기능을 하는 패키지입니다. 이는 영속적이지 않으며 서버가 재가동되면 모든 알림/기다림 정보는 사라집니다.
ALERT기능은 보통 다음과 같이 사용합니다.
기다릴 alert을 등록합니다. (register)
기다립니다. (waitone, waitany)
필요한 이벤트가 발생하면 다른 세션에서 alert을 발생시킵니다. (signal)
1번에서 등록한 alert이나 3번에서 발생시킨 alert signal은 서버를 재가동할 때 사라집니다.
다음은 DBMS_ALERT 패키지 내에 정의된 상수입니다.
MAXWAIT CONSTANT INTEGER := 86400000프러시저
본 절에서는 DBMS_ALERT 패키지에서 제공하는 프러시저를 알파벳 순으로 설명합니다.
REGISTER
기다릴 ALERT을 등록하는 프러시저입니다. 등록된 ALERT은 REGISTER 프러시저를 수행한 세션에서만 유효합니다. 중복해서 등록할 필요는 없습니다(무시됨). 다른 세션에서 ALERT을 기다리려면 새로 등록해야 합니다.
REGISTER 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
name
등록/기다릴 ALERT의 이름
예제
REMOVE
등록된 ALERT을 제거하는 프러시저입니다. 이 프러시저는 프러시저를 수행하는 세션에만 영향을 줍니다. 즉,다른 세션에서 등록한 동일 이름에 대해서는 영향을 주지 않습니다. 등록되지 않은 ALERT을 REMOVE하려 고 하면 에러가 발생합니다.
REMOVE 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
name
제거할 ALERT의 이름
예제
REMOVEALL
등록된 모든 ALERT을 제거하는 프러시저입니다. 이 프러시저는 프러시저를 수행하는 세션에만 영향을 줍니다. 즉, 다른 세션에서 등록한 동일 이름에 대해서는 영향을 주지 않습니다.
REMOVEALL 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
예제
SET_DEFAULTS
사용하지 않는 프러시저입니다.
SIGNAL
ALERT을 발생시켜 이를 기다리고 있는 세션들을 깨워주는 프러시저입니다.
SIGNAL 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
name
발생시킬 ALERT의 이름
message
함께 전달할 메시지
최대 128bytes까지 전송
예제
WAITANY
어떠한 종류든 내가 등록한 ALERT을 기다리는 프러시저입니다. 세션에서 이전에 등록했던 ALERT이 발생 한 경우 깨어납니다. 또한 타임아웃이 지나면 깨어날 수 있습니다. 특정 ALERT을 받아서 깨어나도 해당 ALERT이 자동으로 REMOVE되지 않습니다.
WAITANY 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
name
WAITANY 프러시저가 깨어나도록 한 ALERT의 이름
타임아웃으로 깨어난 경우 값이 없음
message
WAITANY 프러시저가 깨어나도록 한 ALERT과 함께 전달된 메시지
타임아웃으로 깨어난 경우 값이 없음
status
1 : 타임아웃으로 깨어난 경우
0 : ALERT이 발생해서 깨어난 경우
timeout
얼마나 기다릴지 설정하는 값 (단위: seconds)
예제
WAITONE
특정 ALERT을 기다리는 프러시저입니다. 이전에 등록했던 ALERT만 기다릴 수 있으며, 등록하지 않은 ALERT을 지정하는 경우 에러가 발생합니다. 또한 timeout이 지나면 깨어날 수 있습니다. 특정 ALERT을 받아서 깨어나도 해당 ALERT이 자동으로 REMOVE되지 않습니다.
WAITANY 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
name
기다릴 ALERT의 이름
message
WAITANY 프러시저가 깨어나도록 한 ALERT과 함께 전달된 메시지
타임아웃으로 깨어난 경우 값이 없음
status
1 : 타임아웃으로 깨어난 경우
0 : ALERT이 발생해서 깨어난 경우
timeout
얼마나 기다릴지 설정하는 값 (단위: seconds)
예제
Last updated

