2011-01-18 7 views
2

나는 JZOS의 IBM 메인 프레임에서 배치 자바를 실행 중이다. 작업은 데이터베이스에서 발견 된 내용에 따라 0 - 6 ".txt"출력을 만듭니다. 그런 다음 유닉스에서 MVS (ebcdic)로 파일을 변환해야하며 IKJEFT01에서 실행되는 OCOPY 명령을 사용하고 있습니다. 그러나 특정 출력을 만들지 않으면 JCL 오류가 발생하고 작업이 끝납니다. 각 파일 이름의 유무를 확인하고 IKJEFT01 단계가 실행되는지 여부를 제어하는 ​​조건 코드를 설정하지만 Unix 파일 경로 이름에 액세스하는 데 사용할 것을 모릅니다.
변환 된 MVS 파일을 확인하고 후속 JCL 단계의 실행을 제어하는 ​​리턴 코드를 설정하는 COBOL 프로그램을 작성하여이 문제점을 해결했습니다. 완료된 작업이 사용자 승인 테스트를 거칩니다. 아마도 그것은 마치 진흙탕처럼 들릴 수도 있지만 작동하지만 나는이 솔루션을 공유하게되어 기쁩니다. 파일이 존재유닉스 시스템 서비스 파일의 존재를 확인하는 방법

//EXIST EXEC PGM=BPXBATCH, 
// PARM='pgm /bin/cat /full/path/to/USS/file.txt' 
//* 
//   IF EXIST.RC = 0 
//* do whatever you need to 
//   ENDIF 

경우, 단계는 CC 0으로 종료하고 IF 성공 :

+0

방금이 문제를 발견했습니다. 필자는 PGM = BPXBATCH를 통해 JCL에서이 작업을 수행했습니다. 소스 파일을 소스 저장소에서 체크 아웃 한 상태에서 작업 스트림을 어셈블하고 릴리스에 따라 JCL 오류가 필요한 위치가 아닐 수도 있습니다. 다음날 또는 2 일 내에 JCL을 파헤쳐 보겠습니다. 여기에 게시하겠습니다. – zarchasmpgmr

답변

2

JCL에서이 작업을 수행하는 가장 간단한 방법은 다음과 같이 저는 BPXBATCH을 사용하는 것입니다. 파일이 존재하지 않으면 0이 아닌 CC (256이라고 생각합니다)가 표시되고 IF이 실패합니다.

//STDOUT DD 문이 없으므로 JES에 출력 된 내용이 없습니다.

유일한 단점은 다른 작업 단계이며, procs (컴파일/어셈블 작업과 같은)가 많은 경우 255 단계 제한까지 실행할 수 있다는 것입니다.

+1

감사합니다. COBOL 프로그램도 단계를 추가하지만 JES에 쓸 수 있으며 이후 단계 조정에 사용할 리턴 코드를 선택할 수 있습니다. 또한 한 번에 여러 파일을 확인할 수 있습니다. –