Как выполнить удаление/определение с помощью IDCAMS с помощью пакетного JCL (z/VSE)

У меня есть пример кода удаления/определения с использованием IDCAMS в z/OS, но я не думаю, что он будет работать на z/VSE. Может ли кто-нибудь помочь мне преобразовать это? Созданный файл должен быть VSAM-kSDS.

//VDFNDEL  JOB 1,SAMPLE,MSGCLASS=X
//STEP1    EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*    
//SYSIN    DD *    

 DELETE SAMPLE.DATA.VSAM CLUSTER

/*   
//STEP2    EXEC PGM=IDCAMS
//SYSPRINT DD *
//DATAIN   DD DISP=OLD,DSN=SAMPLE.SORTOUT 
//SYSIN    DD *

 DEFINE CLUSTER (NAME (SAMPLE.DATA.VSAM) -
           VOLUMES(WORK02) CYLINDERS(1 1) -
           RECORDSIZE (72 100) KEYS(9 8) INDEXED)

 REPRO INFILE(DATAIN) OUTDATASET(SAMPLE.DATA.VSAM) ELIMIT(200)

/*

person user2155147    schedule 30.08.2013    source источник
comment
Наверняка кто-то на вашем сайте делал это раньше? Вероятно, вам нужно применить какие-то местные стандарты, а JCL совершенно другой.   -  person Bill Woodger    schedule 30.08.2013
comment
На самом деле, это не то, ради чего вы должны приходить в Интернет. Если вы начнете каталогизировать что-либо, начиная с SAMPLE, у вас, скорее всего, возникнут проблемы с безопасностью, и просто взять что-то старое из Интернета может не показаться хорошей отговоркой.   -  person Bill Woodger    schedule 30.08.2013


Ответы (1)


Ваши операторы IDCAM должны быть почти такими же, но JCL совершенно другой.

    * $$ JOB JNM=OGDEN12,CLASS=0,DISP=D
// JOB OGDEN12
// DLBL OGDEN,'OGDEN.DATA.VSAM',,VSAM,CAT=VSESPUC
// EXEC IDCAMS,SIZE=AUTO
DELETE (OGDEN.DATA.VSAM) CLUSTER PURGE -
CATALOG(VSESP.USER.CATALOG)
/*
// EXEC IDCAMS,SIZE=AUTO
DEFINE CLUSTER(NAME(OGDEN.DATA.VSAM) -
FILE(OGDEN) -
RECORDS (2000 1000) -
TO (99366) -
INDEXED -
KEYS(9 8) -
RECORDSIZE(72 100) -
CONTROLINTERVALSIZE(4096) -
SPANNED -
SHR(4) -
VOLUMES (DOSRES,SYSWK1)) -
DATA (NAME (OGDEN.DATA.VSAM.@D@)) -
INDEX (NAME (OGDEN.DATA.VSAM.@I@)) -
CATALOG(VSESP.USER.CATALOG)
/

Пример взят из очень полезной redbook.

person James Anderson    schedule 30.08.2013
comment
Я знаю, что это ошибка IBM, но в примере можно/нужно использовать один шаг с IF, SET, LASTCC и MAXCC, чтобы сделать все контролируемым образом. - person Bill Woodger; 30.08.2013
comment
@Bill Woodger - правда, но я не использовал VSE в этом столетии - и не знаю, чтобы кто-то где-либо еще использовал его, поэтому у меня нет реальных примеров. Я хотя бы мог указать плакату правильное направление. - person James Anderson; 30.08.2013
comment
Извините, понимаю, что я был не ясен. Я имею в виду контрольные карты IDCAMS, а не JCL. То же, что и z/OS для быстрого подтверждения этих особенностей: ftp.boulder.ibm.com/s390/zos/vse/pdf3/zvse31/doc/iesvoe10.pdf - person Bill Woodger; 30.08.2013