EJB 타이머 서비스 설정
이 페이지에서 특정 EJB(Enterprise JavaBeans) 컨테이너에 대한 EJB 타이머 서비스를 구성하고 관리할 수 있습니다.
이 관리 콘솔 페이지를 보려면
을 클릭하십시오.지속적 및 비지속적 타이머는 둘 다 동시에 존재할 수 있고 지속적 및 비지속적 구성은 상호 배타적이지 않습니다. 애플리케이션은 지속적 및 비지속적 타이머를 둘 다 사용할 수 있습니다.
서버 종료 및 다시 시작 시 타이머를 지속해야 하는 경우 지속적 타이머를 사용합니다. 그렇지 않고 서버 종료 시 타이머를 취소해야 하는 경우에는 비지속적 타이머를 사용합니다.
서버를 사용할 수 없으므로 지속적 타이머가 실행되지 않는 경우에는 서버가 다시 시작되면 누락된 시도가 복구됩니다. 서버를 사용할 수 없으므로 비지속적 타이머가 실행되지 않는 경우에는 서버 종료 시 비지속적 타이머가 취소되므로 누락된 타이머가 복구되지 않습니다.
지속적 EJB 타이머 구성
내부 EJB 타이머 서비스 스케줄러 인스턴스 사용
제품에서는 EJB 타이머 서비스가 사용할 내부 스케줄러 인스턴스를 제공합니다. 내부 스케줄러 인스턴스는 기본적인 EJB 타이머 기능을 위해 미리 구성되어 있고, EJB 타이머 서비스에 대한 제한적인 구성 설정값을 제공합니다.
지속적 타이머 태스크를 관리하기 위해 내부 스케줄러 인스턴스를 사용하도록 지정할 수 있습니다. 이러한 태스크는 서버 프로세스와 연관된 Derby 데이터베이스까지 지속됩니다. 이 선택은 사용자 정의 스케줄러 인스턴스 사용 옵션을 불가능하게 합니다.
내부 스케줄러 인스턴스가 기본값입니다. 또는 사용자 정의 스케줄러 인스턴스를 사용할 수 있습니다.
사용자 정의 스케줄러 인스턴스 사용
사용자 정의 스케줄러 인스턴스를 정의하여 EJB 타이머 서비스에 대한 고급 구성을 수행할 수 있습니다.
사용자 정의 스케줄러 인스턴스는 내부 EJB 타이머 서비스의 미리 구성된 스케줄러 인스턴스보다 더 많은 구성 옵션을 제공합니다. 클러스터 환경에서 실행 중일 때, 모든 클러스터 멤버가 단일 스케줄러 인스턴스에서 실행할 수 있도록 사용자 정의 스케줄러 인스턴스를 정의할 수 있습니다. 이러한 정의를 통해 한 클러스터 멤버에서 EJB 타이머를 작성하여 다른 클러스터 멤버에서 실행할 수 있습니다. 사용자 정의 스케줄러 인스턴스를 제공하면 지속적인 EJB 타이머를 다른 스케줄된 태스크와 동일한 데이터베이스에서 유지보수할 수 있습니다. 이 선택은 내부 EJB 타이머 서비스 스케줄러 인스턴스 사용 옵션을 불가능하게 합니다.
스케줄러 서비스에서 사용하는 스레드를 EJB 타이머에서 사용하는 스레드에서 분리하도록 사용자 정의 스케줄러 인스턴스를 정의하려고 할 수 있습니다. 비지속적 타이머와 함께 사용하도록 사용자 정의 스케줄러 인스턴스의 EJB 타이머 서비스 스레드를 공유하거나 비지속적 타이머에 대한 개별 스레드 풀을 구성할 수 있습니다. EJB 타이머 전용 스레드 풀을 사용하더라도 사용 가능한 스레드가 충분하지 않은 경우 타이머 만기가 늦어질 수 있습니다. 스레드 수를 설정하기 위해 타이머 수 및 해당 만기 빈도를 평가해야 합니다.
데이터 소스 JNDI 이름
지속적인 EJB 타이머가 이 EJB 컨테이너에 대해 저장되어 있는 데이터 소스의 JNDI(Java™ Naming and Directory Interface) 이름을 지정합니다. 네임스페이스에서 사용 가능한 모든 데이터 소스는 EJB 타이머로 사용될 수 있습니다.
테이블 접두부를 지정하여 서로 다른 테이블을 사용하는 동안 다중 EJB 컨테이너는 하나의 단일 데이터 소스를 공유할 수 있습니다.
Information | 값 |
---|---|
데이터 유형 | 문자열 |
Default | jdbc/DefaultEJBTimerDataSource |
데이터 소스 별명
데이터 소스에 액세스하는 데 사용되는 사용자 이름 및 비밀번호에 대한 인증 별명을 지정합니다.
Information | 값 |
---|---|
데이터 유형 | 문자열 |
테이블 접두부
EJB 타이머 서비스 테이블 이름(TASK, TREG, LMGR 및 LMPR)으로 추가된 문자열입니다. 이러한 테이블은 존재하지 않는 경우 서버 시작 시 작성됩니다. 이러한 테이블을 수동으로 작성하는 방법에 대한 정보는 스케줄러 서비스를 참조하십시오. 각각의 인스턴스가 서로 다른 접두부 문자열을 지정하는 경우, 다중 종속 EJB 타이머 서비스가 동일한 데이터베이스를 공유할 수 있습니다.명령이 지정한 스케줄러에서 타이머를 제거하는 데 사용되는 경우 스케줄러에는 고유한 테이블 접두부가 있어야 합니다. 그렇지 않은 경우 예상보다 많은 타이머가 제거될 수 있습니다.
Information | 값 |
---|---|
데이터 유형 | 문자열 |
Default | EJBTIMER_ |
폴 간격
EJB 타이머 서비스 디먼이 데이터 소스를 폴하는 간격을 지정합니다. 각각의 폴 조작은 불필요합니다. 간격이 작게 지정될 경우, 스케줄된 태스크가 많아지고 폴링은 시스템 자원의 많은 부분을 사용합니다. 이 간격보다 일찍 만기되도록 설정된 새 타이머는 간격이 끝날 때까지 실행되지 않을 수 있습니다. 이 값이 너무 크면 잠재적으로 큰 타이머 이벤트 숫자가 메모리에 로드됩니다. 이유는 다음 폴 간격에 일어나는 모든 타이머 이벤트가 매번 로드되기 때문입니다.
Information | 값 |
---|---|
데이터 유형 | 정수 |
단위 | 초 |
Default | 300 |
범위 | 3 - 1800 |
타이머 스레드 수
동시 EJB 타이머 태스크를 실행하는데 사용되는 스레드 수입니다. 타이머 스레드 수를 0으로 설정하면 EJB 타이머 서비스를 사용할 수 없습니다.
Information | 값 |
---|---|
데이터 유형 | 정수 |
Default | 1 |
범위 | 0 - 500 |
스케줄러 JNDI 이름
EJB 타이머를 관리 및 지속하는 데 사용하기 위한 사용자 정의 스케줄러 인스턴스의 JNDI 이름을 지정합니다. 이 필드는 사용자 정의 스케줄러 인스턴스 사용을 선택한 경우에만 사용됩니다. 내부 EJB 타이머 서비스 스케줄러 인스턴스 구성 정보는 지정된 스케줄러 인스턴스에 적용되지 않습니다.
Information | 값 |
---|---|
데이터 유형 | 문자열 |
비지속적 EJB 타이머 구성
최대 재시도 횟수
제한시간 실패를 재시도할 수 있는 최대 횟수를 지정합니다. 재시도 시 제한시간이 초과되지 않으면 서버에서 재시도 실행을 중지합니다. 재시도에 실패하면 제한시간이 초과되지 않을 때까지 또는 제한시간 제한에 도달할 때까지 서버에서는 계속해서 재시도합니다. 재시도 제한에 도달하면 제한시간이 초과되더라도 서버에서는 제한시간 실행을 시도하지 않습니다. 기본값 -1은 제한 없는 재시도를 나타냅니다. 값 0은 재시도하지 않음을 나타내고 스펙을 준수하지 않습니다. 1 이상의 값은 특정 재시도 횟수가 허용됨을 나타냅니다.
Information | 값 |
---|---|
데이터 유형 | 정수 |
Default | -1 |
범위 | -1 이상 |
재시도 간 시간 간격
실패한 제한시간에 대한 재시도 간 간격을 지정합니다. 첫 번째 재시도는 여기서 구성한 간격에 관계 없이 항상 즉시 발생합니다. 모든 추가 재시도는 여기서 지정한 간격 동안 대기합니다. 0값은 모든 재시도가 즉시 발생함을 나타냅니다. 1 이상의 값은 재시도가 특정 시간(초) 동안 대기해야 함을 나타냅니다.
Information | 값 |
---|---|
데이터 유형 | 정수 |
Default | 300초 |
범위 | 0 이상 |
타이머 스레드 수
비지속적 타이머에 사용된 고유한 스레드 풀에 사용할 수 있는 스레드 수를 지정합니다. 이 구성 옵션은 비지속적 타이머가 지속적 타이머와 스레드 풀을 공유하지 않는 경우에만 사용할 수 있습니다. 이 구성 옵션은 기본 내부 스케줄러 인스턴스를 사용하는 지속적 타이머에만 적용되므로 지속적 EJB 타이머 구성 섹션의 타이머 스레드 수 구성 옵션과 다릅니다.
Information | 값 |
---|---|
데이터 유형 | 정수 |
Default | 1 |
범위 | 0 - 500 |