스크립트를 사용하여 타이머 서비스 구성

wsadmin 스크립트를 사용하여 엔터프라이즈 JavaBeans(EJB) 타이머 서비스를 구성합니다.

시작하기 전에

Jacl 또는 Jython 및 wsadmin 스크립트에 대한 작업 지식을 보유해야 합니다.

이 태스크 정보

EJB 타이머의 동작은 server.xml 파일에서 EJBTimer 구성 오브젝트를 사용하여 구성됩니다. EJB 타이머가 있으면, 사용자 환경에 대한 최적의 설정을 확보하도록 EJBTimer 구성 오브젝트를 업데이트해야 합니다.

EJBTimer 구성 오브젝트는 서버 레벨에 존재합니다. 즉, 다중 서버 환경의 각 서버가 고유한 EJBTimer 구성 오브젝트를 보유하며, 개별적으로 구성되어야 합니다.

프로시저

  1. Jython 또는 스크립트 언어를 사용하여 스크립트 도구를 시작하십시오.
  2. EJBTimer 구성 오브젝트에서 업데이트해야 하는 속성을 판별하십시오. EJBTimer 구성 오브젝트에서 다음 속성을 업데이트할 수 있습니다.
    • datasourceJNDIName
    • datasourceAlias
    • tablePrefix
    • pollInterval
    • numAlarmThreads
    • schedulerJNDIName
    • numNPTimerThreads
    • nonPersistentTimerRetryCount
    • nonPersistentTimerRetryInterval
    • uniqueTimerManagerForNP

    각 속성의 전체 설명은 EJB 타이머 서비스 설정에 대한 정보를 참조하십시오.

    4가지 유형의 EJB 타이머가 존재합니다.
    • 지속적 타이머. 기본 내부 스케줄러 인스턴스에서 지원됩니다.
    • 지속적 타이머. 사용자 정의 스케줄러 인스턴스에서 지원됩니다.
    • 비지속적 타이머. 지속적 타이머와 스레드 풀을 공유합니다.
    • 비지속적 타이머. 지속적 타이머와 스레드 풀을 공유하지 않습니다.
    서버는 항상 두 개 유형의 지속적 타이머 중 하나와 두 개 유형의 비지속적 타이머 중 하나를 사용하도록 구성됩니다.

    EJBTimer 구성 오브젝트는 EJB 타이머의 모든 4개 유형에 대한 구성 데이터를 포함합니다. 4개 유형의 각 타이머는 EJBTimer 구성 오브젝트에서 구성 속성의 서브세트를 사용합니다. EJBTimer 구성 오브젝트의 모든 속성은 타이머 유형 중 하나 이상을 구성하는 데 사용되며 모든 타이머 유형을 구성하는 데 사용되는 속성은 없습니다. 따라서 사용하도록 구성된 타이머 유형과 해당 타이머 유형에 적용되는 구성 속성을 이해해야 합니다.

    표 1. 타이머 유형 및 구성 속성. 타이머의 각 유형을 구성하는 데 사용되는 EJBTimer 속성을 표시합니다.
    속성 지속적, 기본 스케줄러 지속적, 사용자 정의 스케줄러 비지속적, 공유 스레드 풀 비지속적, 고유 스레드 풀
    datasourceJNDIName 아니오, 대신 사용자 정의 스케줄러 구성에서 지정됨 아니오 아니오
    datasourceAlias 아니오, 대신 사용자 정의 스케줄러 구성에서 지정됨 아니오 아니오
    tablePrefix 아니오, 대신 사용자 정의 스케줄러 구성에서 지정됨 아니오 아니오
    pollInterval 아니오, 대신 사용자 정의 스케줄러 구성에서 지정됨 아니오 아니오
    numAlarmThreads 아니오 아니오
    schedulerJNDIName 아니오 아니오 아니오
    numNPTimerThreads 아니오 아니오 아니오
    nonPersistentTimerRetryCount 아니오 아니오
    nonPersistentTimerRetryInterval 아니오 아니오
    uniqueTimerManagerForNP 아니오 아니오

    schedulerJNDIName 속성 값의 존재는 사용하는 지속적 타이머 유형을 판별합니다. schedulerJNDIName 속성에 값이 있으면, 사용자 정의 스케줄러 인스턴스가 사용됩니다. schedulerJNDIName에 값이 없으면 기본 내부 스케줄러 인스턴스가 사용됩니다.

    numAlarmThreads 속성은 관리 콘솔의 지속적 EJB 타이머 구성 섹션에서 타이머 스레드 수 옵션에 맵핑됩니다. numNPTimerThreads 속성은 관리 콘솔의 비지속적 EJB 타이머 구성 섹션에서 타이머 스레드 수 옵션에 맵핑됩니다.

    uniqueTimerManagerForNP 속성은 관리 콘솔에서 지속적 타이머에 대해 구성된 스레드 풀 공유 및 비지속적 타이머 옵션의 경우 별도의 스레드 풀 작성에 맵핑됩니다.

    uniqueTimerManagerForNP 속성은 지속적 타이머 및 비지속적 타이머 사이에서 공유되는지 여부를 판별합니다. 또한 numAlarmThreads 또는 numNPTimerThreads 구성 속성이 사용되는지도 판별합니다.

    표 2. uniqueTimerManagerForNP 속성의 영향. uniqueTimerManagerForNP 속성은 스레드 풀 공유 및 스레드 구성 모두에 영향을 줍니다.
    uniqueTimerManagerForNP attribute 지속적 및 비지속적 타이머가 스레드 풀을 공유함 사용된 스레드 구성 속성 무시된 스레드 구성 속성
    true 아니오 numNPTimerThreads numAlarmThreads
    false numAlarmThreads numNPTimerThreads
  3. 올바른 EJBTimer 구성 오브젝트에 대한 참조를 확보하고 이를 변수에 저장하십시오.

    Jacl 사용:

    set timer [$AdminConfig list EJBTimer]
    Jython 사용:
    timer = AdminConfig.list('EJBTimer') 

    다중 서버 환경인 경우 다중 EJBTimer 구성 오브젝트가 리턴됩니다. 프로그래밍 방식으로 목록을 반복하고 업데이트해야 하는 서버에 대응하는 EJBTimer 구성 오브젝트를 선택하십시오.

    다중 서버 환경에서는 프로그래밍 방식으로 EJBTimer 오브젝트 목록을 반복하는 대신, 올바른 EJBTimer 오브젝트를 수동으로 선택하고 변수에 복사하여 붙여넣을 수 있습니다.

    예를 들어, AdminConfig list 명령의 출력이 다음과 같은 경우,

    (cells/myCell01/nodes/myCellManager01/servers/dmgr|server.xml#EJBTimer_1)(cells/myCell01/nodes/myNode02/servers/server1|server.xml#EJBTimer_1246050925244)

    필요한 EJBTimer 오브젝트의 참조를 변수로 복사하여 붙여넣으십시오.

    Jacl 사용:
    set timer "(cells/myCell01/nodes/myNode02/servers/server1|server.xml#EJBTimer_1246050925244)"
    Jython 사용:
    timer = "(cells/myCell01/nodes/myNode02/servers/server1|server.xml#EJBTimer_1246050925244)"
  4. EJBTimer 구성 오브젝트에서 속성을 업데이트하십시오.

    AdminConfig modify 명령을 사용하여 EJBTimer 구성 오브젝트에서 속성을 업데이트하십시오. 명령에 대한 첫 번째 인수는 이전 단계에서 확보한 EJBTimer 참조입니다. 명령에 대한 두 번째 인수는 이름-값 쌍의 목록입니다.

    10번의 재시도 수를 설정하고 각 시도 간 재시도 간격을 15초로 설정하려면 다음을 수행하십시오.

    Jacl 사용:
     set update "{nonPersistentTimerRetryCount 10} {nonPersistentTimerRetryInterval 15}"
     $AdminConfig modify $timer $update
    Jython 사용:
    AdminConfig.modify(timer, '[[nonPersistentTimerRetryCount "10"] [nonPersistentTimerRetryInterval "15"]]') 
  5. 구성 변경사항을 저장하십시오.
    Jython 사용:
    AdminConfig.save()
    Jacl 사용:
    $AdminConfig save
  6. Network Deployment 환경에서만 노드를 동기화하십시오.

    Jacl 사용:

    set sync1 [$AdminControl completeObjectName type=NodeSync,node=<your node>,*]
    $AdminControl invoke $sync1 sync
    Jython 사용:
    sync1 = AdminControl.completeObjectName('type=NodeSync,node=<your node>,*')
    AdminControl.invoke(sync1, 'sync')
    이 예제에서 노드 동기화는 서버에 연결된 동안 실행되어야 합니다.

결과

이제 업데이트 결과로, EJBTimer 구성 오브젝트는 사용자가 지정한 속성 값을 반영합니다. 서버에서 변경사항을 업데이트하려면 서버를 다시 시작하십시오.

주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_ejbTimer_config
파일 이름:txml_ejbTimer_config.html