Para verificar las asignaciones existentes de los archivos, emplee el comando ? TSO DDNAME. Esto puede hacerse de las siguientes formas:
Comando |
Función |
---|---|
? TSO DDNAME |
Lista los archivos asignados. Produce un listado del archivo SYSPRINT, incluso si emite el comando OFFLINE. |
? TSO DDNAME ddname |
Lista los atributos de los archivos. Produce un listado del archivo SYSPRINT, incluso si emite el comando OFFLINE. |
-? TSO DDNAME ddname |
Coloca la información sobre los atributos de archivos en las variables de Dialogue Manager. Los atributos se devuelven como valores para las variables de Dialogue Manager. |
Cómo: |
El comando ? TSO DDNAME lista todos los archivos asignados actualmente por ddname, muestra el número de veces con que se repiten y los nombres de los conjuntos de datos correspondientes. Muestra los archivos asignados en estos momentos.
? TSO DDNAME
A continuación le ofrecemos un ejemplo de salida de un comando ? TSO DDNAME.
DDNAME OCCURRENCES DSNAME STEPLIB 2 EDA.V3R2M01.EDALIB.LOAD INPDQ.PROC.PROCLIB MASTER 1 EDA.V3R2M01.EDAMFD.DATA FOCEXEC 1 EDA.V3R2M01.EDAMFD.DATA ERRORS 1 EDA.V3R2M01.EDAMSG.DATA FOCSORT 1 SYS88229.TO95540.RA000.INPDQ.R0000002 OFFLINE 1 TSOINFOC.TSOINFOC.OFFLINE SYSUT1 1 SYS88229.TO95058.RA000.INPDQ.SYSUT1 SYSEDIT 1 SYS88229.T095058.RA000.INPDO.EDIT HOLD 1 SYS88229.TO95058.RA000.INPDQ.R0000003 HOLDMAST 1 SYS88229.T095044.RA000.INPDQ.R0000004 CAR 1 EDA.V3R2M01.CAR.FOCUS
La columna DDNAME lista todos los nombres de archivos asignados (ddnames). La columna OCCURRENCES muestra el número de conjuntos de datos asignados al ddname correspondiente. Este número es uno, a menos que haya dos o más conjuntos de datos concatenados bajos el ddname. La columna DSNAME muestra el nombre del conjunto de datos completamente cualificado (DSN), correspondiente al ddname. Aparecen todos los nombres de los conjuntos de datos concatenados.
Cómo: |
El comando del ddname ? TSO DDNAME muestra los atributos de nombre del archivo consultado (ddname). Si el ddname especificado no se encuentra asignado, el comando muestra los atributos como espacios en blanco o ceros.
? TSO DDNAME ddname
donde:
Es el ddname cuyos atributos quiere mostrar. Puede especificar hasta ocho caracteres. Además, puede crear una lista principal de los archivos asignados por ddname, especificando un carácter de comodín (* or ?) con parte del ddname.
A continuación le ofrecemos un ejemplo de salida de un comando de ddname ? TSO DDNAME.
DDNAME = CAR DSNAME = EDA.VSR2M00.CAR.FOCUS DISP = OLD DEVICE = DISK VOLSER = TSOPAK DSORG = PS RECFM = F SECONDARY = 1 ALLOCATION = TRACKS BLKSIZE = 4096 LRECL = 4096 TRKTOT = 2 EXTENTSUSED = 1 BLKSPERTRK = 10 TRKSPERCYL = 15 CYLSPERDISK = 886 BLKSWRITTEN = 20 FOCUSPAGES = 8
Referencia: |
El comando de ddname -? TSO DDNAME coloca la información de los atributos de archivos en las variables de Dialogue Manager, en lugar de mostrarla en el terminal. Estas variables de sistema TSO de Dialogue Manager tienen los mismos nombres que los atributos devueltos por el comando de ddname ? TSO DDNAME. Para ver la lista completa de variables, consulte Variables de sistema TSO de Dialogue Manager.
Si no hay información sobre la variable, ésta incluirá espacios en blanco cuando sea de tipo alfanumérico. Si es de tipo numérico, la variable contendrá ceros.
Variable de sistema TSO |
Descripción |
---|---|
&DDNAME |
Nombre (ddname) de archivo consultado. |
&DSNAME |
Nombre completamente cualificado del conjunto de datos. En conjuntos de datos concatenados, sólo se devuelve el nombre del primer conjunto. |
&DISP |
Disposición: OLD, NEW, MOD o SHR. |
&DEVICE |
DISK, TAPE, TERM o READER-PRINTER. |
&VOLSER |
Número de serie del volumen del disco o cinta. |
&DSORG |
Organización de conjuntos de datos: PS (secuencial), IS (secuencial indexado), PO (con particiones), U (indefinido) o DA (directo). |
&RECFM |
Formato de los registros; por ejemplo, F, FB, V, VB. |
&SECONDARY |
Cantidad especificada para las asignaciones secundarias. |
&ALLOCATION |
Unidad de asignación secundaria: TRACKS, BLOCKS o CYLINDER. |
&BLKSIZE |
Tamaño del bloque. |
&LRECL |
Longitud del registro, en bytes. |
&TRKTOT |
Número total de pistas asignadas actualmente; comprende la asignación principal y secundaria. |
&EXTENTSUSED |
Número total de extensiones asignadas actualmente (máximo de 16). |
&BLKSPERTRK |
El número de bloques (de bytes de BLKSIZE) que se puede escribir en una pista del dispositivo. |
&TRKSPERCYL |
El número de pistas por cilindro del dispositivo. |
&CYLSPERDISK |
El número de cilindros por disco del dispositivo. |
&BLKSWRITTEN |
El número total de bloques en el conjunto de datos, suponiendo que todos los bloques tienen una longitud de BLKSIZE. |
&FOCUSPAGES |
Establecido solamente para los orígenes de datos FOCUS. Este número es el total de páginas de 4096 bytes en el origen de datos. Equivale al número total de páginas mostrado por el comando de nombre de archivo ? FILE. Además, es igual al número más alto de página más alto, mostrado por el comando de nombre de archivo ? FDT. No incluye las páginas de SHADOW ni el directorio. |
1. -? TSO DDNAME &DD.ENTER DDNAME. 2. -IF &DSNAME EQ ' ' GOTO ALLOCATE; -TYPE DATASET &DSNAME ALLOCATED TO &DD -EXIT -ALLOCATE . . .
El proceso es el siguiente:
Para más detalles sobre los comandos y variables de Dialogue Manager, consulte Cómo administrar el flujo de control en una aplicación.
Si intenta emitir el comando -? TSO DDNAME de forma remota en MVS EDA, desde un servidor de WebFOCUS para Windows, aparecerá el siguiente mensaje de error:
(FOC303) CONTROL LINE NOT RECOGNIZED IN FOCEXEC: -? TSO DDNAME MASTER
A la hora de enviar el comando -? TSO DDNAME desde un servidor de Windows a MVS, debe colocar -? TSO DDNAME y un comando -TYPE (para ver los resultados en Windows) en un procedimiento (FOCEXEC), entre -REMOTE BEGIN y - REMOTE END:
-REMOTE BEGIN ex Remote.fex -REMOTE END
El procedimiento Remote.fex, que se ejecuta en MVS y envía lo resultados de vuelta a Windows, debe contener lo siguiente:
-? TSO DDNAME -TYPE &DDNAME &DISP ...
Puede ejecutar Remote.fex desde otro procedimiento o desde la Consola de comandos.
Cómo: |
Puesto que es posible borrar de un modo lógico un origen de datos existente, mediante la emisión de un comando CREATE en su contra, debemos disponer de los medios necesarios para comprobar la existencia de un conjunto de datos del Sistema operativo, antes de la emisión del comando.
? {MVS|TSO} DSNAME datasetname
donde:
Es el nombre del conjunto de datos. Si proporciona únicamente el nombre no cualificado del conjunto de datos, se utilizará el prefijo del perfil para crear un nombre completamente cualificado. No especifique los nombres de los miembros.
-? TSO DSNAME dsname
donde:
Es el nombre del conjunto de datos.
En este caso no hay ningún mensaje de salida. La variable de sistema &RETCODE se encuentra establecida y sus resultados deben comprobarse. Los resultados posibles son éstos:
Valor de &RETCODE | Mensaje/código de WebFOCUS equivalente |
---|---|
0 | (FOC488) El conjunto de datos está en el catálogo: |
4 | (FOC489) El conjunto de datos está en el catálogo, pero no el volumen indicado: |
8 | (FOC490) El conjunto de datos no está en el catálogo: |
Puede utilizar la información de atributos del archivo, devuelta por el comando de ddname ? TSO para determinar el número de registros en el conjunto y estimar la cantidad de espacio disponible en las pistas asignadas actualmente.
Nota: Las estimaciones se obtienen a partir de las siguientes fórmulas, tratándose de aproximaciones que no tienen en cuenta el espacio reutilizado después de que fuese vaciado de forma lógica por los segmentos borrados.
Available pages (without additional extents) = BLKSWRITTEN - FOCUSPAGES BLKSWRITTEN = BLKSPERTRK x TRKTOT
RECSPERBLK = BLKSIZE/LRECL No. of records = BLKSWRITTEN x RECSPERBLK No. of free blocks = (TRKTOT x BLKSPERTRK) - BLKSWRITTEN
Las fórmulas utilizadas para los conjuntos de datos de bloque fijo (archivos SAVE) también son aplicables, por lo general, a los bloqueados de longitud variable (VB). Esto se debe a que los conjuntos de datos VB suelen tener bloques de la misma longitud, aunque su descripción implique lo contrario.
(FOCUSPAGES x 2) + 3
WebFOCUS |