eliminacion de archivo que dice estar en uso por CICS

Todo lo relacionado al CICS .
Responder
ajap

eliminacion de archivo que dice estar en uso por CICS

Mensaje por ajap »

Buenas tardes a todos, tengan un cordial saludo. La situación que se me presenta es la siguiente:

Trato de eliminar un archivo VSAM, me dice que no puedo eliminarlo porque está en uso por CICS1.
ejecuto el siguiente job para cerrarlo:

000007 //PASO01 EXEC C5MOPR,
000008 // PARM='F CICS1,CEMT S FI(VPVPM.CMS.KEYD.LOG001),CLO DIS'
000009 //SYSPRINT DD SYSOUT=*
000010 //SYSIN DD DUMMY
000011 //*

La ejecución del job regresa 0
CTM493I CTM34F STARTS EXECUTING COMMANDS
F CICS1,CEMT S FI(VPVPM.CMS.KEYD.LOG001),CLO DIS
CTM495I CTM34F FINISHED EXECUTING COMMANDS
- --TIMI
-JOBNAME STEPNAME PROCSTEP RC EXCP CPU
-PPSJOAC0 PASO01 CTDOPR 00 273 .00

trato de eliminar de nuevo el archivo pero me sigue diciendo que está en uso por CICS1.
Por qué me da RC = 0 y no cierra el archivo ? que puedo hacer para eiiminarlo ?

Gracias anticipadas por la ayuda que puedan darme.
Vicente

Re: eliminacion de archivo que dice estar en uso por CICS

Mensaje por Vicente »

Hola ajap
Es posible que en la salida de tu mandato CEMT SET observes un mensaje de SINTAX ERROR.
El nombre del fichero no puede ser VPVPM.CMS.KEYD.LOG001.
Ha de ser una sola palabra de como máximo 8 caracteres y debe coincidir con el nombre dado en la FCT para tu DSN PVPM.CMS.KEYD.LOG001.
Puedes averiguarlo ejecutando CEMT I FILE, si es que el fichero etá dado de alta en la FCT.

No obstante si este fichero estuviese escrito en una ficha DD en el JCL del CICS sospecho que no te quedaría otra opción que parar el CICS.

Un saludo

Leamos un poco: CICS Supplied Transactions, capítulo donde explica CEMT SET dice:
CEMT Set FIle (value) CLosed ....
...
(value) One or more names (1-8 characters) defined in the file control table (FCT).
ajap

Re: eliminacion de archivo que dice estar en uso por CICS

Mensaje por ajap »

Hola Vicente, gracias por responder. En la salida no veo el sintax error y de ser asi, no ha debido dar rc=0, nueva duda.
Leí lo que me recomendaste, es muy buena información, gracias y aunque ahí dice lo que comentas, sigo sin entender lo del rc=0 con lo del sintax error. ???
Por otro lado como aplicaría la instrucción /imsqdbr db all en este caso ?? la he buscado por internet para ver su aplicación y modo de ejecución pero no la he encontrado.

saludos cordiales.
freddy_bell

Re: eliminacion de archivo que dice estar en uso por CICS

Mensaje por freddy_bell »

Fijate que si hay alguna solicitud pendiente sobre el dataset en cuestion no lo va a cerrar hasta que se complete dicha solicitud, excepto que le indiques en el comando el parametro forceclose, cuidado que esto si bien lo cierra si o si no te garantiza la integridad de los datos. En relacion al ddname y dsname puedes indicar ambas anteponiendole dsn( data se name ) o fi(ddname) , se puede asimismo usar una wilcard * o % en el calificador deseado para cerrar todos los datasets que cumplan con la mascara mencionada.Ejemplos cemt s dsn(calif1.clasfi2.*) , cemt s fi(ap%inpl%).
Vicente

Re: eliminacion de archivo que dice estar en uso por CICS

Mensaje por Vicente »

Hola ajap:
Estás utilizando el programa C5MOPR para ejecutar mandatos de operador.
No conozco este programa, pero supongo que se limitará a pasar el mandato al sistema y nada más; es esta operación la que termina con rc=0. El programa ha hecho bien su trabajo.
La ejecución del mandato F CICS1,.CEMT..... la hace el MVS, por lo que tendrás que ver su resultado con los mecanismos estandar del sistema; en tu caso tendrás los mensajes referentes a la CEMT en el SYTEM LOG y en la DD JESMSGL de la tarea CICS1.
Ahí podrás ver algo como: E Length of FILE value is more than the 8 characters ...

En cuanto al SINTAX ERROR, este aparece así en un terminal CICS cuando se teclea la transacción CEMT como tu lo hacías, perdoname la imprecisión de mi anterior post.

Referente a lo que dices de "/imsqdbr db all", no conozco imsqdbr, no tengo experiencia con IMS.
Pero si te refieres a dar mandatos al sistema, sea cual sea el mandato, puedes hacerlo con tu programa o bien con los mecanismos estandares del MVS (desde TSO, desde SDSF, IEBGENER desde un jcl batch). A continuación te pongo un ejemplo de JCL que da mandatos a la consola del sistema (si se tienen los permisos adecuados); pero recuerda, este job terminará siempre con rc=0 independientemente del resultado de la ejecución de los mandatos, que tendrás que buscar en el LOG o en las salidas de los programas implicados.

//MANDATOS JOB CLASS=MSGCLASS=A,MSGLEVEL=(1,1)
//MANDATOS EXEC PGM=IEBGENER
//SYSPRINT DD DUMMY
//SYSIN DD DUMMY
//SYSUT2 DD SYSOUT=(A,INTRDR)
//SYSUT1 DD *,DLM=XX
/*$VS,'F CICS1,CEMT S DS(VPVPM.CMS.KEYD.LOG001),CLO DIS'
/*$VS,'imsqdbr db all'
/*$VS,'OTRO MANDATO'
XX

Un saludo
Vicente

Re: eliminacion de archivo que dice estar en uso por CICS

Mensaje por Vicente »

Hola ajap:
Ten encuenta, cuando leas la respuesta de freddy, que las funciones que se pueden hacer con CEMT SET DSN son distintas a las de CEMT SET FI

Un saludo

Leamos un poco: CICS Supplied Transactions, capítulo donde explica CEMT SET
ajap

Re: eliminacion de archivo que dice estar en uso por CICS

Mensaje por ajap »

Hola Freddy, Vicente. Gracias por responder. excelente.

Lamentablemente vi las respuestas tarde y no pude aplicar lo que me indicaron porque pasé el caso a operaciones pero las tendré presente para un futuro.

muchas gracias pra ambos por su ayuda.
jaisaper

Re: eliminacion de archivo que dice estar en uso por CICS

Mensaje por jaisaper »

:saludo: Perdonarme si me equivoco pero: la CEMT solamente cierra el fichero, no lo "desalloca", por eso el fichero sigue en uso. :duda:
Vicente

Re: eliminacion de archivo que dice estar en uso por CICS

Mensaje por Vicente »

Hola jaisaper:
Un fichero está en uso cuando está abierto, no cuando está creado con un espacio reservado (allocated).
Para un fichero definido en la FCT que el CICS (u otro programa) no tenga abierto, el intento de borrado no nos dará el mensaje de que está en uso.

Para conocer la diferencia entre OPEN y ALLOC ...

Leamos un poco: DFSMS Using Data Sets (SC26-7410-11)
Este es un libro básico para los que deseen manejar ficheros en zOS

Un saludo
ajap

Re: eliminacion de archivo que dice estar en uso por CICS

Mensaje por ajap »

Buenos dias, estoy de acuerdo con Vicente. Para que un archivo este en uso debe estar abierto, el hecho que este allocated implica que esta presente, más no en uso.

Saludos.
Gurgur

Re: eliminacion de archivo que dice estar en uso por CICS

Mensaje por Gurgur »

Muchas gracias a todos, en especial a Vicente.

De lo poco que sé, quería compartir que en el comando a CICS "CEMT"
se puede interrogar al cics especificando el DSN con el nombre con el que está allocado, en lugar del nombre en CICS.
No sé si será la sintaxis correcta, pero al menos muy aproximada:

cemt i file DSN(nom_fich_en_el_sistema)
.............
eso desde dentro del cics, desde el sdsf:

/f cics1,cemt i fil DSN(nombre del fichero)
.............

...Y para cerrarlo desde el cics, al menos para los ficheros que no tengas intención de borrar, y que después de utilizar puedas dejarselos al cics tal y como lo tenía con el open oportuno, se puede utilizar la opción de "clo une" --> o lo que es lo mismo clo sin sobreescribir el ena.

cemt i file DSN(nombre del fichero)
y en el display sobre escribir el ope con clo

Saludos
ajap

Re: eliminacion de archivo que dice estar en uso por CICS

Mensaje por ajap »

gracias por responder Gurgur, me cayó al dedo tu información..

saludos
Responder