For z/OS platforms

batchManagerZos 클라이언트 유틸리티 구성

batchManagerZos 클라이언트 유틸리티를 사용하여 z/OS의 Liberty에서 실행 중인 일괄처리 작업을 관리할 수 있습니다.

이 태스크 정보

batchManagerZos 클라이언트 유틸리티는 z/OS용 Liberty에서 실행 중인 일괄처리 작업을 관리하기 위한 batchManager 명령행 유틸리티의 고유하게 컴파일된 버전입니다. 이 유틸리티는 원시 프로그램이며 JVM이 필요하지 않습니다. 유틸리티는 batchManagement-1.0 기능에 포함되어 있습니다.

batchManagerZos 클라이언트 유틸리티는 batchManager 명령행 유틸리티에서 지원하는 명령과 옵션의 서브세트를 지원합니다. 명령과 옵션 목록을 보려면 $ batchManagerZos help 명령을 사용하십시오.

batchManagerZos 클라이언트 유틸리티는 최적화 로컬 어댑터를 사용하여 로컬 환경에서 실행 중인 Liberty 서버에 연결합니다. batchManagerZos 클라이언트 유틸리티는 원격 서버에 연결할 수 없습니다.

보안 고려사항
batchManagerZos 클라이언트 유틸리티의 보안 동작은 Liberty 서버가 SAF 레지스트리를 사용하는지 여부에 따라 다릅니다.
  • 서버가 SAF 사용자 레지스트리를 사용하는 경우, batchManagerZos 클라이언트 유틸리티 ID는 일괄처리 요청에 대한 요청자 ID(Java 플랫폼, Enterprise Edition RunAs 주제)로 설정됩니다.
  • 서버가 SAF 사용자 레지스트리를 사용하지 않으면, batchManagerZos 클라이언트 유틸리티 ID는 무시됩니다. 이 경우 EVERYONE 특수 주제가 일괄처리 요청에 대한 요청자 ID로 설정됩니다.
일괄처리 역할 기반 권한

서버에서 appSecurity가 사용으로 설정된 경우 요청에 필요한 적절한 일괄처리 보안 역할에 요청자 ID를 지정해야 합니다. 유효한 일괄처리 보안 역할은 batchAdmin, batchSubmitter 및 batchMonitor입니다. ID에 필요한 역할을 지정하지 않으면 요청이 실패하고 보안 예외가 발생합니다.

보안 권한 제공자가 권한을 관리합니다. 서버에서 SAF 권한 부여를 사용하는 경우 SAF 권한 제공자는 EJBROLE 클래스에 정의된 SAF 자원 프로파일에 대한 해당 ID의 액세스 권한을 확인하여 요청자 ID의 권한을 판별합니다. 기본적으로 다음과 같은 자원 프로파일이 일괄처리 역할과 연관됩니다.
    batchAdmin:     BBGZDFLT.com.ibm.ws.batch.batchAdmin
    batchSubmitter: BBGZDFLT.com.ibm.ws.batch.batchSubmitter
    batchMonitor:   BBGZDFLT.com.ibm.ws.batch.batchMonitor
해당 일괄처리 역할에 권한을 부여하려면 요청자 ID에 적절한 자원 프로파일에 대한 읽기 액세스 권한을 부여해야 합니다.

다음 예는 클라이언트 ID bob에 batchAdmin 역할 권한을 부여하는 RACF 명령을 보여줍니다.

    RDEFINE EJBROLE BBGZDFLT.com.ibm.ws.batch.batchAdmin UACC(NONE)
    PERMIT BBGZDFLT.com.ibm.ws.batch.batchAdmin CLASS(EJBROLE) ID(bob) ACCESS(READ)
jobParametersFile 및 jobPropertiesFile
batchManagerZos 클라이언트 유틸리티를 사용하여 일괄처리 작업을 제출하는 경우 jobParametersFilejobPropertiesFile은 쉼표로 구분된 복수의 파일을 사용할 수 있도록 지원합니다. 쉼표로 구분된 목록의 뒷부분에 있는 파일은 목록의 앞 부분에 있는 파일보다 우선순위가 높습니다. 다음 예제는 쉼표로 구분된 목록의 올바른 사용법을 보여줍니다.
jobParametersFile=filePath1,filePath2,filePath3
jobPropertiesFile=filePath1,filePath2,filePath3
예를 들어, --jobParametersFile=<filepath1>는 제어 특성 파일의 --jobParametersFile=<filepath1>,<filepath2>를 대체할 수 있습니다. 결과 매개변수는 --jobParametersFile=<filepath1>입니다.
[17.0.0.3 and later]제어 특성 및 작업 매개변수
[17.0.0.3 and later]

단일 작업 매개변수 세트를 빌드하려면 프로그램은 빈 세트로 시작하여 다양한 소스의 특성을 계속 로드합니다. 그런 다음, 프로그램은 특성을 단일 세트에 병합합니다. 프로그램은 모든 소스를 읽고 로드한 후 단일 특성 세트를 작업 매개변수로 작업 제출에 전달합니다.

이 특성 세트는 이 순서대로 병합하여 빌드됩니다. 동일한 키를 가진 동일한 특성이 두 번 이상 로드되고 설정되면 나중 값이 이전 값을 대체합니다. 이 시퀀스의 이후 단계는 이전 단계보다 우선순위가 높습니다.

  1. --jobParametersFile 매개변수가 명령행 매개변수로 포함되지 않은 경우 오름차순 서열대로 다음 조치가 발생합니다.
    1. 작업 매개변수 제어 특성이 로드되고 병합됩니다. 이러한 특성은 제어 특성 파일 내부에 --jobParameter=key=value로 구조화됩니다.
    2. --jobParametersFile 매개변수에 의해 참조되는 파일의 컨텐츠가 로드되고 병합됩니다.
    3. 명령행 작업 매개변수가 로드되고 병합됩니다.
  2. --jobParametersFile 매개변수가 명령행 매개변수로 포함되지 않은 경우 오름차순 서열대로 다음 조치가 발생합니다.
    1. --jobParametersFile 제어 특성에 의해 참조되는 파일의 컨텐츠가 로드되고 병합됩니다. 이 제어 특성은 하나의 제어 특성 파일에만 나타날 수도 있고, 특성이 대체된 경우 둘 이상의 파일에 나타날 수도 있습니다.
    2. 작업 매개변수 제어 특성이 로드되고 병합됩니다. 이러한 특성은 제어 특성 파일 내부에 --jobParameter=key=value로 구조화됩니다.
    3. 명령행 작업 매개변수가 로드되고 병합됩니다.

이 구조는 --controlPropertiesFile 매개변수가 명령행 인수보다 우선순위가 낮기 때문에 발생합니다. --jobParametersFile 매개변수를 지정하는 레벨은 해당 파일의 우선순위 레벨을 판별합니다.

프로그램은 시퀀스의 각 파일을 읽고 로드할 때 발견되는 --jobParametersFile--jobPropertiesFile 특성을 하나의 특성으로 접습니다. 각 특성은 다른 특성의 별명입니다. 이러한 별명 중 하나를 사용하여 명령행 인수 또는 제어 특성을 대체하면 이전에 대체된 제어 특성 파일에 나타나는 둘 중 하나의 인스턴스가 대체됩니다.

참고: 매개변수는 개별 행에 대한 주석만 허용합니다.
작업 다시 시작 옵션

batchManagerZos 클라이언트 유틸리티 명령 옵션 restartTokenFile은 작업 다시 시작이 용이하도록 submit 명령에서 사용 가능합니다. 이 옵션의 값은 다시 시작할 작업의 인스턴스 ID를 보유하고 있는 파일의 이름입니다. 파일은 batchManagerZos 유틸리티에 의해 읽히거나 쓰여집니다. 파일에 인스턴스 ID가 포함되어 있으면 작업이 다시 시작됩니다. 파일에 인스턴스 ID가 포함되어 있지 않으면 새 작업이 제출되고 결과 인스턴스 ID가 파일에 저장됩니다. 작업이 다시 시작 가능한 상태에서 종료되지 않으면 인스턴스 ID가 파일에서 제거됩니다. 이 파일은 데이터 세트 이름(\'USER.MY.FILE\'), 파일(/u/user/myfile) 또는 DD(DD:RSTRTID)가 될 수 있습니다.

참고: 따옴표는 모두 백슬래시 문자 \로 이스케이프 처리해야 합니다.

다음 예제는 작업 다시 시작 옵션을 보여줍니다.

이 예제 파일은 JCL 프로시저이며 별도의 라이브러리에 저장될 수 있습니다.
//LIBBATCH PROC UN1='unique1',UN2='unique2'               
//STEP1 EXEC PGM=BPXBATSL                                 
//STDOUT DD SYSOUT=* 
//STDERR DD SYSOUT=* 
//STDPARM DD *                                            
PGM /u/TESTER1/wlp/lib/native/zos/s390x/batchManagerZos   
submit
--batchManager=LIBERTY+BATCH+MANAGER  
--controlPropertiesFile=DD:CPROP                          
--jobParametersFile=DD:JPROP                              
--restartTokenfile=DD:WGRSTRT                             
//WGRSTRT DD PATH='/u/TESTER1/restart/&UN1..&UN2..props', 
//            PATHOPTS=(ORDWR,OCREAT),                    
//            PATHMODE=(SIRWXU,SIRWXG)                    
//LIBBATCH PEND 
예제 파일은 JCL 프로시저를 실행하는 제출 가능한 JCL 작업입니다.
//ZBATCH JOB (),MSGCLASS=H,CLASS=A,
// USER=TESTER1,PASSWORD=TESTERPW
//MYLIBS1 JCLLIB ORDER=‘TESTER1.PROCS.JCL'
//SUBMIT EXEC PROC=LIBBATCH,UN1='MARY',UN2='D051016'
//CPROP DD *
--applicationName=SimpleBatchJob
--jobXMLName=test_batchlet_stepCtx
--returnExitStatus
--wait
//*
//JPROP DD *
jprop1=value1
//*
작업 로그 스트리밍

--getJobLog, --queueManagerName--wait 명령 옵션이 submit 또는 restart 명령에서 지정된 경우, 클라이언트는 작업 로그 이벤트를 구독하며 수신된 메시지를 STDOUT에 인쇄합니다. 작업 로그 이벤트를 수신하려면 일괄처리 작업 이벤트 공개를 사용해야 합니다. 일괄처리 작업 이벤트 공개의 구성에 대한 자세한 정보는 일괄처리 작업 이벤트 공개 사용에 대한 문서를 참조하십시오.

[16.0.0.4 and later]작업 로그 이벤트는 새 작업 로그 파트가 작성되거나 작업이 종료될 때마다 공개됩니다. 작업 로그 파일당 최대 로그 레코드 수에 도달하거나 작업 로그 이벤트 공개 간의 최대 시간(초)에 도달함에 따라 새 작업 로그 파트가 작성됩니다. 자세한 정보는 에 대한 문서를 참조하십시오.

리턴 코드
batchManagerZos 클라이언트 유틸리티는 다음과 같은 리턴 코드를 출력합니다.
코드 설명
0 태스크가 정상적으로 완료되었습니다.
20 필수 인수를 지정하지 않았습니다.
21 인식되지 않는 인수를 지정했습니다.
22 올바르지 않은 인수 값을 지정했습니다.
255 알 수 없는 오류가 발생했습니다.
참고: --wait 인수를 지정하면 유틸리티는 사용자가 기다리고 있는 작업의 상태에 대해 다음과 같은 리턴 코드를 출력합니다.
코드 설명
33 작업이 중지되었습니다.
34 작업이 정상적으로 완료되지 않았습니다.
35 작업이 정상적으로 완료되었습니다.
36 작업을 포기했습니다.
참고: BPXBATCH를 실행하여 batchManagerZos를 실행하는 경우 BPXBATCH의 리턴 코드가 batchManagerZos의 리턴 코드와 일치하지 않습니다. BPXBATCH는 batchManagerZos 리턴 코드를 가져와서 1바이트 위로 이동시킵니다. 예를 들어 batchManagerZos에서 1을 리턴하는 경우 BPXBATCH는 256을 리턴하며, 이는 16진 값 0x01을 0x100으로 1바이트만큼 위로 이동한 것입니다.

JCL STEP에서 BPXBATCH를 호출하는 경우 STEP 리턴 코드는 BPXBATCH 리턴 코드에서 아래 3자리 16진 문자로 잘리게 됩니다. 예를 들어 batchManagerZos에서 35(16진수 0x23)를 리턴하는 경우 BPXBATCH에서 0x2300을 리턴합니다. JCL STEP은 이 리턴 코드를 0x0300(또는 768)으로 자릅니다.

제한사항

batchManagerZos 클라이언트 유틸리티 stop 명령은 작업이 실행 중인 일괄처리 실행기를 대상으로 해야 합니다. 다중 서버 환경의 Stop 명령이 실패하며 BatchJobNotLocalException이 발생할 수 있습니다. batchManagerZos 클라이언트 유틸리티는 작업이 실행 중인 일괄처리 실행기가 아닌 지정된 일괄처리 디스패처에 연결됩니다. 일괄처리 디스패처는 일반적으로 제출 요청을 수신하고 다운스트림 일괄처리 실행기에 분배합니다.

프로시저

  1. server.xml 파일에서 batchManagement-1.0zosLocalAdapters-1.0 기능을 사용으로 설정하십시오.
    <featureManager>
    	<feature>batchManagement-1.0</feature>
    	<feature>zosLocalAdapters-1.0</feature>
    </featureManager>
  2. zosLocalAdapters-1.0 엔드포인트를 구성하십시오. 다음 예는 zosLocalAdapters-1.0 엔드포인트 구성을 보여줍니다.
    <zosLocalAdapters wolaGroup="LIBERTY" wolaName2="BATCH" wolaName3="MANAGER"/>
  3. batchManagerZos 클라이언트 유틸리티가 zosLocalAdapters 엔드포인트에 연결되도록 허용하십시오. batchManagerZos 클라이언트가 최적화 로컬 어댑터를 통해 서버에 연결하려면, zosLocalAdapters 엔드포인트와 연관된 CBIND SAF 자원에 대한 권한이 클라이언트의 userId에 부여되어야 합니다. 엔드포인트와 연관된 자원은 CBIND 클래스에서 BBG.WOLA.{wolaGroup}.{wolaName2}.{wolaName3}으로 이름 지정됩니다. LIBERTY BATCH MANAGER로 이름 지정된 zosLocalAdapters 엔드포인트를 바인딩하려면 CBIND 클래스의 BBG.WOLA.LIBERTY.BATCH.MANAGER 자원에 대한 읽기 액세스 권한을 batchManagerZos 사용자 ID에 부여해야 합니다. 다음 예는 자원에 대한 읽기 액세스 권한을 부여하기 위해 사용해야 하는 RACF 명령을 보여줍니다.
        RDEFINE CBIND BBG.WOLA.LIBERTY.BATCH.MANAGER UACC(NONE)   
        PERMIT BBG.WOLA.LIBERTY.BATCH.MANAGER CLASS(CBIND) ACCESS(READ) ID(bob)
    참고: 이 예에서 bob은 batchManagerZos를 실행 중인 사용자입니다.
  4. batchManagerZos 요청이 클라이언트의 ID로 서버에서 실행되도록 하려면 SAFCRED z/OS 권한 부여된 자원을 사용하도록 서버에 권한을 부여해야 합니다. 다음 예는 서버에서 SAFCRED z/OS 권한 부여된 자원을 사용하도록 설정하기 위해 사용해야 하는 RACF 명령을 보여줍니다.
        RDEFINE SERVER BBG.AUTHMOD.BBGZSAFM.SAFCRED UACC(NONE)   
        PERMIT BBG.AUTHMOD.BBGZSAFM.SAFCRED CLASS(SERVER) ACCESS(READ) ID(wlpuser1)
  5. Angel 주소 공간을 시작하십시오.
  6. Liberty 서버를 시작하십시오.
  7. ping 명령을 사용하여 batchManagerZos 클라이언트 및 Liberty 서버 간의 연결을 테스트하십시오.
    $ batchManagerZos ping '--batchManager=LIBERTY BATCH MANAGER'

    Ping에 성공하면 클라이언트가 존재하며 리턴 코드 0이 표시됩니다. Ping에 성공하지 못하면 오류 메시지가 표시됩니다.

  8. 문제점을 해결하려면 $ export batchManagerZosTrace=1 환경 변수를 설정하여 클라이언트에서 추가 추적을 가능하게 할 수 있습니다. 이제 일괄처리 작업의 실행에 추가 추적이 포함됩니다.

    다음 예제는 큐 관리자를 등록하지 않고 REST를 사용하여 실행되는 일괄처리 작업을 제출하는 명령을 보여줍니다.

    $batchManagerZos submit
    --batchManager=LIBERTY+BATCH+MANAGER  
    --applicationName=[application name used when packaging the batch app]
    --jobXMLName=[job XML file basename in the app's batch-jobs dir]
    --wait
  9. 옵션: 풀링을 사용하여 대기하는 대신 일괄처리 작업 이벤트의 종료를 대기하도록 batchManagerZos 클라이언트 유틸리티를 구성하십시오.

    WebSphere MQ 메시징 제공자를 사용하는 작업 관련 이벤트의 공개가 가능하도록 일괄처리 서버를 구성해야 합니다. 일괄처리 작업 이벤트 공개 사용에 대한 문서를 참조하십시오.

    [17.0.0.2 and later]8단계의 예제를 사용하여 작업을 제출하고 다음 코드를 추가함으로써 작업 종료 이벤트를 통해 작업이 완료될 때까지 대기할 수 있습니다.
    --queueManagerName=[name of MQ queue manager]
    클라이언트 측에서 서버 구성에 따라 해당 작업 이벤트가 공개되는 주제 루트 및 로컬 작업 관리자를 지시할 수 있습니다. 로컬 큐 관리자는 queueManagerName 특성을 통해 지정됩니다. 지정된 경우 다음 특성을 사용하여 큐 이름 및 해당 큐에 대한 주제 루트를 함께 설정하거나 별도로 설정할 수 있습니다.
    --queueName=[name of MQ managed queue]
    --topicRoot=[name of topic root set for MQ queue]
    queueName 특성을 사용하여 z/OS용 WebSphere Application Server 시스템에 지정된 작업 이벤트에 등록하기 위해 관리 대상 큐를 사용할 수 있습니다. topicRoot 특성을 사용하여 서버에서 사용할 기본값이 아닌 주제 루트를 지정할 수 있습니다.
    batchManagerZos 클라이언트는 작업 인스턴스 종료 상태를 나타내는 세 개의 이벤트 중 하나를 수신할 때까지 대기합니다.
    batch/jobs/execution/stopped
    batch/jobs/execution/failed
    batch/jobs/execution/completed
    1. 옵션: [17.0.0.1 and later]Liberty 구성에서 topicRoot 속성을 batchJmsEvents 요소에 추가할 수 있습니다. topicRoot 속성은 일괄처리 이벤트 주제 트리의 루트를 변경합니다. 새 트리 아래에서 이벤트를 구독하려면 대기 옵션에서 topicRoot 매개변수를 포함하십시오.
      $ batchManagerZos submit  
      --batchManager=LIBERTY+BATCH+MANAGER  
      --applicationName=[application name used when packaging the batch app]
      --jobXMLName=[job XML file basename in the app's batch-jobs dir]
      --queueManagerName=[name of MQ queue manager]--wait
      --topicRoot=[NEW_ROOT]

주제의 유형을 표시하는 아이콘 태스크 주제

파일 이름: twlp_batchManagerZos.html