이 주제에서는 단순 일괄 처리 응용프로그램을 작성하는 방법에 대해 설명합니다.
시작하기 전에
이 타스크를 시작하기 전에 환경을 설정해야 합니다.
이 타스크의 수행 목적 및 시기
이 샘플 타스크에서는 사용자가 RAD(Rational Application Developer)를
사용 중이라고 가정합니다. 기타 개발 도구도 사용될 수 있습니다.
- PostingsSample2라는 새 엔터프라이즈 응용프로그램 프로젝트를 작성하십시오.
- 새 EJB(Enterprise JavaBeans) 프로젝트 모듈을 추가하십시오. 새 EAR
파일 및 EJB 프로젝트가 작성됩니다.
- PostingsSample2EJB의 Java 빌드 경로에 BATCH_RUNTIME을 추가하십시오.
- 기존 Java 클래스 AccountOp와
두 개의 공용 인터페이스 메소드 creditAccount(..) 및 debitAccount(..)가 있다고 가정합니다.
이 메소드는 해당되는 경우 일괄처리 Bean으로부터 호출됩니다.
작업공간에서 이 클래스를 가져오거나 일괄처리 호출 클래스를 작성하십시오.
- BatchStep 클래스를 작성하십시오. 일괄처리 Bean은
abstract 일괄처리 단계 클래스에서 상속된 엔티티 Bean입니다. abstract 작업 단계
PostingSample2Step을 작성하려면 다음을 수행하십시오.
- PostingsSample2EJB 프로젝트에서, BatchJobStepInterface로부터
상속된 abstract Java 클래스 PostingSample2Step을 작성하십시오.
- BatchJobStepInterface를 추가하십시오.
- 클래스 abstract를 작성하십시오.
- 일괄처리 Bean(엔티티 EJB)을 작성하십시오. 이 단계는
수동으로 일괄처리 Bean을 작성하는 방법에 대해 설명합니다.
일괄처리 Bean은 제공된 프로그래밍 모델에서 가져온
BatchJobStepLocalInterface, BatchJobStepKey 및
BatchJobStepLocalHome 클래스를 재사용합니다. 이들 클래스는 다시 작성되지 않습니다.
일괄처리 Bean 구현만이 생성됩니다.
- PostingSample2EJB 프로젝트에서 PostingsSample2Data라는 CMP EJB를 작성하십시오.
- 로컬 홈 인터페이스 클래스의 경우 BatchJobStepLocalHomeInterface를 선택하십시오.
- 로컬 인터페이스 클래스의 경우 BatchJobStepLocalInterface를 선택하십시오.
- 키 클래스에 대해 단일 키 속성 유형 사용을 선택 취소하십시오.
- 키 클래스의 경우 BatchJobStepKey를 선택하십시오.
- CMP 속성 ID를 제거하십시오.
- CMP 속성에서 유형 문자열인 두 개의 CMP 속성 jobID 및 stepID를 추가하십시오.
- 이름으로 jobID를 추가하고 유형으로 java.lang.String을 추가하십시오.
키를 선택하십시오.
- 마찬가지로, stepID와 유형 java.lang.String을 추가하고 이를 키 필드로 만드십시오.
- BeanSuperclass를 선택하십시오. 일치하는 유형의 PostingStep2를 작성하십시오.
이로 인해 새 EJB가 작성되지만 EJB Bean 클래스만이 프로젝트에 표시됩니다.
로컬 인터페이스, 홈 인터페이스 및 키 클래스는
프로그래밍 모델에서 제공하는 클래스로부터 가져옵니다.
- 전개 설명자를 편집하십시오. ejb-jar.xml에서
PostingSample2Data에 대한 다음 변경사항을 작성하십시오.
- Bean 탭에서 CMP 연결 팩토리 JNDI 이름을 jdbc/lree로 편집하고
컨테이너 권한 유형을 Per_Connection_Factory로 변경하십시오.
- 어셈블리 탭에서 컨테이너 트랜잭션에 대해 PostingsSample2Data의
모든 메소드(*)를 필수로 작성하십시오.
- WebSphere 바인딩 아래의 JNDI 이름을 ejb/com/ibm/ws/batch/sample/PostingsSample2Data로 편집하십시오.
- 전개 설명자를 저장한 후 닫으십시오. 이전과 마찬가지로
나중에 EJB 구현을 추가하십시오.
- 일괄처리 작업 세션 Bean을 작성하십시오. 일괄처리 작업은
전개 설명자에 선언된 세션 Bean이지만 모두가 런타임의 파트이므로
생성된 클래스를 포함하지 않습니다.
- ejb-jar xml의 Bean 탭에서
추가를 클릭하여 PostingsJob2라는 세션 EJB를 작성하십시오.
- 트랜잭션 유형을 Bean으로 변경하십시오.
- Bean 클래스, 원격 홈 인터페이스 및 원격 인터페이스에서
다음 문자열을 입력하십시오.
- Bean 클래스: com.ibm.ws.batch.BatchJobControllerBean
- 원격 인터페이스: com.ibm.ws.batch.BatchJobController
- 원격 홈 인터페이스: com.ibm.ws.batch.BatchJobControllerHome
새 클래스가 생성되지 않음에 유의하십시오.
이것은 모든 클래스가 런타임에 존재하기 때문입니다.
유일하게 수행하는 작업은 전개 설명자에 작업 세션 Bean을 선언하는 것입니다.
- WebSphere 바인딩 JNDI 이름을 ejb/com/ibm/ws/batch/PostingsSample2Job으로 편집하십시오.
- 유형 EJB 참조의 PostingsSample2Job에 참조를 추가하십시오.
- PostingsSample2Data Bean을 선택하고 이름으로 ejb/PostingsSample2Data를 추가하십시오.
로컬 참조 유형을 선택하십시오.
- 작업 관리자 참조를 작성하십시오.
- 참조 탭의 PostingSample2Job Bean에서 추가를 클릭하십시오.
자원 참조를 선택한 후 다음을 클릭하십시오.
- 이름: wm/BatchWorkManager
- 유형: commonj.work.WorkManager 선택
- 인증: 컨테이너
- 공유 범위: 공유 가능
- wm/BatchWorkManger의
JNDI(Java Naming and Directory Interface) 이름을 wm/default로
편집하십시오.
- ejb-jar.xml을 저장한 후 닫으십시오.
- 입력 일괄처리 데이터 스트림을 작성하십시오.
0, 1 또는 n개의 입력 및/또는 출력 스트림이 존재할 수 있습니다.
이 예제에서는 파일에서 읽는 하나의 InputStream이 있으며 출력 스트림은 없습니다.
출력은 콘솔에 쓰여집니다.
BDS 클래스는 POJO입니다. 입력 스트림을 작성하려면 다음을 수행하십시오.
- com.ibm.ws.batch.sample 패키지에 PostingsSample2InputStream이라는
새 클래스를 작성하십시오.
- BatchDataStream 인터페이스를 구현하십시오. 새 PostingSample2Input
스트림 클래스가 작성됩니다. 나중에 구현을 추가할 수 있습니다.
- 입력 스트림의 레코드를 표시하기 위해 Posting2 클래스를 작성하십시오.
이 클래스는 일괄처리 입력 스트림의 레코드에 대한 오브젝트 표시입니다.
이것은 입력 BDS로부터 레코드를 읽는 동안 구성되며 일괄처리 Bean으로 전달됩니다.
이 클래스는 입력 스트림에서 필드의 속성과
해당 Getter 및 Setter를 포함하는 데이터 또는 cargo Bean과 유사합니다.
- 직렬화 가능 인터페이스를 구현하는 Posting2라는
새 클래스를 작성하십시오. 나중에 여기에 구현을 추가할 수 있습니다.
- 클래스에 구현을 추가하십시오.
- 이제 PostingSample2DataBean, PostingSample2Step
및 PostingSample2InputStream에 첨부된 클래스 파일로 구현을 추가하십시오.
이 예제는 새 일괄처리 응용프로그램 개발의
관련 단계를 강조하기 위해 처리 관점에서 단순하게 유지됩니다.
구현 클래스가
추가된 후 EJB를 전개할 수 있습니다.
다음에 수행할 내용
관리 콘솔 탐색 트리에서 런타임
조작을 펼친 후 작업 관리를 선택하십시오. 오른쪽
패널에서 오류 메시지가 없는 빈 작업 테이블이 있는지 확인하십시오.