콘텐츠로 이동

CREATE JOB

CREATE JOB#

구문#

create_job ::=#

execute_procedure_statement ::=#

execute_procedure_statement

start_end_clause ::=#

start_end_clause

interval_clause ::=#

interval_clause

전제 조건#

SYS 사용자만이 이 구문으로 JOB을 생성할 수 있다. 생성된 JOB을 수행하려면 JOB을 생성 시 또는 생성 후에 반드시 ENABLE로 활성화해야 한다.

설명#

CREATE JOB 구문으로 작업 스케줄러에서 관리할 JOB을 생성할 수 있다. 생성하는 각각의 JOB은 실행할 프로시저와 시작 시간, 끝나는 시간 및 실행 주기 등의 일정을 지정할 수 있다.

execute_procedure_statement#

JOB에 등록할 프로시저의 실행 구문을 명시한다. JOB 한 개에 한 개의 프로시저만 등록할 수 있다. 프로시저의 사용자 이름은 생략할 수 있으며, SYS 사용자로 간주한다. expr2에는 명시한 프로시저를 실행하기 위한 입력 인자 값을 상수 또는 수식으로 지정한다.

프로시저에 대한 자세한 설명은 Stored Procedures Manual을 참조한다.

start_end_clause#

JOB을 실행하는 시작 시간과 끝나는 시간을 설정할 수 있다. expr1에는 DATE 타입의 값 또는 수식만 올 수 있다.

interval_clause#

JOB이 처음 실행된 이후에 다음에 반복적으로 실행할 주기를 명시한다. 시간 단위는 number 다음에 명시되는 YEAR, MONTH, DAY, HOUR, MINUTE에 따라 결정된다.

ENABLE/DISABLE#

사용자가 각각의 JOB을 ENABLE/DISABLE을 선택하여 작업 스케줄러에서 수행 여부를 설정할 수 있다. 생략하면, 기본값은 DISABLE이다.

COMMENT#

JOB에 대한 설명을 기술할 수 있다.

주의 사항#

아래는 JOB을 사용하는 관리자가 염두에 두어야 할 사항들이다.

  • 입출력 모드가 OUT 또는 INOUT인 인자를 가진 저장 프로시저는 JOB에 등록될 수 없다.
  • 작업 스케줄러가 JOB을 실행하려면 JOB_SCHEDULER_ENABLE 프로퍼티가 1이고 JOB_THREAD_COUNT 프로퍼티 값이 0보다 커야 한다.
  • JOB에서 수행한 프로시저에서 오류가 발생한 경우, JOB_MSGLOG_FILE 프로퍼티에 설정한 트레이스 로그 파일(기본: $ALTIBASE_HOME/trc/altibase_job.log)에 에러 메시지 등의 로그를 기록한다.
  • 프로시저에서 SYSTEM_.PRINTLN 같은 출력 함수를 사용한 경우, JOB_MSGLOG_FILE 프로퍼티에 설정한 트레이스 로그 파일(기본: $ALTIBASE_HOME/trc/altibase_job.log)에 출력 내용을 기록한다.

예제#

<질의> 현재부터 시작되어 한 달에 한 번 주기로 proc1 프로시저를 실행하는 job1을 생성하라 (job1의 상태는 DISABLE이다).

iSQL> CREATE JOB job1 EXEC proc1 START sysdate INTERVAL 1 MONTH;
Create success.

<질의> 2016년 8월 1일부터 8월 31일까지 매일 00:00:00에 proc 프로시저를 수행하는 job2을 생성하고, job2의 상태를 활성화(ENABLE)하라.

iSQL> CREATE JOB job2 EXEC proc
START to_date('2016/08/01 00:00:00', 'YYYY-MM-DD HH:MI:SS')
END to_date('2016/08/31 00:00:00', 'YYYY-MM-DD HH:MI:SS')
INTERVAL 1 DAY
ENABLE;
Create success.