2017-12-21 2 views
2

전체 PDS에서 ENQ를받지 않고 z/OS USS에서 PDS 구성원을 삭제할 수 있습니까? "tso delete"시도했지만 데이터 집합 경합에 대해 불평했다.z/OS USS의 PDS 구성원을 삭제 하시겠습니까?

+0

USS에서 중요합니까? 또한 ENQ와 같은 항목은 GRS 설정에 따라 다를 수 있습니다. –

+0

Kevin McKenzie : 예, USS에서해야합니다. 아이디어는 PDS가 USS 디렉토리의 내용을 미러링한다는 것입니다. 변경된 구성원을 복사하는 데 cp 명령을 사용할 수는 있지만 같은 exec에서 PDS 구성원을 아직 삭제할 수있는 방법을 모르겠습니다. –

+0

GRS RNL은 어떤 모습입니까? –

답변

7

ISPF 삭제 서비스를 사용하는 한 가지 방법은 일반적으로 데이터 세트를 공유로 할당하고 삭제를 직렬화하는 내부 ENQ를 사용하는 것입니다. here을 참조하십시오. UNIX Services에서 USS 쉘이 실행할 수있는 REXX 스크립트를 작성할 수 있으며 링크에서 보는 것처럼 ISPEXEC과 같은 것을 호출 할 수 있습니다.

IDCAMS를 사용할 수도 있습니다. 먼저 alloc fi(pds) dataset(dsn) shr과 같은 PDS 데이터 세트를 할당하십시오. 그런 다음 IDCAMS를 DELETE 'pds(member)' FILE(pds)으로 지정하면 원하는 작업을 수행 할 수 있습니다.

다른 많은 방법이 있습니다. 핵심은 일반적으로 DISP = SHR로 PDS를 할당하고 출력을 위해 PDS를 연 다음 DELETE 옵션으로 STOW를 호출하여 원하는 회원을 삭제하는 것입니다.

직렬화는 중요합니다. 공유 할당에서 출력을 위해 PDS를 열면 수행중인 작업에 따라 손상이 발생할 수 있습니다. ISPF 서비스는 DISP = OLD ... DISP = OLD로 할당하는 것보다 정교한 직렬화를 제공하는 ENQ (SPFEDIT)를 사용하여 직렬화합니다. DISP = OLD는 데이터 세트가 할당되는 한 계속 유지되지만 SPFEDIT ENQ는 두 번째로 DELETE를 수행하는 데 걸린다.

+0

주소 USS Rexx의 ISPEXEC 명령은 주소 지정 환경을 알 수 없음을 나타내는 RC -3을 제공합니다. 이는 다음에서 권장되는 내보내기 명령문을 사용할 때도 발생합니다. https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.2.0/com.ibm.zos.v2r2.bpxa500/tso.htm –

+0

또한 모든 순열 지금까지 ALLOC 및 DELETE에 대한 오류가 발생했습니다. –

+0

UNIX 셸 스크립트 내에서 ISPEXEC을 사용하는 데는 몇 가지 트릭이 있습니다. 먼저 ISPF 자체를 실행해야합니다 (ISPSTART를 실행하려면 ADDRESS TSO가 될 것입니다). 그러면 나머지 스크립트가 실행됩니다. 일단 ISPF 인스턴스가 실행 중이면 ADEXESS ISPEXEC 항목이 정상적으로 작동합니다. –

관련 문제