제10장 EJB Timer Service

내용 목차

10.1. Timer Service 설정
10.1.1. Persistent Timer Service 설정(EJB 엔진)
10.1.2. Persistent Timer 처리(jeus-ejb-dd.xml)
10.1.3. Cluster-Wide Timer Service 설정
10.2. Timer 모니터링
10.3. Timer Service 사용 주의사항

EJB Timer Service는 EJB가 특정한 시간 또는 주기적으로 callback을 받을 수 있도록 하는 서비스이다. 기본적인 사용 방법은 EJB 스펙에 설명되어 있으므로 본 장에서는 JEUS EJB에서 제공하는 Timer Service와 이를 사용하기 위한 설정에 대해서 설명한다.

JEUS EJB Timer Service는 기본적으로 스펙을 따르지만 persistence하게 Timer를 관리하는 기능은 성능과 사용자의 필요에 따라 선택적으로 사용할 수 있다.

Timer Service는 다음 2개의 설정을 한다.

  • EJB 엔진의 Timer Service

    Timer Service를 사용하는 모든 Bean에 적용되는 공통적인 설정과 persistence한 Timer Service를 가능하게 하는 설정을 한다.

  • jeus-ejb-dd.xml

    각 Bean이 deploy/undeploy될 때 Persistent Timer들을 어떻게 관리하는지에 대한 설정을 한다.

WebAdmin을 사용하여 EJB 엔진의 Persistent Timer Service를 설정할 수 있다.

  1. WebAdmin의 [Servers] 메뉴를 선택하면 서버 목록 조회 화면으로 이동한다. 서버 목록에서 원하는 서버를 선택하면 서버 설정 화면으로 이동한다. 서버 설정 화면에서 [Engine] > [Ejb Engine] > [Timer Service]를 선택한다.

  2. [LOCK & EDIT] 버튼을 클릭해서 설정변경 모드로 전환한다.

  3. Timer Service 화면에서 기본 정보와 고급 선택사항의 항목을 설정한 후 [확인] 버튼을 클릭한다.


    다음은 고급 선택사항에서 Persistent Timer Service를 설정한 예이다.


    각 설정 항목 대한 설명은 다음과 같다.

    • Thread Pool

      Timer Service가 timeout() 메소드를 실행할때 사용하는 Thread Pool에 대한 설정이다.

      항목설명
      MinPooling되는 스레드의 최솟값이다.
      MaxPooling되는 스레드의 최댓값이다.
      PeriodPooling되는 스레드를 정리하는 시간이다.
    • Database Setting

      Persistent Timer Service를 사용한다면 반드시 설정해야 하는 항목이다.

      Persistent Timer는 DB를 사용하기 위해 내부적으로 CMP Bean을 사용하므로 이 CMP Bean이 아래 항목들을 통해 설정된다. 따라서 각 항목은 CMP Bean의 스키마 설정과 같다.

      항목설명
      Db VendorTimer CMP Bean이 사용하는 DB의 벤더를 지정한다.
      Data Source IdTimer CMP Bean이 사용하는 데이터소스 리소스의 이름을 지정한다.
  4. 설정 내용의 동적 반영을 위해 [Activate Changes] 버튼을 클릭한다.

WebAdmin과 콘솔 툴을 사용하여 동작 중인 EJB Timer에 대한 모니터링 및 동작 취소가 가능하다.

WebAdmin 사용

WebAdmin을 사용한 모니터링 및 동작 취소 방법은 다음과 같다.

콘솔 툴 사용

Timer의 모니터링 및 동작 취소는 콘솔 툴을 사용할 수도 있다.

다음은 Timer Service를 사용하는 경우 고려해야할 주의사항에 대한 설명이다.