sysVar.errorCode

La variable de sistema sysVar.errorCode recibe un código de estado después de alguno de los siguientes eventos:

Puede utilizar sysVar.errorCode de las siguientes maneras:

sysVar.errorCode se establece en 0 si la invocación de llamada, E/S o función de sistema es satisfactoria.

Las características de sysVar.errorCode son las siguientes:
Tipo primitivo
CHAR
Longitud de datos
8
¿Se restaura siempre el valor después de una sentencia converse?

Para tener una visión general que incluya detalles acerca de sysVar.errorCode, consulte la sección Manejo de excepciones. La lista de valores posibles de sysVar.errorCode se suministra en el apartado Códigos de error de tiempo de ejecución Java de EGL.

Consideraciones de definición

Si está generando código Java, la lista de valores posibles de sysVar.errorCode se suministra en Códigos de error de tiempo de ejecución Java de EGL.

Llamadas remotas en CICS para z/OS

Si un programa generado por EGL en CICS para z/OS llama a un programa de forma remota (y si la sentencia está en un bloque try), sysVar.errorCode recibe uno de los siguientes valores:
00000000
Llamada y retorno satisfactorios
00000204
Nombre de programa no válido
00000207
Identificador de sistema no válido
00000208
Enlace fuera de servicio
ffrrrrrr
Otro error de CICS, donde ff es la representación hexadecimal del byte 0 de EIBFN y rrrrrr es la representación hexadecimal de los bytes 0-2 de EIBRCODE.

Errores de E/S y código COBOL

Si genera código COBOL, el significado del valor de sysVar.errorCode depende del formato de dicho valor:
  • Si sysVar.errorCode está en el formato RSnnnnnn, puede obtener detalles buscando bajo nnnnnn en la sección de códigos de retorno de la publicación IBM Enterprise Developer Server Guide para z/OS.
  • En caso contrario, se aplican las siguientes normas:
    • Para CICS, los caracteres de sysVar.errorCode se derivan del bloque de interfaz CICS EXEC:
      • Los caracteres 1 y 2 de sysVar.errorCode contienen la representación hexadecimal del primer byte de EIBFN
      • Los caracteres 3 a 8 contienen la representación hexadecimal de los bytes 0-2 de EIBRCODE
      Estas reglas también son aplicables al acceso de archivos remotos. Además, si una operación de E/S finaliza con un CICS SYSIDERR (un problema al acceder al archivo remoto), se copia uno de los siguientes valores a los 6 primeros caracteres de sysVar.errorCode:
      06D004
      El nombre no es el de la entrada del sistema
      06D008
      Enlace fuera de servicio
      06D00C
      Nombre desconocido para CICS
    • Para el proceso por lotes de z/OS, las normas para la E/S de archivos son específicas para cada tipo de archivo:
      SEQ
      sysVar.errorCode contiene el valor o valores de clave de estado de COBOL en los 2 primeros caracteres. Los 6 caracteres restantes son ceros.
      SEQRS
      Si una asignación dinámica falla, los 3 primeros 3 de sysVar.errorCode contienen el valor S99 (para SVC 99, asignación dinámica); el byte 4 es el código de retorno de SVC 99 en hexadecimal; y los bytes 5-8 contienen el código de razón de error en hexadecimal.

      Si se produce una condición de fin de archivo durante una operación de lectura, sysVar.errorCode contiene el código de retorno "00000004".

      Si una operación OPEN falla, sysVar.errorCode contiene el código de retorno "00000008".

      Si se produce una anomalía durante una operación de lectura, escritura o cierre, sysVar.errorCode contiene el código de retorno "00000012".

      VSAM
      sysVar.errorCode contiene el valor o valores de clave de estado de COBOL en los 2 primeros caracteres, seguidos de 2 caracteres para el código de retorno de COBOL VSAM (que es el código de comentarios de VSAM); 1 carácter para el código de función de COBOL VSAM (que es el código de componente de VSAM); y 3 caracteres para el código de comentarios de COBOL VSAM (que es el código de razón de VSAM).
      VSAMRS
      Si una asignación dinámica falla, los 3 primeros 3 de sysVar.errorCode contienen el valor S99 (para SVC 99, asignación dinámica); el byte 4 es el código de retorno de SVC 99 en hexadecimal; y los bytes 5-8 contienen el código de razón de error en hexadecimal.

      Si se produce una anomalía durante una operación de abrir o cerrar un archivo, los 2 primeros bytes de sysVar.errorCode contienen el código de error del bloque de control (ACB) del programa VSAM en hexadecimal y los 6 caracteres restantes son ceros.

      En otros casos, los 2 primeros caracteres de sysVar.errorCode son ceros. Esos ceros van seguidos de 2 caracteres para el código de retorno de COBOL VSAM (que es el código de comentarios de VSAM); 1 carácter para el código de función de COBOL VSAM (que es el código de componente de VSAM); y 3 caracteres para el código de comentarios de COBOL VSAM (que es el código de razón de VSAM).

Si establece la opción sysCodes del descriptor de construcción en YES y realiza una operación de E/S en un recurso que no es una base de datos, sysVar.errorCode contendrá un código de retorno específico del tipo de recurso; por ejemplo, será específico de un archivo VSAM. Para interpretar este código, consulte el manual correspondiente al recurso. Sin embargo, si establece esa opción del descriptor de construcción en NO, los códigos de retorno relacionados con archivos son independientes del tipo de recurso.

En relación con el código COBOL, se aplican las siguientes normas:
  • Si establece la opción sysCodes del descriptor de construcción en YES y realiza una operación de E/S en un recurso que no es una base de datos, sysVar.errorCode contendrá un código de retorno específico del tipo de recurso; por ejemplo, será específico de un archivo VSAM. Para interpretar este código, consulte el manual correspondiente al recurso.
  • Sin embargo, si establece esa opción del descriptor de construcción en NO, los códigos de retorno relacionados con archivos son independientes del tipo de recurso.

La tabla siguiente indica algunos de los códigos de estado de archivo COBOL que pueden devolverse, junto con el valor colocado en sysVar.errorCode si genera salida COBOL con la opción del descriptor de construcción sysCodes establecida en NO. También se muestra el valor de error de E/S de EGL que no se ve afectado por el valor en sysCodes.

Código de estado de archivo COBOL (como aparece en sysVar.errorCode cuando sysCodes es YES) Valor de sysVar.errorCode cuando sysCodes es NO Valor de error de E/S de EGL (un blanco en esta columna significa "no aplicable")
00000000, 00000005, 00000007 00000000  
00000002 00000103 duplicate, ioError
00000004 (formato registro var) 00000000  
00000004 (otro) 00000220 format, hardIOError, ioError
00000010, 00000014, 00000046 00000102 endOfFile, ioError
00000022 00000206 ioError, unique
00000023 (inicio) 00000102 endOfFile, ioError
00000023 (otro) 00000205 noRecordFound, ioError
00000024, 00000034 (método de acceso no relativo o clave relativa no 0) 0000025A full, hardIOError, ioError
00000035 00000251 fileNotFound, hardIOError, ioError
00000038 00000218 fileNotAvailable, hardIOError, ioError
00000039, 00000095 00000220 format, ioError
0000009D (sólo COBOL iSeries) 00000381 deadlock, hardIIOError, ioError

La tabla siguiente muestra el valor para sysVar.errorCode cuando el sistema de ejecución devuelve otros códigos de estado de archivos COBOL.

Tipo de petición Valor de sysVar.errorCode cuando sysCodes es NO Valor de error de E/S de EGL
open 00000500 ioError, hardIOError
close o unlock 00000989 ioError, hardIOError
read o start 00000987 ioError, hardIOError
write 00000988 ioError, hardIOError

Ejemplo

  if (sysVar.errorCode == "00000008")
	  exit program;
  end
Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.