Java 일괄처리 지속성 구성

Java 일괄처리는 작업 인스턴스 하나가 여러 번 실행될 때 상태, 체크포인트 및 애플리케이션의 지속적 데이터를 유지하기 위해 지속적 저장소를 사용합니다. 지속적 저장소는 이전 실행이 실패하거나 다시 시작된 작업에 적절한 데이터를 제공하여 이전 실행이 중지되어야 하는 경우 작업 인스턴스가 다시 시작될 수 있게 합니다.

Java 일괄처리 메모리 기반 지속성 구성

일괄처리 지속성을 사용하면 작업 실행이 FAILED 또는 STOPPED 상태로 종료되는 경우 작업 인스턴스를 다시 시작할 수 있습니다. 일괄처리 지속성 구성이 없으면 Java 일괄처리는 메모리 기반 지속성의 기본 기능을 사용하여 복수의 작업 인스턴스 실행에서 상태, 체크포인트 및 애플리케이션의 지속적 데이터를 추적합니다.

Java 일괄처리에 대한 기본 메모리 기반 지속성 구현은 server.xml 파일에 batchPersistencedatabaseStore elements가 없는 경우 기본 일괄처리 컨테이너에 의해 사용됩니다.

참고: Java 일괄처리 메모리 기반 지속성의 제한사항으로서 Java 일괄처리에서 지속성은 기본적으로 메모리를 기반으로 합니다. 일괄처리 컨테이너 런타임 또는 서버 JVM이 충돌하거나 다시 시작되는 경우 지속성을 잃습니다. 이 기능은 개발 용도로만 사용되며 프로덕션 시스템 또는 중요한 일괄처리 지원은 고려하지 않습니다.

Java 일괄처리 데이터베이스 지속성 구성

기본적으로 일괄처리 런타임은 databaseStore 요소에 정의된 서버 구성에 따라 존재하지 않는 테이블을 자동 작성합니다. 이 테이블 정의는 데이터베이스 저장소의 schematablePrefix 속성에 따라 사용자 정의됩니다.

또는, ddlGen 스크립트를 사용하여 서버 구성에 따라 DDL을 생성할 수도 있습니다. 필요한 경우에는 수동으로 테이블을 작성하여 DDL을 사용자 정의할 수 있습니다. 또한 이 DDL은 schematablePrefix 등의 서버 구성을 통합하며 databaseStore에서 참조하는 데이터 소스의 데이터베이스 유형에 대해 적절한 SQL을 포함하고 있습니다.

참고: 사용자 정의된 DDL에서는 양수 기본 키 ID를 사용해야 합니다. 데이터베이스 지속성에 대한 제한사항으로 Java 일괄처리 시 기본 키 ID 열에 지속된 음수 또는 0 정수 ID를 허용하지 않습니다. Java 일괄처리 컨테이너 런타임은 기본 키 ID 열에 지속된 양수 작업 ID를 사용하는 작업만 실행합니다.

databaseStore에서 createTables="false" 속성을 사용하면 테이블의 자동 작성을 사용 안함으로 설정할 수 있습니다. 이 옵션은 일괄처리 런타임이 수동으로 작성된 테이블을 예기치 않게 찾지 못하는 경우 자동 작성된 테이블 대신 수동으로 작성된 테이블을 사용하도록 하는 데 사용할 수 있습니다.

다음 샘플에서는 기본 자동 작성 작동을 사용합니다. 이 동작은 createTables="true"인 경우와 같습니다.

참고: REPEATABLE_READ보다 낮은 격리 레벨을 사용하면 발생하는 데이터 무결성 문제를 방지하기 위해 데이터 소스의 격리 레벨을 TRANSACTION_REPEATABLE_READ로 설정하십시오. 격리 레벨을 지정하지 않는 경우 기본값은 데이터베이스에 따라 다릅니다. 대부분의 경우 기본값은 TRANSACTION_REPEATABLE_READ입니다.

지속성 구성 샘플

다음 샘플은 자동 작성된 Derby용 대상 데이터베이스 테이블 RUNTIMEDB에 대한 일괄처리 액세스를 구성합니다.
 <!-- Batch persistence config.  References a databaseStore. -->
    <batchPersistence jobStoreRef="BatchDatabaseStore" />

    <!-- The database store for the batch tables.  -->
    <!-- Note this database store is referenced by the batchPersistence element. -->
    <databaseStore id="BatchDatabaseStore" dataSourceRef="batchDB" schema="JBATCH" tablePrefix="" />

    <!-- Derby JDBC driver -->
    <!-- Note this library is referenced by the dataSource element -->
    <library id="DerbyLib">
        <fileset dir="${server.config.dir}/resources/derby" />
    	</library>
    <!-- Data source for the batch tables. -->
    <!-- Note this data source is referenced by databaseStore element --> 
    <dataSource id="batchDB" isolationLevel="TRANSACTION_REPEATABLE_READ" >
        <jdbcDriver libraryRef="DerbyLib"/>
        <properties.derby.embedded 
            databaseName="${server.config.dir}/resources/RUNTIMEDB"
            createDatabase="create"
            user="user" 
            password="pass" />
    </dataSource>  

주제의 유형을 표시하는 아이콘 참조 주제



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