개요
이 문서에서는 작업 개체를 만들고 실행하는 방법과 이를 모니터링하는 방법에 대해 설명한다.
버전
Altibase 6.3.1 이상
사용 방법
작업(Job) 객체 생성 및 정상적인 동작을 위해서 아래 순서대로 진행해야 한다.
- 작업 스케줄러 기능 활성화
- 작업(Job) 객체에 등록할 프로시저 생성
- 작업(Job) 객체 생성
- 작업(Job) 객체 활성화 (Altibase 6.5.1 이상에서만 수행함. Altibase 6.3.1은 해당없음)
- 작업(Job) 객체 및 수행 결과 확인
작업 스케줄러 활성화(알티베이스 서버 프로퍼티 설정)
작업(Job) 객체를 처음 사용한다면 아래 두 개의 알티베이스 서버 프로퍼티를 변경하여 작업 스케줄러 기능을 활성화해야 한다.
작업 스케줄러는 작업(Job)객체에 등록된 설정에 따라 프로시저를 수행시키는 기능을 한다.
- JOB_SCHEDULER_ENABLE : 작업 스케줄러 활성화 설정
- JOB_THREAD_COUNT : 작업(Job) 객체 수행을 위한 쓰레드 수
위 두 프로퍼티가 모두 1로 설정되어 있어야 작업 스케줄러를 사용할 수 있다. 기본값이 0이기 때문에 작업 스케줄러를 처음 사용한다면 반드시 확인해야 한다.
JOB_SCHEDULER_ENABLE 프로퍼티는 알티베이스 서버가 구동된 상태에서도 변경할 수 있지만 JOB_THREAD_COUNT 프로퍼티의 값을 변경하기 위해서는 Altibase 서버를 재구동해야 한다.
따라서 작업 스케줄러를 처음 사용할 경우 아래 절차에 따라 프로퍼티를 변경한다.
Altibase 서버 종료
altibase.properties 파일에서 JOB_SCHEDULER_ENABLE 와 JOB_THREAD_COUNT 프로퍼티를 찾아서 값을 1로 변경 후 저장
Unix/Linux 의 경우 예알티베이스 서버 시작
프로퍼티 설정 값 확인
프로시저 생성
작업(Job) 객체에 등록할 프로시저를 생성하고 프로시저가 정상적으로 수행하는지 확인한다.
프로시저 정상 수행 여부를 확인하는 이유는 작업 스케줄러에 의해 Job객체가 설정대로 동작하지 않을 경우 프로시저 문제 가능성을 배제하기 위해서이다.
작업(Job) 객체 생성
JOB 객체를 생성한다.
JOB 객체에는 실행할 저장 프로시저와 실행 시각, 실행 주기 등을 설정할 수 있다. JOB 객체 생성 구문은 SQL Reference 매뉴얼을 참고한다. (매뉴얼 다운로드 페이지 : http://support.altibase.com/kr/manual)
작업(Job) 객체 활성화
이 작업은 Altibase 6.5.1에서 특정 JOB을 활성화/비활성화시키는 기능이 추가되면서 추가된 절차이다.
Altibase 6.3.1 에서는 JOB객체 생성 시 바로 '활성화' 상태가 되지만 Altibase 6.5.1 부터는 CREATE JOB 구문에서 ENABLE 옵션을 사용하지 않으면 기본적으로 '비활성화' 상태이다.
따라서 Altibase 6.5.1부터는 Job객체 생성 후 Job이 동작하도록 하려면 활성화 상태로 변경해야 한다.
변경 방법은 아래와 같다.
Altibase 6.5.1 부터는 JOB객체 생성 시 바로 '활성화' 상태로 설정할 수도 있다.
작업(Job) 객체 및 수행 결과 확인
아래 쿼리로 Job 객체 정보와 Job의 수행 결과를 확인할 수 있다.
관련 프로퍼티
JOB_SCHEDULER_ENABLE
프로퍼티 설명
- 작업 스케줄러 기능을 활성화 또는 비활성화하기 위한 프로퍼티이다.
- 기본값은 0 으로 작업 스케줄러의 동작을 중지한다.
설정값 변경 방법
ALTER SYSTEM 으로 변경할 수 있다.
설정값 확인 방법
아래 쿼리로 JOB_SCHEDULER_ENABLE 설정값을 확인할 수 있다.
JOB_THREAD_COUNT
프로퍼티 설명
- 작업(Job)을 처리하기 위한 쓰레드 수를 설정하는 프로퍼티이다.
- 기본값은 0으로 Altibase 서버 구동 시 작업 스케줄러 수행을 위한 쓰레드가 구동되지 않는다.
- JOB_THREAD_COUNT 를 0 이 아닌 값으로 설정하면 JobScheduler 쓰레드와 JOB_THREAD_COUNT 수만큼 JobThread 쓰레드가 구동된다.
- 작업(Job)은 서비스 쓰레드에 의해 수행되지 않고 JobThread 라 불리우는 쓰레드에 의해 처리된다. 그래서 작업 스케줄러에 의해 작업(Job)이 수행되게 하려면 이 프로퍼티를 반드시 설정해야 한다.
- 이 프로퍼티 값을 변경하려면 Altibase 서버 재구동 작업이 필요하다.
설정값 변경 방법
- Altibase 서버 중지
- $ALTIBASE_HOME/conf/altibase.properties 에서 JOB_THREAD_COUNT 를 찾아 값 변경 후 저장
- Altibase 서버 구동
설정값 확인 방법
아래 쿼리로 JOB_THREAD_COUNT 설정값을 확인할 수 있다.
JOB_THREAD_QUEUE_SIZE
프로퍼티 설명
- 여러 개의 작업(Job) 객체가 동시에 수행될 때 이를 처리하기 위한 큐의 갯수를 설정하는 프로퍼티이다.
예를 들어 작업 스케줄러에 의해 4개의 작업(Job)객체가 같은 시각에 수행될 경우, JOB_THREAD_COUNT, JOB_THREAD_QUEUE_SIZE 수에 따라 아래와 같은 순서대로 처리된다.
- JOB_THREAD_COUNT = 4, JOB_THREAD_QUEUE_SIZE = 1 : 동시에 4개가 수행될 수 있음
- JOB_THREAD_COUNT = 2, JOB_THREAD_QUEUE_SIZE = 2 : 동시에 2개가 수행되고 나머지 2개는 이어서 수행됨
- JOB_THREAD_COUNT = 1 ,JOB_THREAD_QUEUE_SIZE = 4 : 동시에 1개가 수행되고 나머지 3개는 이어서 수행됨 - 기본값 및 최소값이 64 로 충분히 크게 설정되어 있어서 사용자가 임의로 설정할 필요는 없다.
- Read-Only 속성으로 이 프로퍼티 값을 변경하려면 알티베이스 서버를 중지해야 한다.
설정값 변경 방법
- Altibase 서버 중지
- $ALTIBASE_HOME/conf/altibase.properties 에서 JOB_THREAD_QUEUE_SIZE 변경 후 저장
- Altibase 서버 구동
설정값 확인 방법
아래 쿼리로 JOB_THREAD_QUEUE_SIZE 설정값을 확인할 수 있다.
참고
다음은 작업 스케줄러 관련 설명을 볼 수 있는 매뉴얼들이다.
- Administrator's Manual > 5. 데이터베이스 객체 및 권한 > 작업(Job)
- SQL Reference > 3. 데이터 정의어 > ALTER JOB /
- SQL Reference > 3. 데이터 정의어 > CREATE JOB
- SQL Reference > 3. 데이터 정의어 > DROP JOB
- General Reference > 2. ALTIBASE HDB 프로퍼티 > 기타 프로퍼티
- General Reference > 3. 데이터 딕셔너리 > SYS_JOBS_
- 매뉴얼 다운로드 페이지 : http://support.altibase.com/kr/manual