2012-10-26 2 views
2

프로덕션 환경에서 GDG 생성에 문제가 있습니다.2 단계에서 생성이 생성되고 3 단계에서 생성이 생성되는 경우 GDG 생성을 참조하는 방법

//step3 exec PGM=SORT        
//SORTIN DD DSN=sample.test(+1),  
//   DISP=SHR         
//SORTOUT DD DSN=xxxx.yyyy,  
//   DISP=(NEW,CATLG,DELETE),     
//   UNIT=(SYSDA,9),DCB=(RECFM=FB,LRECL=132), 
//   SPACE=(CYL,(50,20),RLSE)  

내가 같이었지만 JCL 오류와 함께 실패합니다

//INP DD DSN=sample.test(+1), 
//  DISP=(,CATLG,KEEP),      
//  SPACE=(CYL,(50,20),RLSE),    
//  DCB=(RECFM=FB,LRECL=1020,BLKSIZE=4080) 

같은 세대는 3 단계에 대해 참조한다 :

새로운 세대는 2 단계에서 생성됩니다.

누구에게 도움이 될 수 있습니까?

작업이 완료되면 이론에 따라. 우리는 0 번째 버전을 참조해야합니다. 같은 직업에서 우리는 +1 버전을 참조해야합니다. 3 단계에서 0 번째 버전으로 변경하면 작업이 정상적으로 실행됩니다.

+0

표시되는 JCL 오류는 무엇입니까? "데이터 세트를 찾을 수 없습니까?"또는 다른 것입니까? – cschneid

+0

"DSN 필드가 호환되지 않음" – user1776796

+0

작업 로그 및 시스템 메시지를 잘라내어 붙여 넣으십시오. 그러나 STEP3에서 DISP = OLD를 사용해야한다고 생각합니다. 로그와 메시지를 게시하면 NEW가 문제가되면 적절한 답을 쓸 것입니다. – zarchasmpgmr

답변

1

메시지 번호를 지정해야합니다. INP 단계의 기본 처리는 NEW이므로 데이터 세트가 이미 있음을 나타내는 메시지가 표시됩니다. 데크에서 다른 단계를 보지 않으면 도움이되지 않습니다.

1

잘못된 GDG 색인을 사용하고 있습니다. GDG에 가장 최근에 추가 된 데이터 세트를 참조하려면 index (0)를 사용해야합니다.

(+1)은 GDG에 새로운 데이터 세트를 추가해야 함을 나타냅니다.

더 많은 정보 : IBM Retrieving a Generation Data Set

+0

GDG 계산은 작업 시작시 완료되므로 이전 단계에서 생성 된 GDG를 참조 할 때 +1이 정확합니다. 그것에 관한 문서 : –

+0

? 오류로 시도했지만 작동하지 않았습니다. 어쩌면 스케쥴러 일 수도 있습니다. – user823959

+0

링크에서 : 지연된 롤인 상태의 생성 데이터 세트를 생성하는 작업 내에서 상대적인 번호 (예 : (+1))로 참조하십시오. 이 성명서는 내가 아는 것을 이해하기가 약간 어렵다. JCL에서 20 년 이상 근무했습니다. 나는 +1 GDG가 실제로 step2에서 생성 된 것이 아니라고 생각한다. 가능한 원인은 ther 프로그램에 의해 열리지 않은 파일, 단계가 건너 뛰고 (check cond), 단계가 실패하고 step3에 cond = even이 포함 된 것을 포함한다. 메시지를 아주 자세히 살펴보면 이러한 메시지가 있는지를 알 수 있습니다. 가능한 해결책에 대한 내 대답보기 –

0

그것은 DD 문에 오류가있는 대한 제한된 정보와 정확한 문제를 해석하기는 어렵습니다. 귀하의 예에서 +1 사용과 관련하여 올바른 생각을 갖고 있다고 생각합니다. 나는 당신의 오류에 대한 문제라고 생각하지 않습니다.

오류가 // INP DD 문에서 첫 번째 DD의 KEEP 비정상 종료로 의심됩니다. 결과적으로 2 단계가 정상적으로 실행될 때에 만 카탈로그 화되는 새로운 gdg 데이터 세트를 생성해야합니다. 작업이 2 단계에서 이상 종료되면 시스템 카탈로그에 아직 등록되어 있지 않은 GDG 데이터 세트 의 KEEP을 묻습니다 (). 나는 DISP = (, CATLG, CATLG)가이 시나리오에서 // INP DD 문을 더 적절하게 코딩 할 것이라고 생각한다.

일반적으로 데이터 세트가 이미 있고 유지되어야하는 상황에서는 KEEP을 사용합니다.

그러나 상점에서 SMS 관리 데이터 세트를 사용하는 경우 모든 SMS 관리 데이터 세트를 카탈로그해야하므로 KEEP은 CATLG로 취급됩니다. 그것이 상황 인 경우,이 응답은 귀하의 특정 상황에 적용되지 않을 수도 있습니다. 귀하의 예에서 SMS가 여기에 중요한 요인으로 나타나지는 않습니다.

1

GDG에 대한 귀하의 생각이 맞습니다. GDG를 작성하는 단계 에 실패하거나 이 (가) COND/IF 문으로 인해을 생략하거나 2 단계에서 GDG (비 SMS ???)가 열리지 않으면 JCL 오류가 발생하고 3 단계에서 JCL 오류가 발생합니다. sample.test (+1)가 존재하지 않기 때문에 JCL 오류가 발생합니다. JCL 오류를 일으킬 수있는 다른 가능성이 있습니다 (예 : 데이터 집합을 할당 할 수 없음).하지만 이것이 가장 가능성이 높습니다.

을 나열 전체 JCL/오류 메시지는 두 가지 가능한 솔루션이있는 경우 쉬울 것

  1. GDG를 제작하는 IEBGENER step1a 추가 (대부분의 경우는 옵션 1 또는 2 선택에서) 2 단계 전에 GDG가 만들어 졌는지 확인해야합니다.

  2. 3

    // STEP3 간부 PGM = SORT 단계 콘드 추가 COND = (0, NE) DISP에

  3. 변경 DISP = (CATLG, CATLG), (만약 단계는) 실패

    // INP DD DSN = sample.test (+1),
    // DISP = (CATLG, CATLG), 당신이 일 경우 출력을 원하는 경우

    전용 옵션 2를 선택 실패합니다.

I는 DISP = (CATLG), DISP은 (CATLG, 삭제) = 또는 DISP = (CATLG, CATLG) 중 하나 DISP은 = (CATLG가 KEEP)를 변경할 것이다. 예전에는 KEEP이 uncatlogued 데이터 세트를 작성하도록 권유했습니다.

다른 방법으로 SMS가 문제 일 수 있습니다.