Limitaciones y consejos relativos al Kit de utilidades de almacenamiento

En este tema se describen limitaciones, consejos y otras consideraciones relativos al Kit de utilidades de almacenamiento. Si tiene en cuenta estas cuestiones, podrá evitarse problemas. Tenga en cuenta también otras cuestiones que se incluyen en este capítulo.
  • Conjuntos de datos no bloqueados: El Kit de utilidades de almacenamiento permite pulsar el botón Editar JCL en el recuadro de diálogo Crear trabajo por lotes y editar un conjunto de datos ubicado en el entorno del sistema principal. Sin embargo, deberá asegurarse de que nadie accede al conjunto de datos al mismo tiempo que usted, ya que dicho conjunto de datos no está bloqueado durante la sesión de edición. Otro usuario podría editar el conjunto de datos, por ejemplo, en TSO mediante ISPF, durante su sesión de edición. Dicho usuario no vería el mensaje de "conjunto de datos en uso"; si guarda sus cambios antes de que usted guarde los suyos, los últimos se superpondrán a los primeros. Si dicho usuario todavía está editando el conjunto de datos cuando usted intenta guardar sus cambios, dicho intento no funcionará. Los resultados de la sesión de edición pueden ser imprevisibles en función de los casos de ejemplo y las herramientas de edición utilizadas por el otro usuario.
  • Sólo página 037 del código EBCDIC: El editor de JCL proporcionado por OMEGAMON for Storage on z/OS da soporte a únicamente la página 037 del código EBCDIC. La edición o creación del JCL en otras páginas de código como la página 930 del código EBCDIC (en otras palabras, el EBCDIC japonés) no está soportada.
  • Primeros y últimos pasos del Kit de utilidades de almacenamiento: En cada trabajo por lotes, el Kit de utilidades de almacenamiento inserta el primer paso específico de kit de utilidades que configura un supervisor de los pasos del trabajo. El monitor recopila salida de destino de los pasos del trabajo. El Kit de utilidades de almacenamiento también añade un último paso al final del trabajo. El último paso recopila la clase SYSOUT de destino de los pasos anteriores junto con la salida de JES y el código de retorno. También notifica al agente de supervisión la finalización del trabajo. El primer paso específico del kit de utilidades se inserta justo antes de la primera sentencia EXEC, PROC o INCLUDE que se encuentra en el JCL.
    Nota: Si el JCL tiene una sentencia INCLUDE antes de una sentencia EXEC o PROC, el miembro INCLUDE no podrá contener sentencias JCL, como por ejemplo JCLLIB, que deberán preceder el primer paso del trabajo. Puesto que el primer paso del kit de utilidades se inserta antes de INCLUDE, el trabajo por lotes no se llevará a cabo correctamente en este caso.
  • Utilización de una sentencia nula para marcar el final de un trabajo: Al utilizar el recuadro de diálogo Crear trabajo por lotes para ejecutar el JCL definido por el usuario, el Kit de utilidades de almacenamiento genera una copia del JCL al cual añade un primer y un último pasos específicos del kit de utilidades. Si el JCL termina con la sentencia nula de JCL la cual denota el final del trabajo,
    //
    dicha sentencia se eliminará del JCL generado, ya que el trabajo no finalizará hasta que se ejecute el último paso específico del kit de utilidades.
  • Procesamiento condicional: No especifique ningún parámetro COND en la tarjeta JOB ni en ninguna sentencia EXEC que pueda impedir la ejecución de los pasos del Kit de utilidades de almacenamiento insertados en el JCL. Si utiliza el parámetro COND o las sentencias IF/THEN/ELSE/ENDIF, deberá asegurarse de que el primer y el último pasos del Kit de utilidades de almacenamiento se ejecutan.
  • Ningún soporte para varios trabajos en el JCL definido por el usuario: Al utilizar el recuadro de diálogo Crear trabajo por lotes para ejecutar el JCL definido por el usuario, el JCL no podrá incluir varios trabajos. El Kit de utilidades de almacenamiento no admite este tipo de JCL. Los resultados son imprevisibles.
  • Tarjeta JOB:
    • Si utiliza el recuadro de diálogo Crear trabajo por lotes para ejecutar el JCL definido por el usuario, el trabajo por lotes se someterá mediante la tarjeta JOB JCL de sustitución que se especifique en el separador JCL. De este modo, se altera temporalmente una tarjeta JOB que puede estar presente en el JCL. Si no especifica una tarjeta JOB JCL de sustitución, podrá utilizar la tarjeta JOB específica de la instalación.
    • No especifique ninguna opción CLASS ni TYPRUN en la tarjeta JOB que se limite a copiar o examinar el trabajo. Debido a que el trabajo por lotes no se ejecuta, la solicitud de acción permanecerá en el estado EN EJECUCIÓN. Deberá cancelar la solicitud para liberar la hebra y los recursos asociados con ésta y para que salga del estado EN EJECUCIÓN.
    • No especifique ningún parámetro COND en la tarjeta JOB que pueda impedir la ejecución del primer y último pasos del Kit de utilidades de almacenamiento insertados en el JCL.
    • Al solicitar la copia de la salida de JES para su visualización posterior, asegúrese de que MSGLEVEL de la tarjeta JOB está establecido en el nivel de salida que desee.
    • Al especificar la tarjeta JOB, considere asignarle un nombre de trabajo exclusivo. Si el nombre coincide con un trabajo por lotes que se está ejecutando en el sistema z/OS, es posible que haya un retraso en el trabajo hasta que finalice la ejecución del mismo. Para evitar esto, asigne un nombre exclusivo al trabajo.
  • Utilización de un PROC (proceso) en el JCL definido por el usuario: Si utiliza el recuadro de diálogo Crear trabajo por lotes, podrá ejecutar el JCL que ejecuta un procedimiento; sin embargo, es posible que el Kit de utilidades de almacenamiento no pueda copiar correctamente el contenido de los archivos asociados con los pasos de dicho procedimiento:
    • El procedimiento puede darse instream o en una biblioteca de procedimientos privados o del sistema. Si utiliza una biblioteca de procedimientos privados, deberá asegurarse de que la sentencia JCLLIB precede al primer paso del Kit de utilidades de almacenamiento.
    • Puede solicitar que los archivos a los que se hace referencia en el procedimiento se copien para su visualización posterior, aunque con determinadas limitaciones:
      • El nombre del paso es el del JCL que ejecuta el procedimiento. No se pueden especificar nombres de paso del procedimiento en sí.
      • Si el procedimiento consta de un solo paso, se devolverá el contenido de los archivos solicitados.
      • Si el procedimiento contiene varios pasos, cada paso del procedimiento devolverá el contenido de un conjunto de datos o nombre de DD solicitado que haga referencia a un conjunto de datos (es decir, varias veces). El contenido de un nombre de DD que se direcciona a SYSOUT es devuelto para cada paso en el que se define el nombre de DD de SYSOUT (es decir, una o varias veces).
  • Utilización de nombres de paso en el JCL definido por el usuario: No incluye pasos en el JCL definido por el usuario sin nombres de paso, en el caso de que tenga la intención de copiar archivos para su posterior visualización que estén asociados con dichos pasos. El Kit de utilidades de almacenamiento requiere un nombre de paso.
  • /*XMIT: No utilice la sentencia /*XMIT en ningún JCL. El Kit de utilidades de almacenamiento no la admitirá. Los resultados son imprevisibles.
  • DYNAMNBR: Si somete el JCL definido por el usuario que asigna conjuntos de datos, tenga en cuenta que el Kit de utilidades de almacenamiento también asignará conjuntos de datos en cada paso. En caso necesario, es posible que tenga que utilizar el parámetro DYNAMNBR en la sentencia EXEC para permitir los conjuntos de datos y 3 conjuntos de datos del Kit de utilidades de almacenamiento.
  • Errores JCL: El último paso del Kit de utilidades de almacenamiento añadido al final de cada trabajo por lotes notifica al agente de supervisión cuando finaliza el trabajo por lotes. Cuando esto ocurre, se actualiza la solicitud de acción pendiente de finalización con los resultados del trabajo por lotes. Si el último paso del trabajo por lotes no se ejecuta, por ejemplo, el trabajo por lotes no se ha llevado a cabo correctamente y ha producido un error JCL o un procesamiento condicional ha omitido el último paso, la solicitud de acción permanecerá en ejecución. Si determina que una solicitud de acción permanece en el estado EN EJECUCIÓN demasiado tiempo, deberá comprobar el estado del trabajo por lotes en el sistema z/OS. Si el trabajo ha producido un error de modo que se ha impedido la ejecución del último paso, deberá cancelar la ejecución de la solicitud de acción en Tivoli Enterprise Portal. De este modo, se libera la hebra y los recursos asociados con la solicitud y sale del estado EN EJECUCIÓN. A continuación, puede determinar el motivo de la anomalía del trabajo, corregir el error y volver a someter la solicitud.
  • Códigos de retorno: Determinados códigos de retorno, que suelen emparejarse con un estado, son establecidos por el Kit de utilidades de almacenamiento cuando detecta un error al procesar una solicitud de acción. En la tabla siguiente, se enumeran los códigos de retorno comunes y su estado correspondiente:
    Tabla 1. Códigos de retorno del Kit de utilidades de almacenamiento comunes
    Código de retorno Estado
    117 Este estado suele indicar que el JCL supera los 72 caracteres cuando se aplican las variables de sustitución. También puede indicar otros errores relacionados con el JCL, como la falta de una tarjeta JOB o que otro conjunto de datos que requiere sustitución de variables excede los 80 caracteres cuando se aplican las variables de sustitución.
    119 El servidor de datos de usuario ha finalizado de forma anormal o ha finalizado el trabajo por lotes; sin embargo, el Kit de utilidades de almacenamiento no puede determinar el código de retorno.
    121 Autorización anómala.
    123 Se ha producido un error del conjunto de datos, como por ejemplo cuando se indica que el conjunto de datos que contiene el JCL no existe. Los mensajes del RKLVLOG de Tivoli Enterprise Monitoring Server pueden resultar de utilidad para analizar esta situación.
    125
    La ejecución de la solicitud de acción se ha detenido porque la solicitud de acción estaba asociada con un conjunto de grupos que no existían o estaban vacíos en el momento de la ejecución. El estado que se muestra en el espacio de trabajo Resumen de resultado está establecido en uno de los siguientes valores:
    NonexistentGroups
    Indica que no existe ninguno de los grupos asociados con la solicitud.
    EmptyGroups
    Indica que todos los grupos asociados con la solicitud estaban vacíos.
    BadGroups
    Indica que una combinación de errores de falta de grupo o de grupo vacío ha afectado a todo el conjunto de grupos. Este valor de estado también puede indicar que se ha detectado algún error al procesar los grupos. Revise los mensajes de RKLVLOG para ayudarle a analizar los resultados.
    Nota: Es posible que los grupos estén vacíos porque se está ejecutando o todavía no se ha ejecutado una recopilación. Si es así, vuelva a intentar la solicitud al finalizar la recopilación.
    Si ve un código de retorno que no conoce, es recomendable que lo convierta a su equivalente hexadecimal, ya que es posible que el código indique una terminación anormal del trabajo por lotes. Por ejemplo, el código de retorno 193 es el mismo que x'0C1'.
  • Sustitución de variables y límites de línea: Las variables de sustitución definidas a través del Kit de utilidades de almacenamiento se sustituyen cuando se ejecuta la solicitud de acción. El Kit de utilidades de almacenamiento crea conjuntos de datos temporales para incluir las sentencias actualizadas.
    Existen dos categorías básicas de conjuntos de datos (JCL y Otros) que se actualizan mediante las variables de sustitución. El Kit de utilidades de almacenamiento las procesa del modo siguiente:
    • Conjunto de datos JCL: La sustitución de variables se aplica a todos los componentes del trabajo por lotes, incluida la tarjeta JOB, el JCL adicional, los pasos específicos del kit de utilidades y el cuerpo del JCL junto con cualquier conjunto de datos instream. El Kit de utilidades de almacenamiento interpreta la columna 72 como un carácter de continuación y conserva su contenido. Los datos entre las columnas 2 y 71 pueden desplazarse a izquierda o derecha en función del tamaño del nombre de la variable y su valor de sustitución. Si los datos se desplazan más allá de la columna 71, la solicitud será anómala. El código de retorno de la solicitud se establece en 117 y el estado de la ejecución será JCL no válido. Deberá llevar a cabo las acciones siguientes:
      • Verifique que las variables de sustitución y los valores son correctos y que no afectarán de modo imprevisto a los componentes del trabajo por lote.
      • Corrija el JCL para asegurarse de que ninguna línea excede el límite.
      Es posible que la solicitud de acción produzca un error y muestre el código de retorno 117 si alguna de las líneas de los componentes originales del trabajo por lotes excede los 80 caracteres.
    • Otro conjunto de datos: El trabajo que contiene las variables de sustitución aplica la sustitución de variables a todos los registros de los demás conjuntos de datos que especifique según convenga. El kit de utilidades no realiza ninguna suposición sobre el contenido del conjunto de datos y considera que cada línea, desde la columna 1 a la 80, es una línea de datos. La sustitución de variable puede provocar que los datos de las columnas 2 a 80 se desplacen a la izquierda o derecha, en función del tamaño de los nombres de variable y sus valores. Si los datos se desplazan más allá de la columna 80 (sin incluir los espacios finales), la solicitud será anómala. El código de retorno de la solicitud se establece en 117 y el estado de la ejecución será JCL no válido. Deberá llevar a cabo las acciones siguientes:
      • Verifique que las variables de sustitución y los valores son correctos y que no afectarán de modo imprevisto al contenido del conjunto de datos.
      • Corrija el contenido del conjunto de datos para asegurarse de que ninguna línea excede el límite.
  • Validación del JCL: Al grabar JCL para utilizarlo en el recuadro de diálogo Crear trabajo por lotes, compruebe siempre la validez de las sentencias antes de someter el trabajo por lotes. Por ejemplo, al editar el JCL en el recuadro de diálogo Editar JCL, considere si las longitudes de línea excederán el límite de 72 bytes una vez que se haya llevado a cabo la sustitución de variables. Cuando las variables de sustitución sean reemplazadas en el JCL durante el tiempo de ejecución, las líneas del JCL resultantes que contengan más de 72 bytes impedirán que el JCL sea sometido. Se mostrará el estado de JCL no válido correspondiente a la solicitud de acción en el espacio de trabajo Resumen de resultado.
  • Nombres de variable reservados: El Kit de utilidades de almacenamiento reserva los nombres de variable siguientes. No puede utilizar dichos nombres para variables propias:
    %%KS3TK_CMD_DSN%%
    %%KS3TK_HSM%%
    %%KS3TK_DYNAMNBR%%
  • Conjuntos de datos calificados al completo necesarios para el trabajo que también contienen variables de sustitución: Al utilizar el recuadro de diálogo Crear trabajo por lotes, puede especificar conjuntos de datos adicionales que contengan variables de sustitución. El Kit de utilidades de almacenamiento crea un conjunto de datos temporal con las actualizaciones y reemplaza el nombre del conjunto de datos original con el nombre temporal en su copia del JCL. Para poder reemplazar los nombres, el JCL debe contener referencias a los conjuntos de datos; no pueden formar parte de los procedimientos catalogados ni de los miembros INCLUDE que pueden ser utilizados por el JCL.
  • Salida de JES:
    • Las técnicas que el Kit de utilidades de almacenamiento utiliza para recopilar registros JES y conjuntos de datos de salida gestionados por el sistema (SYSOUT) requieren disponer de un sistema operativo z/OS que utilice JES2.
    • Debido a que el último paso del Kit de utilidades de almacenamiento recopila la salida de JES antes de que finalice el trabajo por lotes, es posible que parte de los mensajes que normalmente aparecen en los registros JES, como el inicio del trabajo (IEF375I) o la finalización del trabajo (IEF376I), no se incluyan en la salida de JES.
  • Mandatos de sistema principal:
    • Los mandatos de la consola de sistema principal se someten mediante una interfaz de trabajo por lotes SDSF. El mandato debe ir precedido de una barra inclinada (/), como en este ejemplo, lo que cancela un usuario de TSO (ID_usuario_tso):
      /C U=ID_usuario_tso 
    • La salida de los mandatos de la consola del sistema principal no se devuelve porque la ejecución del mandato no está sincronizada con la ejecución del trabajo por lotes.
    • Debido a que la ejecución del mandato no está sincronizada con la ejecución del trabajo por lotes, el código de retorno asociado con la solicitud de acción reflejará que el mandato se ha sometido a la interfaz de trabajos por lotes SDSF. No reflejará la ejecución del mandato en sí.
    • Debido a que el Kit de utilidades de almacenamiento utiliza SDSF, su sistema operativo z/OS deberá utilizar JES2.
  • DASD compartido: Los conjuntos de datos temporales creados por el Kit de utilidades de almacenamiento para contener el JCL generado, el conjunto de datos de resultados y otros archivos se comparten entre el kit de utilidades y el trabajo por lotes. Puesto que el trabajo por lotes puede ejecutarse en un sistema z/OS en SYSPLEX diferente de donde se ejecuta el agente de supervisión, los conjuntos de datos temporales deberán ser creados en un DASD que se comparta entre los sistemas. La instalación puede controlar la ubicación de los conjuntos de datos temporales mediante opciones en PARMGEN. Estas opciones también controlan la ubicación de los conjuntos de datos creados mediante la opción Editar JCL en el recuadro de diálogo Crear trabajo por lotes.

    Además, al utilizar el recuadro de diálogo Crear trabajo por lotes, se especifica el conjunto de datos que contiene el JCL que se desea someter y, opcionalmente, se especifican los conjuntos de datos que necesita el trabajo que también contiene las variables de sustitución. Estos conjuntos de datos deben ser catalogados y ubicados en DASD de una línea accesible al sistema z/OS en el que se ejecuta el agente de supervisión.

  • Biblioteca de carga con autorización APF en sistemas remotos: El Kit de utilidades de almacenamiento inserta un primer y un último paso en cada trabajo por lotes. Estos pasos ejecutan el código del kit de utilidades que se encuentra en la biblioteca de carga TKANMODL del entorno de tiempo de ejecución de la instalación. La biblioteca de carga debe contar con autorización APF. Si el trabajo por lotes se ejecuta en el mismo sistema z/OS que el agente de supervisión, la biblioteca de carga ya contará con autorización APF. Si el trabajo por lotes se ejecuta en otro sistema z/OS de SYSPLEX, deberá asegurarse de que la biblioteca de carga de dicho sistema también cuenta con autorización APF. La biblioteca de carga también debe ubicarse en un DASD compartido entre los sistemas.
  • Caracteres no imprimibles: Debe asegurarse de que los archivos que especifique como archivos cuyo contenido debe copiarse para su posterior visualización en el recuadro de diálogo Crear trabajo por lotes o la salida de un mandato del recuadro de diálogo Emitir mandato contendrán sólo datos de caracteres. Si la salida de los archivos o del mandato contiene caracteres no imprimibles (por ejemplo, datos hexadecimales), es posible que dichos caracteres no se muestren correctamente en el espacio de trabajo Detalles de resultado del Kit de utilidades de almacenamiento.
  • Almacenamiento de conjuntos de datos de punto de comprobación agotado: Al someter una solicitud de acción, la información sobre la solicitud se almacenará en la base de datos de punto de comprobación. Cuando la solicitud finalice, también se almacenarán los resultados de la ejecución. La información almacenada en la base de datos de punto de comprobación incluye elementos como los siguientes:
    • Nombre y descripción de la solicitud
    • Hora en que se ha sometido la solicitud y hora en que se ha completado
    • Recursos asociados con la solicitud
    • Código de retorno de la ejecución de la solicitud
    • Salida producida por la ejecución de la solicitud, que puede incluir:
      • Salida del mandato
      • Archivos copiados para su posterior visualización
      • JCL sometido
      • Archivos JES producidos por el trabajo por lotes.
    La base de datos de punto de comprobación del Kit de utilidades de almacenamiento se asigna e inicia cuando se crea el entorno de tiempo de ejecución. Esta base de datos es de tamaño fijo. Asegúrese de que existe espacio suficiente para las actividades de la base de datos. De lo contrario, es posible que le falte espacio. Puede eliminar las solicitudes y los resultados que no necesite. También puede utilizar opciones del separador General de los recuadros de diálogo del Kit de utilidades de almacenamiento para ayudarle a gestionar los resultados.
    Nota: Si los resultados de la ejecución de una solicitud de acción superan el espacio libre disponible en la base de datos de punto de comprobación, la salida se perderá por completo. El mensaje de error KS3T830E SERVICE CHECKPOINT DATASET STORAGE EXHAUSTED del RKLVLOG del Tivoli Enterprise Monitoring Server indica esta condición. En la publicación IBM® OMEGAMON for Storage on z/OS: Troubleshooting Guide encontrará más información sobre esta cuestión.