단순 트랜잭션 일괄처리 애플리케이션 개발
일괄처리 작업 제어기 및 EJB(Enterprise JavaBeans) 데이터 스트림, 명령행 또는 Apache Ant 도구를 사용하여 단순 일괄처리 애플리케이션을 작성할 수 있습니다.
이 태스크 정보

- 일괄처리 애플리케이션을 시작할 수 있는 모든 시스템에 대해 동등하게 데이터를 사용할 수 있는지 확인하십시오. 이 예의 경우 네트워크 파일 시스템을 사용하십시오. 이 조치가 애플리케이션의 성능을 떨어뜨릴 수 있습니다.
- 로컬 데이터가 존재하는 시스템에서만 실행할 수 있는 애플리케이션 서버에 애플리케이션을 배치하십시오. 단 하나의 멤버 노드를 갖는 노드 그룹에 존재하는 클러스터에 애플리케이션을 배치하여 이 조치를 완료하십시오.

일부 명령은 인쇄를 위해 여러 줄로 표시됩니다.
프로시저
- 일괄처리 작업 제어기 및 EJB 데이터 스트림을 사용하는
일괄처리 작업을 작성하십시오.
- 일괄처리 작업 단계를 작성하십시오.
- com.ibm.websphere.BatchJobStepInterface 인터페이스를 구현하는 Java™ 클래스를 작성하십시오.
- 비즈니스 로직을 구현하십시오.
단계가 하나의 입력과 하나의 출력 스트림을 갖는 경우 GenericXDBatchStep의 일반 일괄처리 단계를 대신 사용할 수 있습니다.
- 일괄처리 데이터 스트림을 작성하십시오.
- com.ibm.websphere.batch.BatchDataStream 인터페이스를 구현하는 Java 클래스를 작성하십시오.
일괄처리 데이터 스트림은 비즈니스 로직으로부터, 예를 들어 jobID 및 stepID를 갖고 BatchDataStreamMgr을 호출하여 일괄처리 작업 단계에서 액세스됩니다. JobID 및 stepID는 BatchConstants.JOB_ID 및 BatchConstants.STEP_ID 키를 사용하여 단계 Bean 특성 목록에서 검색됩니다.
- BatchConstants.JOB_ID를 com.ibm.websphere.batch.JobID에 맵핑하고
BatchConstants.STEP_ID를 com.ibm.websphere.batch.StepID에 맵핑하십시오.
이미 BatchConstants 클래스에 대한 액세스 권한이 있어야 합니다.
일괄처리 데이터 스트림 프레임워크는 파일 및 데이터베이스 같은 데이터 스트림의 여러 유형에 대해 작업하기 위해 여러 가지 사용할 준비가 된 패턴을 제공합니다. 일괄처리 데이터 스트림 프레임워크를 사용하려면 다음 단계를 완료하십시오.
- TextFile, ByteFile, JDBC 또는 z/OS® 스트림 같이 동작하려는 데이터 스트림 유형을 식별하십시오.
- 스트림에서 읽거나 스트림에 쓸지 여부를 식별하십시오.
- 일괄처리 데이터 스트림 프레임워크 및 패턴에 있는 테이블을 보십시오. 사용자의 데이터 스트림 유형 및 조작과 일치하는 지원 클래스 열에서 클래스를 선택하십시오. 예를 들어, 텍스트 파일에서 데이터를 읽으려는 경우 TextFileReader를 선택하십시오.
- 이전 단계에서 선택한 지원 클래스에 해당하는 패턴 이름 열에 나열된 인터페이스를 구현하십시오. 지원 클래스는 스트림 및 일괄처리 프로그래밍 모델과 관련된 모든 문서 보관 활동을 처리합니다. 구현 클래스는 스트림 처리 논리에 집중합니다.
- xJCL에서 지원 클래스 및 구현 클래스를 선언하십시오.
- 단계에서 필요한 각 데이터 스트림에 대해 이 프로시저를 반복하십시오.
- com.ibm.websphere.batch.BatchDataStream 인터페이스를 구현하는 Java 클래스를 작성하십시오.
- 옵션: 작업 단계 컨텍스트를
얻으십시오.
JobStepContext ctx= JobStepContextMgr.getContext();
JobStepContextMgr 서비스 클래스는 일괄처리 작업 단계가 그의 JobStepContext 오브젝트에 대한 참조를 얻을 수 있게 합니다. 작업 단계 컨텍스트는 다음 기능을 제공합니다.- 현재 일괄처리 작업 단계가 실행하는 컨텍스트를 고유하게 식별하는 정보에 대한 액세스(예: 작업 ID)
- 일괄처리 작업 단계의 수명 동안 일괄처리 프로그래밍 프레임워크 메소드 사이에서 애플리케이션 특정 정보가 전달될 수 있는 임시 사용자 데이터 영역
- 애플리케이션 특정 정보가 단계 사이에서 전달될 수 있는 지속적 사용자 데이터 영역
PersistentMap 헬퍼 클래스를 사용하여 작업 단계 컨텍스트의 지속적 사용자 데이터 영역에서 Boolean 및 double 같은 기본 유형의 저장을 단순화할 수 있습니다.
- xJCL에서 일괄처리 데이터 스트림을 정의하십시오.
PATTERN_IMPL_CLASS 클래스는 BDS 프레임워크 패턴의 사용자 구현을 나타내고 impl-class 특성은 지원 클래스를 나타냅니다.<batch-data-streams> <bds> <logical-name>inputStream</logical-name> <props> <prop name="PATTERN_IMPL_CLASS" value="MyBDSStreamImplementationClass"/> <prop name="file.encoding" value="8859_1"/> <prop name="FILENAME" value="${inputDataStream}" /> <prop name="PROCESS_HEADER" value="true"/> <prop name="AppendJobIdToFileName" value="true"/> </props> <impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.FileByteReader </impl-class> </bds>
- 옵션: 건너뛰기 레벨 처리 사용 설정
트랜잭션 일괄처리 작업에서 레코드 읽기 및 쓰기 오류를 건너뛰려면 레코드 건너뛰기 처리를 사용하십시오. xJCL에서 레코드 건너뛰기 정책을 지정하십시오. 추가 정보에 대해서는 레코드 건너뛰기 처리에 대한 주제를 읽으십시오.
- 옵션: 단계 재시도 처리 사용 설정
processJobStep 메소드가 트랜잭션 일괄처리 작업에서 오류를 만날 때 작업 단계를 다시 시도하려면 단계 재시도 처리를 사용하십시오. xJCL에서 단계 재시도 정책을 지정하십시오. 추가 정보는 단계 재시도 처리에 대한 주제를 읽으십시오.
- 옵션: 트랜잭션 모드를 구성하십시오.
작업 관련 아티팩트가 글로벌 트랜잭션 모드 또는 로컬 트랜잭션 모드에서 호출되는지 여부를 정의하려면 트랜잭션 모드를 사용하십시오. 추가 정보는 구성 가능한 트랜잭션 모드에 대한 주제를 읽으십시오.
- 옵션: 작업 리스너를 제공하십시오.
작업 및 단계에 대한 추가 초기화 및 정리를 추가하려면 com.ibm.websphere.batch.listener.JobListener 인터페이스에 대한 구현을 제공하십시오. 작업 레벨 리스너 요소를 사용하여 xJCL에서 작업 리스너를 지정하십시오.
작업 리스너 beforeJob() 메소드는 임의의 사용자 아티팩트가 호출되기 전에 호출됩니다. 작업 리스너 afterJob() 메소드가 마지막 사용자 아티팩트가 호출된 후에 호출됩니다. 작업 리스너 beforeStep() 메소드는 임의의 단계 관련 사용자 아티팩트 전에 호출됩니다. 작업 리스너 afterStep() 메소드는 마지막 단계 관련 사용자 아티팩트로 호출됩니다. 작업 리스너가 호출될 때마다 메시지를 작업 로그에 로그합니다.
- 일괄처리 작업 제어기를 선언하십시오.
- Stateless 세션 Bean을 배치 디스크립터에 추가하고 제품가 제공하는 구현 클래스를 가리키십시오. com.ibm.ws.batch.BatchJobControllerBean을 Bean 클래스로서 지정하여 그렇게 하십시오. 일괄처리 애플리케이션당 한 번만 이 스펙을 수행하십시오.
- 원격 홈 인터페이스의 경우 com.ibm.ws.batch.BatchJobControllerHome을 사용하고 원격 인터페이스 클래스의 경우 com.ibm.ws.batch.BatchJobController를 사용하십시오.
- EJB 배치 디스크립터를 구성하십시오.
- commonj.work.WorkManager 유형의 기본 WorkManager wm/BatchWorkManager에 대한 제어기 Bean의 자원 참조를 구성하십시오.
문제점 방지: 일괄처리 애플리케이션의 EJB(Enterprise JavaBeans) 배치 디스크립터에서 일괄처리 제어기 Bean의 배치 디스크립터를 선언해야 합니다. 일괄처리 애플리케이션마다 단 하나의 제어기 Bean만 정의할 수 있습니다. gotcha
- 일괄처리 작업 단계를 작성하십시오.
- 명령행을 사용하여 일괄처리 작업을 작성하십시오.
- 일괄처리 작업 단계를 작성하십시오.
- com.ibm.websphere.BatchJobStepInterface 인터페이스를 구현하는 Java 클래스를 작성하십시오.
- 비즈니스 로직을 구현하십시오.
단계가 정확하게 하나의 입력과 하나의 출력 스트림을 갖는 경우 GenericXDBatchStep의 일반 일괄처리 단계를 대신 사용할 수 있습니다.
- 일괄처리 데이터 스트림을 작성하십시오.
- com.ibm.websphere.batch.BatchDataStream 인터페이스를 구현하는 Java 클래스를 작성하십시오.
일괄처리 데이터 스트림은 비즈니스 로직으로부터, 예를 들어 jobID 및 stepID를 갖고 BatchDataStreamMgr을 호출하여 일괄처리 작업 단계에서 액세스됩니다. JobID 및 stepID는 BatchConstants.JOB_ID 및 BatchConstants.STEP_ID 키를 사용하여 단계 Bean 특성 목록에서 검색됩니다.
- BatchConstants.JOB_ID를 com.ibm.websphere.batch.JobID에 맵핑하고
BatchConstants.STEP_ID를 com.ibm.websphere.batch.StepID에 맵핑하십시오.
이미 BatchConstants 클래스에 대한 액세스 권한이 있어야 합니다.
일괄처리 데이터 스트림 프레임워크는 파일 및 데이터베이스 같은 데이터 스트림의 여러 유형에 대해 작업하기 위해 여러 가지 사용할 준비가 된 패턴을 제공합니다. 일괄처리 데이터 스트림 프레임워크를 사용하려면 다음 단계를 완료하십시오.
- TextFile, ByteFile, JDBC 또는 z/OS 스트림 같이 동작하려는 데이터 스트림 유형을 식별하십시오.
- 스트림에서 읽거나 스트림에 쓸지 여부를 식별하십시오.
- 일괄처리 데이터 스트림 프레임워크 및 패턴에 있는 테이블을 보십시오. 사용자의 데이터 스트림 유형 및 조작과 일치하는 지원 클래스 열에서 클래스를 선택하십시오. 예를 들어, 텍스트 파일에서 데이터를 읽으려는 경우 TextFileReader를 선택하십시오.
- 이전 단계에서 선택한 지원 클래스에 해당하는 패턴 이름 열에 나열된 인터페이스를 구현하십시오. 지원 클래스는 스트림 및 일괄처리 프로그래밍 모델과 관련된 모든 문서 보관 활동을 처리합니다. 구현 클래스는 스트림 처리 논리에 집중합니다.
- xJCL에서 지원 클래스 및 구현 클래스를 선언하십시오.
- 단계에서 필요한 각 데이터 스트림에 대해 이 프로시저를 반복하십시오.
- com.ibm.websphere.batch.BatchDataStream 인터페이스를 구현하는 Java 클래스를 작성하십시오.
- 작업 단계 컨텍스트를 얻으십시오.
JobStepContext ctx= JobStepContextMgr.getContext();
JobStepContextMgr 서비스 클래스는 일괄처리 작업 단계가 그의 JobStepContext 오브젝트에 대한 참조를 얻을 수 있게 합니다. 작업 단계 컨텍스트는 다음 기능을 제공합니다.- 현재 일괄처리 작업 단계가 실행하는 컨텍스트를 고유하게 식별하는 정보에 대한 액세스(예: 작업 ID)
- 일괄처리 작업 단계의 수명 동안 일괄처리 프로그래밍 프레임워크 메소드 사이에서 애플리케이션 특정 정보가 전달될 수 있는 임시 사용자 데이터 영역
- 애플리케이션 특정 정보가 단계 사이에서 전달될 수 있는 지속적 사용자 데이터 영역
PersistentMap 헬퍼 클래스를 사용하여 작업 단계 컨텍스트의 지속적 사용자 데이터 영역에서 Boolean 및 double 같은 기본 유형의 저장을 단순화할 수 있습니다.
- 명령 프롬프트를 열고 Java가 경로에 있는지 확인하십시오.
- 다음 명령을 모두 단일 행에서 실행하십시오.
java -cp ${WAS_INSTALL_ROOT}/plugins/com.ibm.ws.batch.runtime.jar com.ibm.ws.batch.packager.WSBatchPackager -appname=<Application_Name> -jarfile=<jarfile containing the POJO batch steps> -earfile=<name of the output EAR file without the .ear extension> [-utilityjars=<semicolon separated list of utility jars>] [-debug] [-gridJob]
예를 들어, 일괄처리 작업의 경우 다음을 실행하십시오.java -cp ${WAS_INSTALL_ROOT}/plugins/com.ibm.ws.batch.runtime.jar com.ibm.ws.batch.packager.WSBatchPackager -appname=XDCGIVT -jarfile=XDCGIVTEJBs.jar -earfile=XDCGIVT
예를 들어 일괄처리 작업의 경우 다음을 실행하십시오.java -cp ${WAS_INSTALL_ROOT}/plugins/com.ibm.ws.batch.runtime.jar com.ibm.ws.batch.packager.WSBatchPackager -Dfile.encoding=ISO8859-1 -appname=<Application_Name> -jarfile=<jarfile containing the POJO batch steps> -earfile=<name of the output EAR file without the .ear extension> [-utilityjars=<semicolon separated list of utility jars>] [-debug] [-gridJob]
java -cp ${WAS_INSTALL_ROOT}/plugins/com.ibm.ws.batch.runtime.jar com.ibm.ws.batch.packager.WSBatchPackager -Dfile.encoding=ISO8859-1 -appname=XDCGIVT -jarfile=XDCGIVTEJBs.jar -earfile=XDCGIVT
문제점 방지: -Dfile.encoding=ISO8859-1을 포함하지 않는 경우 코드 페이지 차이는 올바르지 않은 EAR 및 EJB(Enterprise JavaBean) JAR(Java archive) 디스크립터를 낳는 결과를 얻습니다. gotcha
- 일괄처리 애플리케이션을 패키징하십시오.
다음 메소드 중 하나를 사용하십시오.
- WSBatchPackager 스크립트를 사용하여 애플리케이션을 패키징하십시오.
<WASHOME>/stack_products/WCG/bin/WSBatchPackager.sh -appname=<application_name> -jarfile=<jar_file_containing_POJO_step_classes> -earfile=<output_ear_file_name> [-utilityjars=<semicolon_separated_utility_jars>] [-nonxadsjndiname=<non-xa_datasource_JNDI_name_for_CursorHoldableJDBCReader>;<non-XA_datasource_JNDI_name_2>;...] [-debug]
예를 들어, 다음을 실행하십시오../WSBatchPackager.sh -appname=XDCGIVT -jarfile=XDCGIVTEJBs.jar -earfile=XDCGIVT -utilityjars=myutility.jar -nonxadsjndiname=jdbc/ivtnonxa
<WASHOME>/stack_products/WCG/bin/WSBatchPackager.sh -Dfile.encoding=ISO8859-1 -appname=<application_name> -jarfile=<jar_file_containing_POJO_step_classes> -earfile=<output_ear_file_name> [-utilityjars=<semicolon_separated_utility_jars>] [-nonxadsjndiname=<non-xa_datasource_JNDI_name_for_CursorHoldableJDBCReader>;<non-XA_datasource_JNDI_name_2>;...] [-debug]
예를 들어, 다음을 실행하십시오../WSBatchPackager.sh -Dfile.encoding=ISO8859-1 -appname=XDCGIVT -jarfile=XDCGIVTEJBs.jar -earfile=XDCGIVT -utilityjars=myutility.jar -nonxadsjndiname=jdbc/ivtnonxa
문제점 방지: -Dfile.encoding=ISO8859-1을 포함하지 않는 경우 코드 페이지 차이는 올바르지 않은 EAR 및 EJB(Enterprise JavaBean) JAR(Java archive) 디스크립터를 낳는 결과를 얻습니다. gotcha
- java 명령을 사용하여 애플리케이션을 패키징하십시오.
명령 프롬프트를 열고 java가 경로에 있는지 확인하십시오.
- WSBatchPackager 스크립트를 사용하여 애플리케이션을 패키징하십시오.
- 일괄처리 작업 단계를 작성하십시오.
- ANT를 사용하여 일괄처리 작업을 작성하십시오.
- 일괄처리 작업 단계를 작성하십시오.
- com.ibm.websphere.BatchJobStepInterface 인터페이스를 구현하는 Java 클래스를 작성하십시오.
- 비즈니스 로직을 구현하십시오.
단계가 정확하게 하나의 입력과 하나의 출력 스트림을 갖는 경우 GenericXDBatchStep의 일반 일괄처리 단계를 대신 사용할 수 있습니다.
- 일괄처리 데이터 스트림을 작성하십시오.
- com.ibm.websphere.batch.BatchDataStream 인터페이스를 구현하는 Java 클래스를 작성하십시오.
일괄처리 데이터 스트림은 비즈니스 로직으로부터, 예를 들어 jobID 및 stepID를 갖고 BatchDataStreamMgr을 호출하여 일괄처리 작업 단계에서 액세스됩니다. JobID 및 stepID는 BatchConstants.JOB_ID 및 BatchConstants.STEP_ID 키를 사용하여 단계 Bean 특성 목록에서 검색됩니다.
- BatchConstants.JOB_ID를 com.ibm.websphere.batch.JobID에 맵핑하고
BatchConstants.STEP_ID를 com.ibm.websphere.batch.StepID에 맵핑하십시오.
이미 BatchConstants 클래스에 대한 액세스 권한이 있어야 합니다.
일괄처리 데이터 스트림 프레임워크는 파일 및 데이터베이스 같은 데이터 스트림의 여러 유형에 대해 작업하기 위해 여러 가지 사용할 준비가 된 패턴을 제공합니다. 일괄처리 데이터 스트림 프레임워크를 사용하려면 다음 단계를 완료하십시오.
- TextFile, ByteFile, JDBC 또는 z/OS 스트림 같이 동작하려는 데이터 스트림 유형을 식별하십시오.
- 스트림에서 읽거나 스트림에 쓸지 여부를 식별하십시오.
- 일괄처리 데이터 스트림 프레임워크 및 패턴에 있는 테이블을 보십시오. 사용자의 데이터 스트림 유형 및 조작과 일치하는 지원 클래스 열에서 클래스를 선택하십시오. 예를 들어, 텍스트 파일에서 데이터를 읽으려는 경우 TextFileReader를 선택하십시오.
- 이전 단계에서 선택한 지원 클래스에 해당하는 패턴 이름 열에 나열된 인터페이스를 구현하십시오. 지원 클래스는 스트림 및 일괄처리 프로그래밍 모델과 관련된 모든 문서 보관 활동을 처리합니다. 구현 클래스는 스트림 처리 논리에 집중합니다.
- xJCL에서 지원 클래스 및 구현 클래스를 선언하십시오.
- 단계에서 필요한 각 데이터 스트림에 대해 이 프로시저를 반복하십시오.
- com.ibm.websphere.batch.BatchDataStream 인터페이스를 구현하는 Java 클래스를 작성하십시오.
- 작업 단계 컨텍스트를 얻으십시오.
JobStepContext ctx= JobStepContextMgr.getContext();
JobStepContextMgr 서비스 클래스는 일괄처리 작업 단계가 그의 JobStepContext 오브젝트에 대한 참조를 얻을 수 있게 합니다. 작업 단계 컨텍스트는 다음 기능을 제공합니다.- 현재 일괄처리 작업 단계가 실행하는 컨텍스트를 고유하게 식별하는 정보에 대한 액세스(예: 작업 ID)
- 일괄처리 작업 단계의 수명 동안 일괄처리 프로그래밍 프레임워크 메소드 사이에서 애플리케이션 특정 정보가 전달될 수 있는 임시 사용자 데이터 영역
- 애플리케이션 특정 정보가 단계 사이에서 전달될 수 있는 지속적 사용자 데이터 영역
PersistentMap 헬퍼 클래스를 사용하여 작업 단계 컨텍스트의 지속적 사용자 데이터 영역에서 Boolean 및 double 같은 기본 유형의 저장을 단순화할 수 있습니다.
- 일괄처리 작업의 경우 com.ibm.ws.batch.runtime.jar 파일이 클래스 경로에 있는지 확인하십시오.
- 태스크를 선언하십시오. 태스크를 선언하려면 다음 명령을 사용하십시오.
<taskdef name="pgcpackager" classname="com.ibm.ws.batch.packager.PGCPackager" classpath="${WAS_INSTALL_ROOT}/plugins/com.ibm.ws.batch.runtime.jar" />
- 애플리케이션의 Java 파일을
컴파일한 후 pgcpackager 태스크를 호출하십시오.
<pgcpackager appname="<appname>" earFile="<location name of EAR file to generate>" jarfile="location of the POJO jar file"/>
- 일괄처리 작업 단계를 작성하십시오.
결과
다음에 수행할 작업
하위 주제
일괄처리 애플리케이션 컴포넌트
일괄처리 애플리케이션 개발자 및 일괄처리 런타임 환경은 일괄처리 애플리케이션의 컴포넌트를 제공합니다.일괄처리 프로그래밍 모델
일괄처리 애플리케이션은 EJB(Enterprise JavaBeans) 기반의 Java EE(Java Platform, Enterprise Edition) 애플리케이션입니다. 이 애플리케이션은 일괄처리 런타임 환경이 애플리케이션을 대상으로 하는 일괄처리 작업을 관리하도록 허용하는 몇 개의 제대로 정의된 인터페이스를 준수합니다.Skip-record 처리
skip-record 처리를 사용하여 트랜잭션 일괄처리 작업에서 읽기 및 쓰기 레코드 오류를 건너뛰십시오. xJCL에서 skip-record 정책을 지정합니다.Retry-step 처리
processJobStep 메소드가 트랜잭션 일괄처리 작업에서 오류를 만나면 retry-step 처리를 사용하여 작업 단계를 다시 시도합니다. xJCL에서 retry-step 정책을 지정합니다.구성 가능한 트랜잭션 모드
트랜잭션 모드를 사용하여 작업 관련 아티팩트가 글로벌 트랜잭션 모드 또는 로컬 트랜잭션 모드에서 호출되는지 여부를 정의합니다. xJCL에서 트랜잭션 모드를 지정합니다.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tgrid_bgridtutorial2
파일 이름:tgrid_bgridtutorial2.html