현재 실행 중인 태스크 식별

태스크가 실행될 때, 태스크가 완료될 때까지 태스크 데이터베이스 레코드가 잠깁니다. 태스크의 실행 여부를 판별합니다.

이 태스크 정보

버전 6.0.2 이전에는 모든 태스크가 단일 글로벌 트랜잭션으로 실행되었습니다. 이 프로세스로 인해 태스크가 두 번 이상 실행되지 않고 태스크 상태를 읽을 때 모든 시도가 차단됩니다. 이는 각 태스크가 읽기 커미트 트랜잭션 격리를 사용했기 때문입니다.

태스크의 실행 중 여부를 판별하는 두 가지 메소드가 있습니다.
  1. NotificationSink

    NotificationSink EJB는 TaskInfo 오브젝트에서 setNotificationSink 메소드를 사용하여 태스크에 설정할 수 있습니다. 그러면 NotificationSink Bean은 태스크의 라이프사이클을 별도의 데이터베이스 레코드에 사용자 정의 테이블로 로깅할 수 있습니다. 그러면 스케줄러와 독립적으로 조회할 수 있는 태스크의 히스토리 로그가 생성됩니다. 이 솔루션은 스케줄러 서비스의 모든 버전에 대해 작동합니다. 세부사항은 스케줄러 알림 수신 주제를 참조하십시오.

  2. 지연된 실행 및 커미트되지 않은 읽기

    버전 6.0.2 이상에서 두 가지 동작은 차단 없이 태스크의 현재 상태를 볼 수 있도록 스케줄러 찾기 및 검색 API 메소드(예: getTask, getTaskStatus 또는 findTasksByName)를 사용 가능하게 합니다. 커미트되지 않은 실행 상태를 포함하여 태스크의 현재 상태를 보려면 다음 단계를 완료하십시오.

프로시저

  1. 스케줄러 읽기 메소드에 대해 커미트되지 않은 읽기 트랜잭션 분리를 사용하여 태스크가 실행되는 동안 이 메소드가 차단되지 않도록 하십시오. 읽기 메소드에 대해 기본 트랜잭션 격리를 설정하려면 읽기 조작 세부사항에 대한 스케줄러 기본 트랜잭션 격리 주제를 참조하십시오.
    중요사항: 스케줄러 데이터베이스가 커미트 되지 않은 읽기를 지원하지 않을 경우(예: Oracle), QOS_ATLEASTONCE 서비스 품질을 사용하지 않으면 태스크가 실행 중인지 여부를 판별할 수 없습니다.
  2. 태스크가 실행을 시작할 때 스케줄러가 태스크에 TaskStatus.RUNNING 상태를 기록하도록 하려면 TaskInfo.setTaskExecutionOptions 메소드에서 TaskInfo.EXECUTION_DELAYEDUPDATE 옵션을 사용하십시오.

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



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