Un rexx para borrar GDG y las versiones en TAPE

Todo lo relacionado con REXX en este ambiente.
Responder
Fernan
Usuario
Usuario
Mensajes: 27
Registrado: 22 Ene 2010, 06:31
País: España
Ciudad: Madrid
Ocupación: Auditor de sistemas

Un rexx para borrar GDG y las versiones en TAPE

Mensaje por Fernan » 03 Ago 2015, 07:43

Hola...

Estoy intentando hacer un rexx para que este me borre los GDG's y sus versiones, teniendo estas la posibilidad de estar en TAPE, vamos hacer del siguiente jck en rexx:

//PASA010 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DELETE (SC.HPEPITOS.ACUM3.LOR) GDG FORCE
/*
//PASO020 EXEC PGM=IEFBR14
//GDGMODEL DD DSN=SC.H998QVS.ACUM3.LPPCS31,
// DISP=(MOD,DELETE,DELETE),
// UNIT=SYSDA,
// SPACE=(TRK,0),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800,DSORG=PS


como los extraigo de un ficharo el listado de gdg's a borrar.... realizo esto:

"EXECIO * DISKR DATO2 (STEM LINE. FINIS"
DO C = 1 TO LINE.0
D = SUBSTR(LINE.C,1,44)
SAY D
DELETE D GDG FORCE
END
"FREE F(DATO2)"
EXIT
y si las versiones estas en disco se las borra... pero no borra si las versiones están en tape....

¿¿¿alguién puede darme alguna pista??? gracias.

Avatar de Usuario
Vicente
Colaborador avanzado
Colaborador avanzado
Mensajes: 543
Registrado: 21 Jul 2011, 04:52
País: España
Ciudad: Malaga
Ocupación: Técnico en Sistemas

Re: Un rexx para borrar GDG y las versiones en TAPE

Mensaje por Vicente » 03 Ago 2015, 15:19

Hola Fernan:
No es posible borrar un fichero que está en una cinta, si no se sobreescribe esta.
Pero puedes borrar la entrada en el catálogo del sistema (descatalogar) así no se verá con p.3.4.
La manera de hacerlo es utilizar el parámetro NOSCRATCH del mandato DELETE.

Leamos un poco:
Puedes consultar el mandato DELETE de IDCAMS en el libro de SMS:
Access Method Services for ICF catalog.

Un saludo
Varios días probando, equivocandote y volviendo a probar
pueden ahorrarte quince minutos de lectura de un manual.

Cerbumota
Colaborador
Colaborador
Mensajes: 137
Registrado: 07 Feb 2007, 05:34
País: España
Ciudad: Madrid
Ocupación: Otra

Re: Un rexx para borrar GDG y las versiones en TAPE

Mensaje por Cerbumota » 08 Ago 2015, 17:00

Buenas.
Y recuerda que es distinto borrar una generación de GDG que una base. No deberías poder borrar la base mientras tenga generaciones vivas. Tendrás que eliminar todas las generaciones catalogadas antes de eliminar la base.
Mi lema favorito, el de las tres "uVes": Velocidad, Valor y... Vuevos.

Fernan
Usuario
Usuario
Mensajes: 27
Registrado: 22 Ene 2010, 06:31
País: España
Ciudad: Madrid
Ocupación: Auditor de sistemas

Re: Un rexx para borrar GDG y las versiones en TAPE

Mensaje por Fernan » 11 Ago 2015, 05:05

Buenos días....

Si borras el gdg base como aqui:
DELETE (SC.HPEPITOS.ACUM3.LOR) GDG FORCE
tambien borras las versiones que tenga...

el comando no lo borra si estas versiones estan en 'tape'

y despues de leer¿?... no me aclaro..

yo recibo un fichero con un listado de ficharos y gdg's a borrar... lo tengo automatizado con un rexx... peo claro como algunos de estos gdg's susu versiones estan en 'tape', queria automatizazlo de alguna forma...

es por si alguien tiene alguna idea por donde ir sacando cosillas... gracias.

Cerbumota
Colaborador
Colaborador
Mensajes: 137
Registrado: 07 Feb 2007, 05:34
País: España
Ciudad: Madrid
Ocupación: Otra

Re: Un rexx para borrar GDG y las versiones en TAPE

Mensaje por Cerbumota » 11 Ago 2015, 06:56

Hola.
Lo que quieres hacer es lo más normal del mundo. Sólo tienes que usar la imaginación y aprovecharte de la flexibilidad de REXX y sobre todo de sus posibilidades.
En primer lugar, no específicas el tipo de ficheros a tratar que recibes: PS, VSAM, LUBRARIES, PD... Pero no importa. Tampoco comentas elegido de borrado: comando TSO, lanzado de un jcl que preparas... Y tampoco importa.

Yo que tú, haría lo siguiente :
1. Averiguar su DSORG. Con u PO-LIBRARY o PS vas a poder lanzar un DELETE sin problemas.
Con un VSAM ya no. en cualquier caso, yo lanzaría un LISTDSI para mirar su DSORG. El único dilema serán los gdg. Si te da un RC 12, es probable que tengas una base entre manos y con un OUTRAP y un LISTCAT, averiguas si es base y sus generaciones activas.

Ya con los ficheros identificados, tú verás como los borras.

PD. Si solo vas a borrar la lista que recibes, te será más fácil ocuparte de los GDG. Y no tendrás que revisar que el último cualificador de cada uno de ellos sea generación...
Mi lema favorito, el de las tres "uVes": Velocidad, Valor y... Vuevos.

Fernan
Usuario
Usuario
Mensajes: 27
Registrado: 22 Ene 2010, 06:31
País: España
Ciudad: Madrid
Ocupación: Auditor de sistemas

Re: Un rexx para borrar GDG y las versiones en TAPE

Mensaje por Fernan » 11 Ago 2015, 07:22

hola...

lo que recibo son ficheros obsoletos que ya no se utilizan en jcl's dados de baja... ficheros y gdg's....

tengo un jcl que los ficheros, ficheros catalogados y gdg's los borro de forma automatica...pero en caso como te comentaba falla...

rexx lo unico que hace es leer el archivo linea por linea y esta borrarla, con del... uncalog, delete () gdg force... y queria algo para borrar los gdg con las versiones en cinta...

Lo he realizado con el siguiente jcl... y las borra, pero queria automatizarlo.... gracias.

//PASO020 EXEC PGM=IEFBR14
//GDGMODEL DD DSN=SC.H998QVS.ACUM3.LPPCS31,
// DISP=(MOD,DELETE,DELETE),
// UNIT=SYSDA,
// SPACE=(TRK,0),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800,DSORG=PS

Avatar de Usuario
Vicente
Colaborador avanzado
Colaborador avanzado
Mensajes: 543
Registrado: 21 Jul 2011, 04:52
País: España
Ciudad: Malaga
Ocupación: Técnico en Sistemas

Re: Un rexx para borrar GDG y las versiones en TAPE

Mensaje por Vicente » 12 Ago 2015, 19:30

Hola Fernan,
Si tu último ejemplo te funciona, puedes hacer que tu REXX escriba, en un fichero de trabajo, un JCL con el paso IEFBR14 y tantas DDs como necesites, y luego lo submita utilizando el mandato SUBMIT de TSO.
un saludo
Varios días probando, equivocandote y volviendo a probar
pueden ahorrarte quince minutos de lectura de un manual.

Cerbumota
Colaborador
Colaborador
Mensajes: 137
Registrado: 07 Feb 2007, 05:34
País: España
Ciudad: Madrid
Ocupación: Otra

Re: Un rexx para borrar GDG y las versiones en TAPE

Mensaje por Cerbumota » 17 Ago 2015, 03:58

Buenas.
Con el mod,delete,delete vas a poder borrar los secuenciales y particionados sin problemas. Pero la base gdg, si tiene generaciones vivas, no creo...

Desde Rexx, puedes generar y lanzar jcls con un "idcams delete force", que debería borrar el gdg entero. Te abres un stack nuevo, lanzas queues con cada línea que forma el jcl, y haces un submit. Eso te debería permitir automatizar un bucle para ir borrando todos los gdg que quieras. Aunque si es como dice Vicente, no podrás en cinta...

Respecto la línea del borrado, con el parámetro ERASE creo que sobreescribía la entrada del fichero con ceros binarios. En una cinta, es posible que te sirva para borrarlo, aún sin usar el parámetro NOSCRATCH. Pero no estoy seguro... :garrote: El maestro Vicente me hace dudar. Yo, para borrar ficheros de una cinta, catalogados por supuesto, usaría un "delete" normal con idcams. No trabajo con cintas, y no estoy seguro, pero no veo problemas en usarlo. Eso sí, borrarlo no supone poder reusar su sitio. En una cinta, eso no se puede hacer. La escritura en una cinta es secuencial y a saco: empiezas por el principio, y hasta que no acabas la cinta, no miras atrás. :lupa: No es posible reutilizar espacios en la cinta sin hacerle un scratch completo y reiniciarla. Es así el sistema... :silbo:
Mi lema favorito, el de las tres "uVes": Velocidad, Valor y... Vuevos.

Responder