2017-01-27 2 views
0

jcl에서 sysin을 통해 사용자가 입력 한 XXX 인 파일 "ABC.DEF.XXX"의 ddname을 지정하려고합니다. 어떻게 수행 할 수 있습니까?jcl의 사용자에 의한 DDnames 할당

+0

사용자가 정보를 JCL로 전달하는 방법은 무엇입니까? – SaggingRufus

+4

동적 할당. 사이트에서 어떤 방법을 사용하는지 확인하거나 이미 사용하지 않을 경우 사이트에서 사용할 방법을 결정하십시오. –

+0

사용자가 왜 Sysin을 통해 데이터를 입력합니까 ??? –

답변

6

사이에 큰 차이가 이해해 주시기 바랍니다 ... 기술적으로 가능 무엇

  • 당신의 가게에서 허용되는 것
  • 견고하고 유지 보수 솔루션은 사용자의 요구 사항에 주어진 제공 할 가능성이 무엇

이들은 크게 다른 세 가지입니다. StackOverflow에 대한 질문에 대답하는 우리 중 일부는 상점에서 허용되는 사항이나 실제 비즈니스 요구 사항이 해결되는 것의 기술적 인 가능성에 대한 질문에 답하는 것에 대해 과묵하게 만드는 경험을 가지고 있습니다.

메인 프레임은 반 세기가 넘었으며 많은 상점에서 기술 문제에 대한 표준 솔루션을 제공합니다. 가끔 해결책은 "하지 마라. 여기 우리는을 대신한다." 기술 직원 또는 상점 표준의 권고에 반하는 작업은 경력 제한입니다.

사용자가 제안한 의도하지 않은 결과 중 하나는 ABC.DEF.XXX에 대한 액세스가 JCL 스캔에서 발견되지 않는다는 것입니다. 이것은 영향 분석을하는 사람들에게 슬픔을 줄 수 있습니다.

그렇다면 기술적으로 가능할 수있는 범주에 속하는 문제에 대한 두 가지 해결책이 떠 올랐습니다.

  1. 하면 Z/OS의 동적 할당 루틴도 DYNALLOC라고도 SVC99를 사용하는 어셈블러 루틴을 쓸 수있다. z/OS 용 IBM 지식 센터 및 z/OS MVS -> z/OS MVS 프로그래밍 : Authorized Assembler Services -> Dynamic Allocation을보십시오.

  2. C 런타임 루틴 dynalloc()을 호출하여 매개 변수를 구성하여 파일을 동적으로 할당 할 수 있습니다.

은 알린다 그 어느 경우에, 정말는 강력하고 유연한 오류 처리를 포함해야 솔루션.

일반적으로 동적으로 DD 이름을 할당하지 않으며 런타임에 할당해야하는 DSN은 기호 매개 변수를 사용하여 수행됩니다.

0

SYSUID가 & 인 지 확인할 수 있습니다. 기호는 상점에서 사용할 수 있습니다. 그렇다면 AAA.BBB를 지정할 때 제출 사용자의 ID로 확장됩니다. & SYSUID.

일부 상점은 다른 기호를 전파 할 수도 있고, 어떤 상점은 허용하지 않을 수도 있습니다. 실제로는 단지 의존합니다.

0

DYNALLOC (SVC 99)과 관련이없는 약간 다른 방법이 있습니다.

DYNALLOC의 단점은 충돌이 해결되는 동안 자원 (예 : 일괄 처리 개시 자)을 묶어 놓은 채 작업이 리소스를 기다릴 수 있다는 것입니다.예를 들어 필요한 데이터 세트 나 볼륨을 즉시 사용할 수없는 경우 DYNALLOC을 코딩하는 방법에 따라 무기한 대기 할 수 있습니다.

데이터 집합의 이름을 변경하기 만하면 RDJFCB 및 OPEN TYPE = J를 사용하여 데이터 집합을 변경할 수 있습니다. JFCB (Job File Control Block)는 z/OS가 할당 된 데이터 세트를 인식하는 방법입니다. DSN과 데이터 세트 레이블의 정보는 대부분 거기에 저장됩니다. RDJFCB 매크로를 사용하면 JFCB에 액세스 할 수 있으며 OPEN TYPE = J를 사용하면 JCL에있는 데이터 집합 대신 데이터 집합 이름을 계산하는 대상으로 변경하는 등 시스템 작성 JFCB를 수정할 수 있습니다.

일반적인 방법은 기본 할당 데이터가있는 DD 문을 사용하는 것입니다. DSN이 필요하지도 않습니다 (시스템에서 DSN을 지정하지 않으면 시스템이 임시 DSN을 작성합니다. JCL). 프로그램에서 OPEN TYPE = J를 사용하여 JFCB를 수정하고 데이터 세트 이름을 원하는대로 변경합니다. 이것은 두 세계에서 가장 좋은 것입니다. 원하는 것을 할 수 있고, 작업이 시작되기 전에 시스템이 자원 충돌을 해결할 수 있습니다.

OPEN TYPE = J에 대한 몇 가지 승인 요구 사항이 있으며, 초보자를위한 것은 아닙니다.하지만 관심이 있으시면 문서화되어 있습니다. 이를 시도하는 사람은 z/OS에 대해 많은 것을 배우게됩니다!