xJCL 요소
작업은 xJCL(XML Job Control Language)이라는 XML(Extensible Markup Language) 통용어를 사용하여 표현됩니다. 이 통용어에는 계산 집중 및 일괄처리 작업 모두에 필요한 모든 정보 표현을 위한 구성이 포함되며 일부 xJCL 요소가 계산 집중이나 일괄처리 작업에만 적용되는 경우에도 마찬가지입니다. xJCL에 대한 자세한 정보는 샘플 애플리케이션, xJCL 테이블, xJCL XSD 스키마 문서에서 제공되는 xJCL을 참조하십시오. 작업의 xJCL 정의는 일괄처리 애플리케이션의 파트는 아니지만 별도로 구성되어 실행을 위해 작업 스케줄러에 제출됩니다. 작업 스케줄러에서는 xJCL의 정보를 사용하여 작업 실행 시기 및 위치를 판별합니다.
xJCL 요소
다음 테이블은 xJCL 요소를 요약합니다.
요소 | Java EE 계산 집중 | Java EE 일괄처리 | 하위 요소 | 속성 | 설명 |
---|---|---|---|---|---|
job | 예 | 예 | 일괄처리 작업 설명 범위. | ||
job | 예 | 예 | name | 작업 이름. 이 이름은 default-application-name이 지정되는 경우를 제외하고는 일괄처리 애플리케이션의 이름과 일치해야 합니다. | |
job | 예 | 예 | accounting | 선택적 회계 정보 속성 | |
job | 예 | 예 | class | 선택적 작업 클래스 속성으로 작업이 실행되는 작업 클래스를 식별합니다. | |
job | 예 | 예 | default-application-name | 작업 단계 application-name 속성이 없는 경우 사용되는 애플리케이션 이름. 사용될 애플리케이션 이름입니다. OSGi 일괄처리 애플리케이션의 경우, 이름을 osgi:<eba name>:<version>으로 형식화하십시오. |
|
job | 예 | 예 | jndi-name | 일괄처리 애플리케이션이 제품에 배치될 때 작업 제어기 Stateless 세션 Bean에 지정되는 JNDI 이름. | |
job | 예 | 예 | job-scheduling criteria | required-capability | 작업의 required-capability로 해당 엔드포인트에 디스패치되는 작업의 엔드포인트에 정의되어야 합니다. |
job | 예 | 예 | step-scheduling criteria | step-scheduling-criteria 요소 참조 | |
job | 아니오 | 예 | checkpoint algorithm | checkpoint-algorithm 요소 참조 | |
job | 아니오 | 예 | results-algorithm | results-algorithms 요소 참조 | |
job | 예 | 예 | substitution-props++ | prop 요소 참조 | 작업의 required-capability로 해당 엔드포인트에 디스패치되는 작업의 엔드포인트에 정의되어야 함 |
job-step | 예* | 예 | name | 단계의 선택적 이름. 이 정보는 운영 가능 명령에서 리턴됩니다. | |
job-step | 예* | 예 | application-name | 단계로 실행되는 선택적 애플리케이션 이름. 속성 이름은 application-name이 생략되고 작업 레벨 속성 default-application-name이 생략되는 경우에 사용됩니다. | |
job-step | 아니오 | 예 | step-scheduling | step-scheduling 요소 참조 | 일괄처리 단계 호출 여부를 판별하는 단계의 리턴 코드를 기반으로 하는 조건부 로직 허용. |
job-step | 예 | 예 | classname | 계산 집중 작업을 구현하는 클래스의 완전한 이름. | |
job-step | 예 | 아니오 | checkpoint-algorithm-ref | 일괄처리 작업 단계에 사용되는 체크포인트 알고리즘 지정. | |
job-step | 아니오 | 예 | results-ref | results-ref 요소 참조 | 조건부 일괄처리 작업 단계 실행에 사용되는 결과 알고리즘 지정. |
job-step | 아니오 | 예 | batch-data-streams | batch-data-streams 요소 참조 | bds 요소의 시퀀스. 각 bds는 일괄처리 데이터 스트림 작성에 필요한 구성 정보입니다. |
job-step | 예 | 예 | props | props 요소 참조 | 단계에 전달되는 Name-value 특성. |
job-step | 아니오 | 아니오 | exec | exec 요소 참조 | 작업 단계에 연관된 실행 파일 식별. |
job-step | 아니오 | 아니오 | env-entries | env-entries 요소 참조 | 작업 단계에 연관된 환경 특성 식별. |
prop | 예 | 예 | 특성으로 사용되는 이름 값 쌍의 단일 인스턴스. | ||
prop | 예 | 예 | name | 특성 이름. | |
prop | 예 | 예 | value | 특성 값. | |
props | 예 | 예 | prop | prop 요소 참조 | |
env-entries | 아니오 | 아니오 | name-value 쌍 특성을 단계, bds, 체크포인트 알고리즘, 결과 알고리즘에 전달하는 데 사용되는 일련의 prop 요소. | ||
env-entries | 아니오 | 아니오 | env-var | env-var 요소 참조 | |
exec | 아니오 | 아니오 | name-value 쌍 특성을 단계, bds, 체크포인트 알고리즘, 결과 알고리즘에 전달하는 데 사용되는 일련의 prop 요소. | ||
exec | 아니오 | 아니오 | executable | 작업 단계와 연관된 실행 파일 이름. | |
exec | 아니오 | 아니오 | arg | line 요소 참조 | |
line | 아니오 | 아니오 | 작업 단계 실행 파일에 전달되는 명령행 인수. | ||
bds | 아니오 | 예 | 일괄처리 작업에서 사용 가능해진 일괄처리 데이터 스트림 구현의 단일 인스턴스. | ||
bds | 아니오 | 예 | logical-name | 일괄처리 단계에 임베드되는 문자열로 특정 일괄처리 데이터 스트림 인스턴스에 대한 일괄처리 런타임 환경 조회에 이를 사용합니다. | |
bds | 아니오 | 예 | impl-class | 일괄처리 데이터 스트림 구현 클래스의 완전한 클래스 이름. | |
bds | 아니오 | 예 | props | props 요소 참조 | 일괄처리 데이터 스트림 구현 클래스에 전달되는 특성 목록. |
batch-data-streams | 아니오 | 예 | 일련의 bds 요소 | ||
batch-data-streams | 아니오 | 예 | bds | bds 요소 참조 | |
step-scheduling | 아니오 | 예 | 일괄처리 작업에 대해 리턴 코드 기반의 조건부 플로우 작성에 job-step 적용. 일괄처리 작업 처리 중에 단계가 호출되는지 여부를 결정하기 위해 이 일괄처리 작업에 대해 정의된 리턴 코드 값을 비교. 리턴 코드 값은 returncode-expression 요소를 사용하여 비교됩니다. | ||
step-scheduling | 아니오 | 예 | returncode- expression | returncode-expression 참조 | 평가하려는 Returncode-expression. |
step-scheduling | 아니오 | 예 | condition | 둘 이상의 returncode-expression 요소가 step-scheduling 요소에 있으면 조건부 연산자가 적용됩니다. 지원되는 조건부 연산자: AND, OR. | |
returncode-expression | 아니오 | 예 | 일괄처리 작업 단계가 다른 작업 단계의 리턴 코드를 기반으로 실행되는지 여부를 결정하기 위해 step-scheduling 태그에서 사용됨. | ||
returncode-expression | 아니오 | 예 | step | 리턴 코드가 이 표현식에서 비교되는 단계 이름. | |
returncode-expression | 아니오 | 예 | operator | 리턴 코드 표현식에 사용되는 연산자. 지원되는 연산자는 동등에 대해 eq, 미만에 대해 lt, 초과에 대해 gt, 이하에 대해 le, 이상에 대해 ge입니다. | |
returncode-expression | 아니오 | 예 | value | 리턴 코드를 비교하는 값. | |
step-scheduling-criteria | 아니오 | 예 | 작업 단계가 처리되는 시퀀스를 설명. 현재 순차 스케줄링이 지원됩니다. 예를 들어, xJCL에 존재하는 순서대로 단계가 호출됩니다. | ||
step-scheduling-criteria | 아니오 | 예 | scheduling-mode | 단계 호출의 시퀀스로 현재 유일한 가능한 값은 sequential입니다. | |
checkpoint-algorithm | 아니오 | 예 | 일괄처리 작업 단계에 사용 가능한 체크포인트 알고리즘을 선언합니다. | ||
checkpoint-algorithm | 아니오 | 예 | name | 알고리즘 이름. | |
checkpoint-algorithm | 아니오 | 예 | classname | 이 알고리즘을 구현하는 클래스. | |
checkpoint-algorithm | 아니오 | 예 | props | props 요소 참조 | 체크포인트 알고리즘에 대한 prop 요소의 시퀀스. |
checkpoint-algorithm-ref | 아니오 | 예 | 체크포인트 알고리즘 요소에 대한 참조. | ||
checkpoint-algorithm-ref | 아니오 | 예 | name | 참조 중인 체크포인트 알고리즘의 이름. | |
checkpoint-algorithm-ref | 아니오 | 예 | props | props 요소 참조 | 체크포인트 알고리즘에 대한 prop 요소의 시퀀스. |
++ xJCL 요소 substitution-props는 다음 절에서 설명됩니다.
xJCL substitution-props
<checkpoint-algorithm-ref name="${checkpoint}" />
<substitution-props>
<prop name="wsbatch.count" value="5" />
<prop name="checkpoint" value="timebased" />
<prop name="checkpointInterval" value="15" />
<prop name="postingsDataStream" value="${was.install.root}${file.separator}temp${file.separator}postings" />
</substitution-props>
기호 변수 대체는 런타임에서 발생합니다. 런타임 중에 문자열 ${variable-name}은 xJCL이 실행을 위해 제출될 때 특성 값으로 대체됩니다. 이전 예에서 특성을 사용하여 문자열 ${checkpoint}는 작업 제출 전에 문자열 시간 기반으로 대체됩니다.
기호 변수는 간접일 수 있습니다. 예를 들어, name/value 쌍 filename=postingsDataStream으로 사용되는 name=FILENAME value=${${filename}}는 name=FILENAME value=${postingsDataStream}을 지정하는 것과 동일한 결과를 가져옵니다.
기호 변수는 복합일 수도 있습니다. 예: name=postingsDataStream value=${was.install.root}${file.separator}temp${file.separator}postings.
name/value 쌍은 작업 문서 substitution-props 요소에 정의할 필요가 없습니다. substitution-props 요소에 정의된 props 이름 및 값 쌍은 이름 지정된 변수의 기본값입니다. substitution-props 요소에 정의되지 않으면 name/value 값 쌍은 작업이 제출될 때 작업 스케줄러 API를 통해 전달되거나 JVM에 대한 시스템 특성에 정의되어야 합니다. 작업 문서 본문에 정의된 모든 기호 변수는 유효하게 고려되는 xJCL에 대해 해결되어야 합니다. 작업 문서에 정의된 name/value 쌍은 유효하게 고려되는 xJCL에 xJCL 본문에 있는 기호 변수로 해결되어야 합니다.
name/value 쌍이 모두 xJCL 문서에 정의되어 작업 제출 시에 작업 스케줄러 API로 전달되면 작업 스케줄러 API를 통해 전달되는 name/value 쌍은 xJCL 문서에 정의된 기본값을 대체합니다. name/value 쌍이 작업 스케줄러 API를 통하지도 않고 xJCL 문서에 기본값으로 정의되어 전달되지도 않는 경우, 기호 변수의 name/value 쌍은 유효하게 고려되려면 xJCL에 대해 시스템 JVM 특성에 정의되어야 합니다.
- ${was.install.root}
- ${user.install.root}
- ${agent.home}