여기에서 JEUS 도메인의 메인 설정 파일인 domain.xml에서 스케줄러에 관련된 태그에 대한 설명을 찾을 수 있다.
XML Schema 파일:
JEUS_HOME/lib/schemas/jeus/jeus-common.xsd
레퍼런스는 다음 형식으로 구성되어 있다.
XML Schema/XML 트리: XML 설정 파일의 모든 태그 리스트를 정리했다. 각 노드의 형식은 다음과 같다.
태그 레퍼런스로 빨리 찾아보기 위해서 각 태그마다 인덱스 번호( 예: (11) )를 붙여 놓았다. 태그 레퍼런스에서는 이 번호 순서로 설명한다.
XML Schema에서 정의한 XML 태그명을 <tag name> 형식으로 표시한다.
XML Schema에서 정의한 Cardinality를 표시한다. “?” = 0개나 1개의 element, “+” = 1개 이상의 element, “*” = 0개 이상의 element, (기호가 없음) = 정확히 1개의 element
몇몇 태그에는 “P” 문자를 붙여 놓았는데, 해당 태그는 성능에 관계되는 태그라는 것을 뜻한다. 이 태그는 설정을 튜닝할 때 사용된다.
Element Reference: 트리에 있는 각 XML 태그를 설명한다.
Dynamic: 동적 설정 반영 가능
Non-Dynamic: 동적 설정 반영 불가능, Dynamic이 설정되지 않은 항목들이 보통 이에 해당 하나 특별히 설명이 있는 경우 이 항목이 표시된다.
Description: 태그에 대한 간단한 설명.
Value Description: 입력하는 값과 타입.
Value Type: 값의 데이터 타입. (예: String)
Value Type Description: 값의 데이터 타입에 대한 설명
Default Value: 해당 XML을 사용하지 않았을 때 기본적으로 사용되는 값.
Defined Value: 이미 정해져 있는 값.
Example: 해당 XML 태그에 대한 예.
Performance Recommendation: 성능 향상을 위해서 추천하는 값.
Child Elements: 자신의 태그 안에 사용하는 태그.
(967) <scheduler>?
(968) <enabled>? P
(969) <pooling>?
(970) <shared>
(971) <reserved-thread-num>? P
(972) <dedicated>
(973) <min>? P
(974) <max>? P
(975) <keep-alive-time>? P
(976) <queue-size>? P
(977) <stuck-thread-handling>?
(978) <max-stuck-thread-time>? P
(979) <action-on-stuck-thread>? P
(980) <stuck-thread-check-period>? P
(981) <user-warning-class>?
(982) <job-list>?
(983) <job>*
(984) <name>
(985) <class-name>
(986) <interval>
(987) <millisecond>
(988) <minutely>
(989) <hourly>
(990) <daily>
(991) <description>?
(992) <begin-time>?
(993) <end-time>?
(994) <count>? P
(967)
<domain> <servers> <server> <scheduler>
| |
Description | JEUS Scheduler에 관련된 사항을 설정한다. |
Value Type |
schedulerType
|
Child Elements |
(968)
(969)
(982)
|
(968)
<domain> <servers> <server> <scheduler> <enabled>
| |
Description | Scheduler 서비스의 구동 여부를 지정한다. |
Value Type |
boolean
|
Default Value |
true
|
(969)
<domain> <servers> <server> <scheduler> <pooling>
| |
Description | Scheduler에서 멀티 스레드로 Job을 실행할 때 사용하는 Thread Pool을 설정한다. |
Value Type |
thread-poolingType
|
Child Elements |
(970)
(972)
|
(970)
<domain> <servers> <server> <scheduler> <pooling> <shared>
| |
Dynamic | 동적 변경이 가능하다. |
Description | 서버 전반적으로 공유할 Thread Pool을 사용한다. |
Value Type |
shared-poolType
|
Child Elements |
(971)
|
(971)
<domain> <servers> <server> <scheduler> <pooling> <shared> <reserved-thread-num>
| |
Dynamic | 동적 변경이 가능하다. |
Description | 서버 전반적으로 공유할 Thread Pool을 사용하는 경우 다른 서비스가 스레드를 모두 점유하면 스레드 할당을 받지 못할 수 있다. 따라서 특별히 이 서비스를 위한 스레드를 미리 할당하고 싶을 경우에 설정한다. 설정값은 다른 서비스 들과 합산했을 때 System Thread Pool의 최댓값을 넘지 않도록 해야 한다. |
Value Type |
nonNegativeIntType
|
Value Type Description | 0 이상의 Int 값이다. |
Default Value |
0
|
(972)
<domain> <servers> <server> <scheduler> <pooling> <dedicated>
| |
Dynamic | 동적 변경이 가능하다. |
Description | 서비스별 전용 Thread Pool을 사용한다. |
Value Type |
dedicated-poolType
|
Child Elements |
(973)
(974)
(975)
(976)
(977)
|
(973)
<domain> <servers> <server> <scheduler> <pooling> <dedicated> <min>
| |
Dynamic | 동적 변경이 가능하다. [Basic] |
Description | Thread Pool에서 관리하는 스레드 수의 최솟값이다. |
Value Type |
nonNegativeIntType
|
Value Type Description | 0 이상의 Int 값이다. |
Default Value |
0
|
(974)
<domain> <servers> <server> <scheduler> <pooling> <dedicated> <max>
| |
Dynamic | 동적 변경이 가능하다. [Basic] |
Description | Thread Pool에서 관리하는 스레드 수의 최댓값이다. [Default Value]: 기본값은 10개이다. (System Pool의 기본값은 100이다). |
Value Type |
nonNegativeIntType
|
Value Type Description | 0 이상의 Int 값이다. |
Default Value |
10
|
(975)
<domain> <servers> <server> <scheduler> <pooling> <dedicated> <keep-alive-time>
| |
Dynamic | 동적 변경이 가능하다. |
Description | Min 이하의 스레드에 대해서 설정된 시간 동안 사용되지 않는다면 자동적으로 Thread Pool에서 제거된다. 0이면 제거하지 않는다. [Default Value]: 기본값은 1분이다. (System Pool의 기본값은 300000이다). |
Value Description | 밀리세컨드 단위로 설정한다. |
Value Type |
nonNegativeLongType
|
Value Type Description | 0 이상의 Long 값이다. |
Default Value |
60000
|
(976)
<domain> <servers> <server> <scheduler> <pooling> <dedicated> <queue-size>
| |
Description | Thread Pool이 처리하는 업무 개체를 저장하는 Queue의 크기를 지정한다. |
Value Type |
nonNegativeIntType
|
Value Type Description | 0 이상의 Int 값이다. |
Default Value |
4096
|
(977)
<domain> <servers> <server> <scheduler> <pooling> <dedicated> <stuck-thread-handling>
| |
Dynamic | 동적 변경이 가능하다. |
Description | 스레드가 특정 업무 때문에 일정 시간 이상 계속 점유된 상태일 경우, 해당 스레드에 대해서 특정 액션을 취하기 위한 설정이다. |
Value Type |
stuck-thread-handlingType
|
Child Elements |
(978)
(979)
(980)
(981)
|
(978)
<domain> <servers> <server> <scheduler> <pooling> <dedicated> <stuck-thread-handling> <max-stuck-thread-time>
| |
Dynamic | 동적 변경이 가능하다 |
Description | 스레드를 Stuck Thread로 판단하는 기준이 되는 값을 설정한다. 설정된 시간 이상 계속 점유된 상태이면 해당 스레드를 Stuck Thread로 간주한다. [Default Value]: 기본값은 1시간이다. |
Value Description | 밀리세컨드 단위로 설정한다. |
Value Type |
nonNegativeLongType
|
Value Type Description | 0 이상의 Long 값이다. |
Default Value |
3600000
|
(979)
<domain> <servers> <server> <scheduler> <pooling> <dedicated> <stuck-thread-handling> <action-on-stuck-thread>
| |
Dynamic | 동적 변경이 가능하다. |
Description | Stuck Thread로 판단된 경우 그 쓰레드에 대해 특정 액션을 취하기 위한 설정이다. [Default Value]: 기본값은 아무 액션도 취하지 않는 None이다. (System Pool의 기본값은 IgnoreAndReplace이다.) |
Value Type |
action-on-stuck-threadType
|
Default Value |
None
|
Defined Value |
|
(980)
<domain> <servers> <server> <scheduler> <pooling> <dedicated> <stuck-thread-handling> <stuck-thread-check-period>
| |
Dynamic | 동적 변경이 가능하다 |
Description | Stuck Thread 의 상태를 체크하는 주기를 설정한다. [Default Value]: 기본값은 5분이다. |
Value Description | 밀리세컨드 단위로 설정한다. |
Value Type |
nonNegativeLongType
|
Value Type Description | 0 이상의 Long 값이다. |
Default Value |
300000
|
(981)
<domain> <servers> <server> <scheduler> <pooling> <dedicated> <stuck-thread-handling> <user-warning-class>
| |
Description | action-on-stuck-thread를 Warning으로 설정된 경우에 default는 thread dump를 찍어주도록 되어있으나, 사용자가 원하는 작업을 할 수 있도록 직접 클래스를 작성하고 싶을 때 이 설정을 사용한다. 해당 클래스는 jeus.util.pool.Warning를 반드시 implement 해야 하며, jeus.util.pool.Warning interface는 jclient.jar에서 찾을 수 있다. 클래스를 작성한 후에 사용하고 싶은 대상 서버의 SERVER_HOME/lib/application에 위치시킨다. |
Value Description | fullyQualifedClass 이름을 사용한다. ex) test.stuck.UserWarning |
Value Type |
string
|
(982)
<domain> <servers> <server> <scheduler> <job-list>
| |
Description | Scheduler에 등록할 Job List을 지정한다. |
Value Type |
job-listType
|
Child Elements |
(983)
|
(983)
<domain> <servers> <server> <scheduler> <job-list> <job>
| |
Description | Scheduler에 등록할 하나의 Job을 지정한다. |
Value Type |
jobType
|
Child Elements |
(984)
(985)
(986)
(991)
(992)
(993)
(994)
|
(984)
<domain> <servers> <server> <scheduler> <job-list> <job> <name>
| |
Description | Job의 이름을 지정한다(ID에 대한 Validation작업이 필요). |
Value Type |
valuableToken
|
(985)
<domain> <servers> <server> <scheduler> <job-list> <job> <class-name>
| |
Description | Job을 수행하는 클래스의 Fully Qualified Name을 설정한다. |
Value Type |
valuableToken
|
(986)
<domain> <servers> <server> <scheduler> <job-list> <job> <interval>
| |
Description | Job이 수행되는 주기를 지정한다. |
Value Type |
intervalType
|
Child Elements |
(987)
(988)
(989)
(990)
|
(987)
<domain> <servers> <server> <scheduler> <job-list> <job> <interval> <millisecond>
| |
Description | 주기를 밀리세컨드 단위로 지정한다. |
Value Type |
long
|
(988)
<domain> <servers> <server> <scheduler> <job-list> <job> <interval> <minutely>
| |
Description | 주기를 분 단위로 지정한다. |
Value Type |
nonNegativeIntType
|
Value Type Description | 0 이상의 Int 값이다. |
(989)
<domain> <servers> <server> <scheduler> <job-list> <job> <interval> <hourly>
| |
Description | 주기를 시간 단위로 지정한다. |
Value Type |
nonNegativeIntType
|
Value Type Description | 0 이상의 Int 값이다. |
(990)
<domain> <servers> <server> <scheduler> <job-list> <job> <interval> <daily>
| |
Description | 주기를 날짜 단위로 지정한다. |
Value Type |
nonNegativeIntType
|
Value Type Description | 0 이상의 Int 값이다. |
(991)
<domain> <servers> <server> <scheduler> <job-list> <job> <description>
| |
Description | Job의 설명을 입력할 수 있다. |
Value Type |
valuableToken
|
(992)
<domain> <servers> <server> <scheduler> <job-list> <job> <begin-time>
| |
Description | Job의 시작시간을 지정한다. 설정되지 않으면 Job은 바로 시작된다. 입력 양식은 xs:dateTime type에 따른다. |
Value Type |
dateTime
|
Example |
2020-01-01T03:20:01
|
(993)
<domain> <servers> <server> <scheduler> <job-list> <job> <end-time>
| |
Description | Job의 종료시간을 지정한다. 설정되지 않으면 Job은 종료되지 않는다. 입력 양식은 xs:dateTime type에 따른다. |
Value Type |
dateTime
|
Example |
2020-01-01T03:50:20
|
(994)
<domain> <servers> <server> <scheduler> <job-list> <job> <count>
| |
Description | Job의 수행 횟수를 지정한다. |
Value Type |
long
|
Default Value |
-1
|
[예 2.1] Scheduler domain.xml 파일 예제
<?xml version="1.0"?> <domain> <servers> <server> <!-- server Scheduler Service --> <scheduler> <enabled>true</enabled> <!-- Scheduler Thread-pool settings --> <pooling> <shared> <reserved-thread-num>5</reserved-thread-num> </shared> </pooling> <!-- Jobs to be executed after booting --> <job-list> <job> <class-name>sample.scheduler.ScheduleJob</class-name> <name>My Task</name> <description> This task runs in every 30 minutes </description> <begin-time>2005-02-01T09:00:00</begin-time> <end-time>2005-02-28T23:59:59</end-time> <interval> <minutely>30</minutely> </interval> <count>-1</count> </job> </job-list> </scheduler> </server> </servers> </domain>