22장. 배치 애플리케이션 구성
JBoss EAP 7은 자카르타 배치를 지원합니다. 배치 애플리케이션을 실행하기 위한 환경을 구성하고 batch-jberet 하위 시스템을 사용하여 배치 작업을 관리할 수 있습니다.
배치 애플리케이션 개발에 대한 자세한 내용은 JBoss EAP 개발 가이드의 Jakarta Batch Application Development 를 참조하십시오.
22.1. 배치 작업 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBeret 구현을 기반으로 하는 batch-jberet 하위 시스템을 사용하여 배치 작업에 대한 설정을 구성할 수 있습니다.
기본 batch-jberet 하위 시스템 구성은 in-memory 작업 리포지토리 및 기본 스레드 풀 설정을 정의합니다.
<subsystem xmlns="urn:jboss:domain:batch-jberet:2.0">
<default-job-repository name="in-memory"/>
<default-thread-pool name="batch"/>
<job-repository name="in-memory">
<in-memory/>
</job-repository>
<thread-pool name="batch">
<max-threads count="10"/>
<keepalive-time time="30" unit="seconds"/>
</thread-pool>
</subsystem>
기본적으로 서버 일시 중지 중에 중지된 배치 작업은 서버를 다시 시작할 때 다시 시작됩니다. restart-jobs-on-resume 속성을 false로 설정하여 대신 작업을 STOPPED 상태로 유지할 수 있습니다.
/subsystem=batch-jberet:write-attribute(name=restart-jobs-on-resume,value=false)
배치 작업 리포지토리 및 스레드 풀에 대한 설정을 구성할 수도 있습니다.
22.1.1. 배치 작업 리포지토리 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 관리 CLI를 사용하여 배치 작업 정보를 저장하기 위해 메모리 내 및 JDBC 작업 리포지토리를 구성하는 방법을 보여줍니다. Configuration
인메모리 작업 리포지토리 추가
배치 작업 정보를 메모리에 저장하는 작업 리포지토리를 추가할 수 있습니다.
/subsystem=batch-jberet/in-memory-job-repository=REPOSITORY_NAME:add
JDBC 작업 리포지토리 추가
데이터베이스에서 배치 작업 정보를 저장하는 작업 리포지토리를 추가할 수 있습니다. 데이터베이스에 연결할 데이터 소스의 이름을 지정해야 합니다.
/subsystem=batch-jberet/jdbc-job-repository=REPOSITORY_NAME:add(data-source=DATASOURCE)
기본 작업 리포지토리 설정
in-memory 또는 JDBC 작업 리포지토리를 배치 애플리케이션의 기본 작업 리포지토리로 설정할 수 있습니다.
/subsystem=batch-jberet:write-attribute(name=default-job-repository,value=REPOSITORY_NAME)
이 작업을 수행하려면 서버를 다시 로드해야 합니다.
reload
22.1.2. 배치 스레드 풀 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 관리 CLI를 사용하여 배치 작업에 사용할 스레드 풀 및 스레드 팩토리를 구성하는 방법을 보여줍니다. 또한 Configuration
스레드 풀 구성
스레드 풀을 추가할 때 max-threads를 지정해야 합니다. max-threads 는 파티션 작업이 예상대로 실행될 수 있도록 두 스레드가 예약되어 있으므로 항상 3 보다 커야 합니다.
스레드 풀 추가.
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:add(max-threads=10)필요한 경우
keepalive-time값을 설정합니다./subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:write-attribute(name=keepalive-time,value={time=60,unit=SECONDS})
스레드 팩토리 사용
스레드 팩토리 추가.
/subsystem=batch-jberet/thread-factory=THREAD_FACTORY_NAME:add스레드 팩토리에 대해 원하는 특성을 구성합니다.
-
group-name- 이 스레드 팩토리에 대해 생성할 스레드 그룹의 이름입니다. -
Priority- 생성된 스레드의 스레드 우선 순위입니다. thread-name-pattern- 스레드 이름을 생성하는 데 사용되는 템플릿입니다. 다음 패턴을 사용할 수 있습니다.-
%%- 백분율 기호 -
%t- 팩토리별 스레드 시퀀스 번호 -
%g- 글로벌 스레드 시퀀스 번호 -
%f- 팩토리 시퀀스 번호 -
%I -스레드 ID
-
-
스레드 팩토리를 스레드 풀에 할당합니다.
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:write-attribute(name=thread-factory,value=THREAD_FACTORY_NAME)이 작업을 수행하려면 서버를 다시 로드해야 합니다.
reload
기본 스레드 풀 설정
다른 스레드 풀을 기본 스레드 풀로 설정할 수 있습니다.
/subsystem=batch-jberet:write-attribute(name=default-thread-pool,value=THREAD_POOL_NAME)
이 작업을 수행하려면 서버를 다시 로드해야 합니다.
reload
스레드 풀 통계 보기
read-resource 관리 CLI 작업을 사용하여 배치 스레드 풀에 대한 런타임 정보를 볼 수 있습니다. 이 런타임 정보를 보려면 include-runtime=true 매개변수를 사용해야 합니다.
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:read-resource(include-runtime=true)
{
"outcome" => "success",
"result" => {
"active-count" => 0,
"completed-task-count" => 0L,
"current-thread-count" => 0,
"keepalive-time" => undefined,
"largest-thread-count" => 0,
"max-threads" => 15,
"name" => "THREAD_POOL_NAME",
"queue-size" => 0,
"rejected-count" => 0,
"task-count" => 0L,
"thread-factory" => "THREAD_FACTORY_NAME"
}
}
Runtime (런타임) 탭에서 Batch 하위 시스템으로 이동하여 관리 콘솔을 사용하여 배치 스레드 풀에 대한 런타임 정보를 볼 수도 있습니다.