계산 집중 프로그래밍 모델
계산 집중 애플리케이션은 일반적인 Java EE(Java™ Platform, Enterprise Edition) 요청 및 응답 패러다임에는 잘 맞지 않는 계산에 집중하는 작업을 수행하는 애플리케이션입니다.
계산 집중 애플리케이션
- 비동기 제출 및 작업 시작에 대한 요구
- 작업이 확장된 기간 동안 실행되도록 하는 요구
- 운영자 및 관리자에게 개별 작업 단위가 표시되고 관리 가능하도록 하는 요구
- 작업을 비동기로 제출 및 관리하는 작업의 사용
- 확장된 기간 동안 실행되는 작업을 지원하는 비동기 Bean 프로그래밍 모델에 대한 작은 확장
다음 절에서는 비동기 Bean 프로그래밍 모델에 대한 확장의 추가 정보를 제공합니다.
제어기 Bean
<session id="supply a suitable name here">
<ejb-name>CIController</ejb-name>
<home>com.ibm.ws.ci.CIControllerHome</home>
<remote>com.ibm.ws.ci.CIController</remote>
<ejb-class>com.ibm.ws.ci.CIControllerBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
<resource-ref id="WorkManager_ResourceRef">
<description>
WorkManager that is used to execute jobs.
<res-ref-name>wm/CIWorkManager</res-ref-name>
<res-type>commonj.work.WorkManager</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
계산 집중 애플리케이션 패키징
해당 CIWork 오브젝트를 지원하기 위해 몇 개의 CIWork 오브젝트와 클래스가 포함된 계산 집중 애플리케이션의 로직은 Java EE 엔터프라이즈 아카이브(EAR) 파일에 엔터프라이즈 Bean 모듈로 패키지됩니다. 엔터프라이즈 Bean 모듈의 배치 디스크립터에는 이전에 설명한 Stateless 세션 Bean의 정의가 포함됩니다. 애플리케이션 자체가 다른 엔터프라이즈 Bean이나 자원을 사용하는 경우 해당 Bean 및 자원의 정의도 배치 디스크립터에 있을 수 있습니다. IBM® Rational® Application Developer와 같은 Java EE 개발 도구를 사용하여 엔터프라이즈 Bean 모듈 및 비동기 Bean을 포함하는 Java EE 애플리케이션 구성에 사용되었던 것과 동일하게 계산 집중 애플리케이션을 개발하고 패키지할 수 있습니다. pgcpackager 태스크를 사용해서도 계산 집중 애플리케이션을 패키지할 수 있습니다.
계산 집중 애플리케이션의 라이프사이클
- CIWork 클래스의 비인수 생성자를 사용하여 작업 단계에 대해 xJCL에 클래스 이름 요소로 지정된 애플리케이션 CIWork 오브젝트를 인스턴스화합니다.
- CIWork 오브젝트의 setProperties() 메소드를 호출하여 작업 단계에 대해 xJCL에 정의된 모든 특성을 전달합니다.
- 엔터프라이즈 Bean 모듈의 배치 디스크립터에 정의된 작업 관리자를 검색하고 이를 CIWork 오브젝트의 run() 메소드를 비동기로 호출하기 위해 사용합니다.
run() 메소드가 리턴되기 전에 작업이 취소되면 CIControllerBean은 CIWork 오브젝트 release() 메소드를 별도의 스레드에서 호출합니다. run() 메소드가 즉시 리턴되도록 하는 release() 메소드의 로직에 대해 장기 실행 애플리케이션이 배열되도록 하는 것은 개발자가 수행합니다. 작업은 run() 메소드가 리턴될 때까지 취소 보류 상태로 유지됩니다.
작업이 취소되지 않고 run() 메소드가 예외를 리턴하지 않은 채 리턴되면 작업이 성공적으로 완료됩니다. run() 메소드가 예외를 리턴하면 작업 상태는 실행 실패입니다. run() 메소드가 성공적으로 또는 예외를 포함하여 리턴된 후에는 CIWork 오브젝트에 대한 후속 호출이 없습니다. run() 메소드에 대한 모든 참조는 삭제됩니다.
계산 집중 작업 단계
다른 일괄처리 작업과는 달리 계산 집중 작업은 한 개의 작업 단계로 구성됩니다. 이 작업 단계는 com.ibm.websphere.ci.CIWork 인터페이스를 구현하는 클래스의 인스턴스로 표시됩니다. CIWork 인터페이스는 애플리케이션 서버 비동기 Bean 프로그래밍 모델 및 JSR(Java Specification Request) 237에서 commonj.Work 작업 인터페이스를 확장합니다. 이 확장은 작업에서 CIWork 오브젝트에 대해 지정된 job-step-specific 특성을 전달하는 방법을 제공합니다.
자세한 내용은 API 문서를 참조하십시오.
비동기 Bean에 대한 자세한 정보는 비동기 Bean 사용을 참조하십시오.