sexta-feira, 1 de junho de 2012

ABENDS Sistema Operacional


 ------------------------------------------------------------------------------
                              ABEND 001
 -------------------------------------------------------------------------------

       PROBLEMA:  A DCB (Data Control Block) do arquivo no programa nao combina
                  com a DCB definda no JCL. Tentou ler arquivo mas o mesmo esta
                  fechado.

       SOLUCAO: Verifique o tamanho do arquivo definido no JCL e  certifique-se
                da clausula BLOCK CONTAINS 0 RECORDS no programa.  Verifique  a
                logica do programa para nao ler arquivo fechado.

 -------------------------------------------------------------------------------
                             ABEND 002
 -------------------------------------------------------------------------------

       PROBLEMA:  Ler ou gravar registro com tamanho superior a 32.768 bytes ou
                  tamanho do registro variavel invalido.

       SOLUCAO:   Rever o tamanho dos registros lembrando que os limites sao:
                  registro menor que 32.768 e maior que 4 BYTES.

 -------------------------------------------------------------------------------
                             ABEND 005
 -------------------------------------------------------------------------------

       PROBLEMA:  Erro na posicao dos comandos de SORT.

       SOLUCAO:   Os comandos comecam na coluna 2.

 -------------------------------------------------------------------------------
                            ABEND 013
 -------------------------------------------------------------------------------

       PROBLEMA:  AS INFORMACOES DA DCB DO ARQUIVO NAO ESTA EM ACORDO COM AS DO
                  PROGRAMA (EX. TAMANHO DE REGISTRO OU DE BLOCO).

       SOLUCAO:   ADEQUAR A DCB DO PROGRAMA OU DO ARQUIVO PARA  QUE  SE  TORNEM
                  COMPATIVEIS.

 -------------------------------------------------------------------------------
                             ABEND 031
 -------------------------------------------------------------------------------

       PROBLEMA:  Tentativa de gravacao de registro com arquivo cheio ou  chave
                  duplicada.

       SOLUCAO:   Verificar a situacao do arquivo.

 -------------------------------------------------------------------------------
                            ABEND 039
 -------------------------------------------------------------------------------

       PROBLEMA:  ARQUIVO INDEXADO REFERENCIADO EM PROGRAMA SEM A CLAUSULA   DE
                  PROCEDIMENTOS DE FINAL DE REGISTROS (EODAD, AT END).

       SOLUCAO:   REVER DENTRO DO PROGRAMA OS PROCEDIMENTOS DE FINAL DE ARQUIVO

 -------------------------------------------------------------------------------
                             ABEND 03A
 -------------------------------------------------------------------------------

       PROBLEMA:  Parametro REGION insuficiente.

       SOLUCAO:   Aumentar o parametro REGION no JCL.

 -------------------------------------------------------------------------------
                             ABEND 03B
 -------------------------------------------------------------------------------

       PROBLEMA:  A DCB (Data Control Block) do arquivo esta mal definida  para
                  arquivo indexado.

       SOLUCAO:   Verifique os parametros KEYLEN, LRECL e BLKSIZE.

 -------------------------------------------------------------------------------
                             ABEND 046
 -------------------------------------------------------------------------------

       PROBLEMA:  Area de trabalho em disco esta insuficiente.

       SOLUCAO:   Reavalie as areas de trabalho.

 -------------------------------------------------------------------------------
                             ABEND 061
 -------------------------------------------------------------------------------

       PROBLEMA:  Arquivo de leitura vazio.

       SOLUCAO:   Reavalie a logica do sistema.

 -------------------------------------------------------------------------------
                             ABEND 063
 -------------------------------------------------------------------------------

       FALTA CARTAO SYSOUT

 -------------------------------------------------------------------------------
                            ABEND 071
 -------------------------------------------------------------------------------

       PROBLEMA:  Erro de logica no programa.

       SOLUCAO:   Verifique integridade das SECTIONs no programa.

 -------------------------------------------------------------------------------
                             ABEND 0C1
 -------------------------------------------------------------------------------

       PROBLEMA: O PROGRAMA TENTOU EXECUTAR UM COMANDO INVALIDO.

       SOLUCAO:  VERIFIQUE SE:
                 - TODOS OS ARQUIVOS ESTAO DEVIDAMENTE ALOCADOS NO STREAM;
                 - TODOS OS SUBPROGRAMAS FORAM LINKEDITADOS CORRETAMENTE;
                 - NAO HA ESTOURO DE TABELA (INVASAO DE AREA DE WORK);

 -------------------------------------------------------------------------------
                             ABEND 0C2
 -------------------------------------------------------------------------------

       PROBLEMA: O PROGRAMA TENTOU EXECUTAR UMA INSTRUCAO PRIVILEGIADA MAS  ELE
                 NAO ESTA EM UMA BIBLIOTECA AUTORIZADA.

       SOLUCAO:  LINKEDITAR O PROGRAMA COM "AC=1" EM UMA BIBLIOTECA AUTORIZADA.
                 EX.: SYSD.ROTLIB    SYSBR.SUBRLIB

 -------------------------------------------------------------------------------
                             ABEND 0C3
 -------------------------------------------------------------------------------

       PROBLEMA: FOI EXECUTADO UMA INSTRUCAO EX ATRAVES DE UMA OUTRA  INSTRUCAO
                 EX.

       SOLUCAO:  REVEJA A LOGICA DO PROGRAMA.

 -------------------------------------------------------------------------------
                             ABEND 0C4
 -------------------------------------------------------------------------------

       PROBLEMA: OCORREU UMA INVASAO DE MEMORIA FORA DO PROGRAMA.

       SOLUCAO:  REVEJA:
                 - O TAMANHO DO REGISTRO DO ARQUIVO E SUA AREA NO PROGRAMA;
                 - VERIFIQUE UM I/O EM UM ARQUIVO MAL ABERTO;
                 - UTILIZACAO INDEVIDA DAS AREAS DE FD (ARQUIVO FECHADO);
                 - CONTEUDO INDEVIDO EM ALGUM INDEXADOR.

       Obs.: p/0c4 no ZD799A, o tamanho do bloco foi superior a 32760.

 -------------------------------------------------------------------------------
                             ABEND 0C5
 -------------------------------------------------------------------------------

       PROBLEMA: OCORREU UMA INVASAO DE MEMORIA NO MESMO PROGRAMA.

       SOLUCAO:  PROBLEMAS PROVAVEIS:
                 - CONTEUDO INDEVIDO EM ALGUM INDEXADOR (ESTOURO DE TABELA);
                 - GOTO DENTRO DE UM PERFORM PARA FORA DELE;
                 - OPEN/CLOSE EM ARQUIVO JA ABERTO/FECHADO;
                 - SUBSCRIPT OU INDEX EXCEDU O SEU VALOR MAXIMO, INDEX-CELLS.

 -------------------------------------------------------------------------------
                             ABEND 0C6
 -------------------------------------------------------------------------------

       PROBLEMA: Faltaram cartoes jcl ou algum problema de tabela.
       1 - CARTOES DE CONTROLE FORA DE ORDEM
       2 - ESTOURO DE TABELA
       3 - ERRO PGM MACRO 'CONSISTE' USA REG. 2 E NAO PODE SER U
           PELO PROGRAMA
       4 - FALTOU CARTOES DE CONTROLE JCL.
       5 - LEU ARQUIVO COM TAMANHO MAIOR DO QUE A DEFINICAO NO P
       6 - INDEX EXCEDEU O VALOR MAXIMO.
       7 - PROCEDURE ERRADA (PROCEDURE EXECUTADA ATRAVES DE UM P
       8 - INDEX COM VALOR INICIAL ERRADO.
       9 - TENTATIVA DE LEITURA DE UM ARQUIVO FECHADO POR STEL
           (INDEXADO)
       10 - UM 'SUBSCRIPT' OU 'INDEX' EXCEDEU SEU VALOR MAXIMO ES
            AS INSTRUCOES DO PROGRAMA OU AREAS DO COMPILADOR COBO
       11 - CODIFICACAO IMPROPRIA DE UMA 'PROCEDURE' QUE FOI    E
            ATRAVES DE UM 'PERFORM'. VERIFIQUE SE NAO FOI CODIFIC
            SAIDA IMPROPRIA DE UMA PROCEDURE QUE SOFREU UM 'PERFO
       12 - FOI DADO UM 'CLOSE' EM UM ARQUIVO FECHADO.
       13 - VALOR INICIAL DE UM 'INDEX' OU 'SUBSCRIPT' INVALIDO.

 -------------------------------------------------------------------------------
                            ABEND 0C7
 -------------------------------------------------------------------------------

       PROBLEMA:  EM UMA OPERACAO ENVOLVENDO DOIS CAMPOS NUMERICOS,  UM  DESSES
                  CAMPOS ESTA COM CONTEUDO INVALIDO (NAO NUMERICO).

       SOLUCAO:   VERIFICAR NA PSW QUAL FOI A INSTRUCAO QUE OCASIONOU  O  ABEND
                  E VERIFICAR O CONTEUDO DOS CAMPOS ENVOLVIDOS.

 -------------------------------------------------------------------------------
                            ABEND 0C8
 -------------------------------------------------------------------------------

       PROBLEMA:  ESTOURO DE OPERACAO DE PONTO FIXO.

       SOLUCAO:   REDIMENSIONAR O CAMPO RECEPTOR DA OPERACAO.

 -------------------------------------------------------------------------------
                             ABEND 0CB
 -------------------------------------------------------------------------------

       PROBLEMA:  EM UMA OPERACAO DE DIVISAO, O CAMPO DIVISOR ESTA COM CONTEUDO
                  ZERADO.
       SOLUCAO:   PROBLEMA DE LOGICA.

 -------------------------------------------------------------------------------
                             ABEND 106
 -------------------------------------------------------------------------------

       PROBLEMA:  INSUFICIENCIA DE AREA PARA PROCESSAMENTO.

       SOLUCAO:   COLOQUE OU AUMENTE O PARAMETRO REGION NO JCL.

 -------------------------------------------------------------------------------
                             ABEND 122
 -------------------------------------------------------------------------------

       PROBLEMA:  JOB CANCELADO PELO OPERADOR.

       SOLUCAO:   VERIFIQUE SE O JOB NAO ESTAVA IMPACTANDO O AMBIENTE OU SE   O
                  PROGRAMA NAO ESTAVA EM LOOP.

 -------------------------------------------------------------------------------
                             ABEND 137
 -------------------------------------------------------------------------------

       - VERIFIQUE CODIGO DE RETORNO (RETURN CODE)
         04  -  ERRO DE I/O QDO GRAVAVA O LABEL DE FIM DE VOLUME
         08  -  ERRO DE I/O QDO POSICIONAVA O VOLUME PARA PROCES
         0C  -  ERRO DE I/O AO LER O TRAILLER LABEL
         10  -  ERRO DE I/O AO SE POSICIONAR FITA NO FINAL DO AR
         14  -  ERRO DE I/O AO LER HEADER LABEL
         18  -  ERRO DE I/O AO POSICIONAMENTO NO PRIMEIRO REGIST
         1C  -  LEITURA DE TRAILLER LABEL INVALIDO DURANTE PROCE
         20  -  FOI LIDO HEADER LABEL INVALIDO DURANTE O PROCESS

         NO CASO DE HEADER OU TRAILER LABEL INVALIDO ( 1C E 20) LIS
         SEUS CONTEUDOS PARA CERTIFICAR-SE DOS ERROS. R2 = DCB, R4=

 -------------------------------------------------------------------------------
                            ABEND 1B0
 -------------------------------------------------------------------------------

       1 - GDG DO ARQUIVO DE LEITURA OU GRAVACAO NAO FOI CRIA

 -------------------------------------------------------------------------------
                             ABEND 203
 -------------------------------------------------------------------------------

       PROBLEMA:  EM UMA OPERACAO DE DIVISAO, O CAMPO DIVISOR ESTA COM CONTEUDO
                  ZERADO.
       SOLUCAO:   PROBLEMA DE LOGICA.

 -------------------------------------------------------------------------------
                             ABEND 213
 -------------------------------------------------------------------------------

       PROBLEMA:  O ARQUIVO ESPECIFICADO NAO ESTA DEVIDAMENTE CRIADO.

       SOLUCAO:   VERIFIQUE SE O ARQUIVO ESTA DEVIDAMENTE CATALOGADO  E  CONTEM
                  NORMALMENTE OS SEUS REGISTROS.  CASO NEGATIVO,  RECONSTRUA  O
                  ARQUIVO.

 -------------------------------------------------------------------------------
                             ABEND 214
 -------------------------------------------------------------------------------

       OCORREU ERRO DURANTE EXECUCAO DE UMA INSTRUCAO DE CLOSE
       PARA UM ARQUIVO EM FITA. REPROCESSAR.

 -------------------------------------------------------------------------------
                             ABEND 222
 -------------------------------------------------------------------------------

       PROBLEMA:  JOB CANCELADO PELO OPERADOR (S/DUMP).

       SOLUCAO:   VERIFIQUE SE O JOB NAO ESTAVA IMPACTANDO O AMBIENTE OU SE   O
                  PROGRAMA NAO ESTAVA EM LOOP.

 -------------------------------------------------------------------------------
                            ABEND 237
 -------------------------------------------------------------------------------

       - VERIFIQUE CODIGO DO RETURN CODE :
         04 - CONTADOR DE BLOCOS DA DCB ESTA DIFERENTE
              DO VALOR DO TRAILLER
         08 - NESSE CASO ESTAVA SENDO PROCESSADO UM  ARQUI
              COM MAIS DE UM VOLUME. QUANDO ESTAVA SENDO P
              CESSADO O HEADER LABEL DE UM VOLUME, SENDO
              TE NAO O PRIMEIRO, O SISTEMA DETECTOU QUE
              DSNAME CONTIDO NO LABEL ERA DIFERENTE DO  CA
              TAO DD. VERIFIQUE SE O VOLUME SOLICITADO E
              CORRETO. NO CASO DO HEADER LABEL CONTER
              DSNAME ERRADO COPIE O ARQUIVO DESSE VOLUME P
              RA OUTRO VOLUME COM O DSNAME DESEJADO.

 -------------------------------------------------------------------------------
                            ABEND 254
 -------------------------------------------------------------------------------

       FOI IMPOSSIVEL ABRIR UM ARQUIVO REQUERIDO
       PARA CALL AO(S) DB(S). FOI EMITIDO STATUS
       CODE AI.   VERIFICAR NA MENSAGEM DFS0730I
       QUAL A RAZAO E CORRIGIR.

 -------------------------------------------------------------------------------
                            ABEND 295
 -------------------------------------------------------------------------------

       - ERRO NA SYSOUT
       - ABERTURA DE ARQUIVO COM INPUT PARA GRAVAR OU VICE-VERSA

 -------------------------------------------------------------------------------
                            ABEND 306
 -------------------------------------------------------------------------------

       Problema: O programa ou subprograma chamado estava em biblioteca protegi
                 da de leitura pelo RACF.

       Solucao: Verifique se voce pode acessar o modulo ou se o  modulo  existe
                em uma biblioteca que voce possa acessar.

 -------------------------------------------------------------------------------
                             ABEND 313
 -------------------------------------------------------------------------------

       - VOLUME ERRADO  (ARQUIVO DE I/O)
       - UNIT ERRADO    (ARQUIVO DE I/O)

 -------------------------------------------------------------------------------
                             ABEND 314
 -------------------------------------------------------------------------------

       04 - ARQUIVO DELETADO PELA ROTINA DE DELECAO AUTOMATICA

 ------------------------------------------------------------------------------
                            ABEND 322
 ------------------------------------------------------------------------------

       PROBLEMA:  JOB CANCELADO PELO SISTEMA.
                  O TEMPO DETERMINADO AO JOB FOI INSUFICIENTE DEVIDO A CARGA DE
                  PROCESSAMENTO OU A PROBLEMAS DE LOGICA (LOOP).

       SOLUCAO:   REAVALIE A CARGA DE MAQUINA OU VERIFIQUE O PROGRAMA.

 -------------------------------------------------------------------------------
                             ABEND 337
 -------------------------------------------------------------------------------

       - ARQUIVO SEM EODAD OU AT END ( O ERRO OCORREU QUANDO FOI LI
         ARQUIVO ATE O FIM E NAO FOI ENCONTRADA A ROTINA DE FIM DE
         VO (EODAD). EM ASSEMBLER O ENDERECO DESSA ROTINA E   CODIF
         NA MACRO 'DCB'. EM COBOL PELA CLAUSULA 'AT END'.

 -------------------------------------------------------------------------------
                            ABEND 400
 -------------------------------------------------------------------------------

       - FALTOU O CARTAO SYSOUT PARA O PROGRAMA

 -------------------------------------------------------------------------------
                             ABEND 413
 -------------------------------------------------------------------------------

       - PROBLEMA NA FITA - FALTOU A INICIALIZACAO
       - VERIFIQUE O CODIGO DE RETORNO (RETURN CODE) :

         04 - UNIDADE ESPECIFICADA NAO DISPONIVEL
         08 - ERRO NO POSICIONAMENTO DA FITA
         0C - ERRO NA LEITURA DO LABEL DA FITA
         10 - ERRO NA GRAVACAO DO TAPE MARK
         14 - ERRO NA GRAVACAO DO TRAILLER LABEL
         18 - ARQUIVO DE ENTRADA COM VOL=SER
         1C - VOL SEQUENCE MAIOR QUE VOLUMES DO ARQUIVO
         20 - ERRO DE I/O QUANDO NA LEITURA DE VOLUME EM DISCO
         24 - DENSIDADE ESPECIFICADA NA DCB NAO CONFERE COM  A
              DENSIDADE DA UNIDADE ESPECIFICADA
         34 - VOL DE UM DOS ARQUIVOS ESTA ERRADO

 -------------------------------------------------------------------------------
                             ABEND 476
 -------------------------------------------------------------------------------

       PROBLEMA: O CALL DLI NAO INCLUI UM ENDERECO DE PCB VALIDO.

       SOLUCAO: VERIFIQUE SE TODAS AS PCBS REFERENCIADAS NA PSB ESTA NO COMANDO
                "ENTRY DLITCBL" DO PROGRAMA COBOL. OBS.: NAO ESQUECA DA I/O PCB
                IDENTIFICADA QUANDO UTILIZADO O COMANDO "CMPAT=YES" NA PSB.

 -------------------------------------------------------------------------------
                             ABEND 513
 -------------------------------------------------------------------------------

       ESSE CODIGO VEM ACOMPANHADO DA MENSAGEM 'IEC146I' QUE CO
       NOME DO JOB, NOME DO STEP, DDNAME, ENDERECO DA UNIDADE D
       VOL=SER, DSNAME E RETURN CODE QUE E IGUAL A 04

       O ERRO PODE TER SIDO CAUSADO POR ALOCACAO DE UNIDADE DE
       QUE JA CONTEM UMA FITA PROCESSADA, DEVIDO A COLOCACAO NO
       RAMETRO UNIT O ENDERECO DE UMA UNIDADE ESPECIFICA. COMO
       CAO CODIFIQUE UMA UNIDADE GENERICA (UNIT=TAPE), OU CODIF
       UMA UNIDADE QUE NAO ESTEJA SENDO UTILIZADA.

       VERIFIQUE SE A SELECT DO PROGRAMA PROCESSADO ESTA COM A
       CIACAO CORRETA.

 -------------------------------------------------------------------------------
                             ABEND 522
 -------------------------------------------------------------------------------

       PROBLEMA:  JOB CANCELADO PELO SISTEMA.
                  O PROGRAMA ESPEROU UMA INTERVENCAO EXTERNA E NAO FOI ATENDIDO

       SOLUCAO:   REVEJA OS ACESSOS A FITAS OU CARTUCHOS OU COMANDOS.

 -------------------------------------------------------------------------------
                            ABEND 613
 -------------------------------------------------------------------------------

       - PROBLEMAS NA UNIDADE DE FITAS.
       - VERIFIQUE O CODIGO DE RETURN-CODE :

         04 - ERRO DE POSICIONAMENTO DE FITA
         08 - ERRO NA LEITURA DO LABEL DA FITA
         0C - LABEL ERRADO OU INVALIDO DA FITA
         10 - ERRO NA GRAVACAO DO LABEL
         14 - ERRO NA GRAVACAO DO TAPE MARK APOS O HEADER LABEL

 -------------------------------------------------------------------------------
                             ABEND 637
 -------------------------------------------------------------------------------

       - VERIFIQUE CODIGO DE RETURN CODE :

         04 - ERRO NA LEITURA DO LABEL
              ERRO DE GRAVACAO DO TAPE MARK
              ERRO DE POSICIONALMENTO DA FITA  NA UNIDADE
         08 - ERRO APOS O PROCESSAMENTO DO LABEL DO USUARIO
              SORT COM DD CONCATENADO EM UNIDADES FISICAS DIFERENTE
         10 - ERRO DE POSICIONAMENTO DA FITA PARA PROCESSAMENTO DO
              ERRO DE POSICIONAMENTO DA FITA PARA PROCESSAMENTO DO
              TRO SEM LABEL
              ERRO DE PROCESSAMENTO NO FIM DO VOLUME
              ERRO DE POSICIONAMENTO DA FITA SEM LABEL
              ERRO DE POSICIONAMENTO DE ARQUIVOS CONCATENADOS EM FI

 -------------------------------------------------------------------------------
                             ABEND 706
 -------------------------------------------------------------------------------

       1 - VERIFICAR NO JOB COMPILACAO DO PROGRAMA (ULTIM
           SE NO MESMO HA MENSAGEM DE ERRO NA LINKEDICAO.

       2 - VERIFICAR SE NA COMPILACAO FOI USADO O COMPILA
           CORRETO.

 -------------------------------------------------------------------------------
                             ABEND 717
 -------------------------------------------------------------------------------

       1 - FALTA DO PARAMETRO REGION
       2 - REGION INSUFICIENTE

 -------------------------------------------------------------------------------
                             ABEND 804
 -------------------------------------------------------------------------------

       PROBLEMA:  INSUFICIENCIA DE AREA PARA PROCESSAMENTO.

       SOLUCAO:   COLOQUE OU AUMENTE O PARAMETRO REGION NO JCL.

 -------------------------------------------------------------------------------
                             ABEND 806
 -------------------------------------------------------------------------------

       PROBLEMA:  MODULO CHAMADO PARA EXECUCAO NAO FOI LOCALIZADO  NAS  BIBLIO-
                  TECAS REFERENCIADAS PARA EXECUCAO (STEPLIB-JOBLIB).

       SOLUCAO:   VERIFIQUE SE TODOS OS MODULOS ESTAO  DEVIDAMENTE LINKEDITADOS
                  NAS BIBLIOTECAS REFERENCIADAS E NO  CASO  DE  UMA  SUBROTINA,
                  VERIFIQUE SE O CAMPO DE CHAMADA  NO  PROGRAMA  PRINCIPAL  NAO
                  ESTA SENDO INVADIDA.

 ------------------------------------------------------------------------------
                             ABEND 80A
 ------------------------------------------------------------------------------

       PROBLEMA:  INSUFICIENCIA DE AREA PARA PROCESSAMENTO.

       SOLUCAO:   COLOQUE OU AUMENTE O PARAMETRO REGION NO JCL.

 -------------------------------------------------------------------------------
                             ABEND 813
 -------------------------------------------------------------------------------

        CODIGO DE RETORNO DESTE ABEND : 04
        ESTE ABEND VEM ACOMPANHADO DA MENSAGEM 'IEC149I'

                  1 - MONTOU FITA ERRADA, LEITURA COM 2, BLP
                  2 - O LABEL DA FITA NAO COMBINA COM O DCB
                  3 - LABEL NAO IDENTIFICADO
                  4 - LABEL DA FITA NAO COMBINA COM A DESCRICAO
                      DO PROGRAMA
                  5 - LABEL DA FITA DE LEITURA ESTA DESTRUIDO

 -------------------------------------------------------------------------------
                            ABEND 822
 -------------------------------------------------------------------------------

       ESTE ABEND VEM ACOMPANHADO DA MENSAGEM "IEF085I" - REGION
       UNAVAILABLE, ERROR CODE=20.

       O PROGRAMA REQUISITOU MEMORIA VIRTUAL IGUAL A MEMORIA REAL
       (V=R), E NAO HAVIA MEMORIA DISPONIVEL.

       REDUZA A REGIAO DE SEU PROGRAMA. SE NAO FOR POSSIVEL, PECA
       PARA A OPERACAO SUBMETER O PROGRAMA QUANDO HOUVER MEMORIA
       REAL SUFICIENTE.

       AGUARDAR E RESUBMETER O JOB.

 -------------------------------------------------------------------------------
                             ABEND 837
 -------------------------------------------------------------------------------

       ESSE CODIGO VEM ACOMPANHADO DA MENSAGEM "IEC030I" QUE
       CONTEM|

          - NOME DO JOB
          - NOME DO STEP
          - DDNAME
          - ENDERECO DA UNIDADE
          - VOL = SER
          - DSNAME
          - CODIGO DE RETORNO

       ESSE ABEND OCORRE DEVIDO A FALTA DE ESPACO EM DISCO.
       ESSA FALTA DE ESPACO PODE SER PELOS SEGUINTES MOTIVOS:

       1 - NAO HAVIA ESPACO DISPONIVEL NO DISCO ALOCADO. COMO

           SOLUCAO ALOQUE O ARQUIVO EM OUTRO VOLUME.

       2 - O ARQUIVO JA UTILIZOU OS 16 EXTENTS DISPONIVEIS.
           COMO SOLUCAO SUBMETA O JOB CODIFICANDO MAIS AREAS NO
           PARAMETRO SPACE DO JCL.

 -------------------------------------------------------------------------------
                            ABEND 878
 -------------------------------------------------------------------------------

       COLOCAR O PARAMETRO REGION, OU
       AUMENTAR O MESMO PARAMETRO

 -------------------------------------------------------------------------------
                             ABEND 913
 -------------------------------------------------------------------------------

       TENTATIVA DE ACESSO A ARQUIVO PROTEGIDO

 -------------------------------------------------------------------------------
                             ABEND 929
 -------------------------------------------------------------------------------

       1 - INCOMPATIBILIDADE ENTRE PGM/PSB/ACB/DBD NAO ENCONT
       2 - NAO FOI ENCONTRADO PSB/ACB/DBD


       VERIFIQUE A MENSAGEM 'BLDL FAILED FOR MEMBER' NA FILE
       PARA IDENTIFICAR UM ELEMENTO ENVOLVIDO OU FALTANTE

 -------------------------------------------------------------------------------
                            ABEND B37
 -------------------------------------------------------------------------------

       PROBLEMA:  ESPACO EM DISCO INSUFICIENTE PARA O ARQUIVO E SEUS EXTENTS.

       SOLUCAO:   REDIMENSIONAR O ESPACO A SER UTILIZADO E TROCAR DE DISCO.

 -------------------------------------------------------------------------------
                             ABEND C03
 -------------------------------------------------------------------------------

       - ENTROU EM PERFORM UNTIL E NAO SATISFAZENDO VOLTOU A LER.
       - ENTROU EM LOOP DE LEITURA ( AMARRADO POR PERFORM ).

 -------------------------------------------------------------------------------
                             ABEND D37
 -------------------------------------------------------------------------------

       PROBLEMA:  ESPACO NO ARQUIVO INSUFICIENTE.

       SOLUCAO:   REDIMENSIONAR O ESPACO A SER UTILIZADO NO ARQUIVO.

 ------------------------------------------------------------------------------
                            ABEND E37
 ------------------------------------------------------------------------------

       PROBLEMA:  ESPACO NO ARQUIVO INSUFICIENTE.

       SOLUCAO:   REDIMENSIONAR O ESPACO A SER UTILIZADO NO ARQUIVO (EXTENTS)

  

Querys com SELECT e Utilização em Programas


COMANDOS:

SELECT - COMANDO DE RECUPERACAO

AS CLAUSULAS DEVEM SER ESPECIFICADAS NA ORDEM:

SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY

  • SELECT BASICO:

    SELECT ALL/DISTINCT
           *
           NOME DA COLUNA
           EXPRESSAO ARITMETICA
           LITERAL
           FUNCAO ESCALAR
           FUNCAO DE GRUPO
    FROM   NOME DA TABELA

  • SELECIONAR TODAS AS COLUNAS: 

SELECT * FROM TAB1

SELECIONA O CONTEUDO DE TODOS OS CAMPOS DA TABELA TAB1.

  • SELECIONAR COLUNAS ESPECIFICAS

               SELECT AGENCIA, CONTA FROM TAB1

SELECIONA SOMENTE O CONTEUDO DOS CAMPOS AGENCIA E CONTA DA TABELA TAB1. NESTE FORMATO DEVEMOS COLOCAR UMA VIRGULA ENTRE O  NOME DAS COLUNAS. TODAS AS LINHAS APARECEM PARA A COLUNA ESPECIFICADA. A ORDEM DE SELECAO DAS COLUNAS DETERMINA A ORDEM DE RECUPERACAO.

  • ELIMINAR LINHAS DUPLICADAS NA SELECAO

               SELECT DISTINCT AGENCIA FROM TAB1

  • SELECT COM CLASSIFICACAO

   SELECT ...
   FROM   ...
   ORDER BY NOME DE COLUNAS/NUMERO DA ORDEM DE SELECAO DAS COLUNAS

         OBS: ... ORDER BY ... ASC
         ... ORDER BY ... DESC

SELECT DISTINCT DEPTO, CARGO
FROM   EMP
ORDER  BY       CARGO, DEPTO DESC
            OU
ORDER  BY       2,1 DESC

A TABELA RESULTANTE ESTA CLASSIFICADA EM ORDEM ASCENDENTE POR CARGO E DESCENDENTE POR DEPARTAMENTO.

  • SELECT COM CONDICAO DE PESQUISA

   SELECT ...
   FROM   ...
   WHERE NOME DE COLUNA
         EXPRESSAO =  EXPRESSAO
                   <>
                   >
                   <
                   >=
                   <=
         NOME DE COLUNA IS (NOT) NULL
         NOME DE COLUNA (NOT) LIKE VARIAVEL
         EXPRESSAO (NOT) IN (VARIAVEL,...)
         EXPRESSAO (NOT) BETWEEN EXPRESSAO AND EXPRESSAO
         AND
         OR

ATRAVES DA CLAUSULA WHERE PODE-SE COMPARAR O VALOR DE UMA COLUNA, VERIFICANDO EM QUAIS LINHAS A COLUNA SELECIONADA SATISFAZ A UM CONJUNTO DE RESTRICOES.

    SELECT MATRICULA, NOME, CARGO
    FROM   EMP
    WHERE  SALARIO >= 30000

    SELECT NOME, SALARIO
    FROM   EMP
    WHERE  CARGO = 'GERENTE'

    SELECT MATRICULA, NOME, CARGO, SALARIO
    FROM   EMP
    WHERE  SALARIO >= 30000 AND
           CARGO    = 'GERENTE'

    SELECT MATRICULA, NOME, CARGO, SALARIO
    FROM   EMP
    WHERE  SALARIO >= 30000 OR
           CARGO    = 'GERENTE'

  • SELECT COM OPERADOR IN

O OPERADOR IN PODE SER UTILIZADO PARA SUBSTITUIR VARIOS OR.

    SELECT MATRICULA, NOME, CARGO, SALARIO
    FROM   EMP
    WHERE  DEPTO = 'A00' OR
           DEPTO = 'B01' OR
           DEPTO = 'C01'

É O MESMO QUE:

    SELECT MATRICULA, NOME, CARGO, SALARIO
    FROM   EMP
    WHERE  DEPTO IN ('A00', 'B01', 'C01')


  • SELECT COM OPERADOR BETWEEN

O OPERADOR BETWEEN PODE SUBSTITUIR O AND QUANDO A CONSULTA DESEJAR RECUPERAR UM INTERVALO FECHADO DE VALORES.

    SELECT MATRICULA
    FROM   EMP
    WHERE  MATRICULA >= 9000 AND
           MATRICULA <= 10000

PODE SER SUBSTITUIDO POR:

    SELECT MATRICULA
    FROM   EMP
    WHERE  MATRICULA BETWEEN 9000 AND 10000

  • SELECT COM VALORES CALCULADOS

    SELECT MATRICULA, NOME, SALARIO+COMISSAO
    FROM   EMP
    WHERE  DEPTO = 'A00'

    SELECT MATRICULA, NOME, DEPTO
    FROM   EMP
    WHERE (SALARIO+COMISSAO)/12 >= 40000

  • SELECT COM FUNCOES DE GRUPO

    SELECT NOME DE COLUNA
           FUNCOES DE GRUPO
    FROM   ...
    GROUP  BY NOMES DE COLUNAS

FUNCOES DISPONIVEIS:

- SUM   (SOMA DE VALORES)
- AVG   (MEDIA DE VALORES)
- MAX   (MAIOR VALOR DE UMA COLUNA)
- MIN   (MENOR VALOR DE UMA COLUNA)
- COUNT (NUMERO DE OCORRENCIAS DE UMA COLUNA OU NUMERO DE LINHAS DE UMA TABELA)

-          SELECT COM TOTAL DE SALARIOS DO DEPARTAMENTO

      SELECT SUM(SALARIO)
      FROM   EMP
      WHERE  DEPTO = 'A00'

-          SELECT DA MEDIA DAS NOTAS DO ALUNO 0001

      SELECT AVG(NOTA)
      FROM   ALUNOS
      WHERE  MATRICULA = 0001

-          SELECT DA QUANTIDADE DE ALUNOS QUE TIRARAM 10 EM MATEMATICA

      SELECT COUNT(*)
      FROM   ALUNOS
      WHERE  NOTA = 10 AND
             MATERIA = 'MATEMATICA'

-          SELECT DA MENOR NOTA DE MATEMATICA DA ESCOLA:

      SELECT MIN(NOTA)
      FROM   ALUNOS
      WHERE  MATERIA = 'MATEMATICA'

-          SELECT DA MAIOR NOTA DE MATEMATICA DA ESCOLA:

      SELECT MAX(NOTA)
      FROM   ALUNOS
      WHERE  MATERIA = 'MATEMATICA'

-          SELECT DA MAIOR NOTA DE MATEMATICA DA ESCOLA:

      SELECT MAX(NOTA)
      FROM   ALUNOS
      WHERE  MATERIA = 'MATEMATICA'

  • SELECT COM CLAUSULAS GROUP E HAVING

A CLAUSULA GROUP SERVE PARA AGRUPAR O RESULTADO DE UMA QUERY E GERALMENTE EH USADA EM CONJUNTO COM AS FUNCOES DE GRUPO AVG, SUM, COUNT, MIN E MAX. NOS EXEMPLOS DADOS PARA ESTAS FUNCOES RECUPERAMOS SEMPRE APENAS UM VALOR. POR EXEMPLO, O MENOR SALARIO DE UM DEPARTAMENTO SERIA OBTIDO ASSIM:

SELECT MIN(SALARIO)
FROM   EMP
WHERE  DEPTO = 'AB0'


 

PROGRAMAS   DB2:

TODO O PROGRAMA DE DB2 TEMOS QUE INCLUIR UMA TABELA CHAMADA 'SQLCA' ESTA TABELA QUE CONTEM O 'SQLCODE'

           < EXEC SQL INCLUDE  'SQLCA'  END-EXEC >

SEMPRE QUE FOR UTILIZAR UM COMANDO 'SQL' DEVEMOS TESTAR SEU RETORNO ATRAVES DO 'SQLCODE'.

PARA TRABALHARMOS COM DADOS QUE DEVERAM SOFRER UM CERTO TIPO DE SELECAO DEVEMOS ENTAO MONTAR UM 'CURSOR'.

O CURSOR E DECLARADO NA WORKING APOS A DECLARACAO DAS TABELAS QUE SERAO USADAS NO PROGRAMA.

 EX:
  EXEC SQL  DECLARE  C1 CURSOR FOR
       SELECT 
       INTO   
       FROM   
       WHERE  
  END-EXEC

EM PROGRAMAS DE ATUALIZACAO DEVEMOS ANTES EXECUTAR UM 'RESTART' PARA VERIFICAR SE A TABELA FOI ATUALIZADA MAS NAO COMPLETAMENTE EM PROGRAMAS 'DB2' TEMOS QUE CRIAR UMA ROTINA DE ENCERRAMENTO E DENTRO DESTA ROTINA UM COMANDO CHAMADO 'ROLL BACK' PARA NAO EFETUAR AS PRIMEIRAS ATUALIZACOES CASO AS OUTRAS DEREM ERRO.

        EXEC  SQL
              ROLL BACK
        END-EXEC

QUANDO E MONTADO UM CURSOR O MESMO NAO DEVERA SER LIDO NORMALMENTE COMO OS OUTROS PROGRAMAS E SIM ATRAVES DE UM COMANDO CHAMADO 'FETCH'

             EXEC  SQL  FETCH C1
              INTO
        END-EXEC

I M P O R T A N T E : TODO CURSOR TEM QUE SER ABERTO E FECHADO DURANTE A EXECUCAO DO PGM.

CASO ELE TENHA CONSEGUIDO EXECUTAR TODOS OS COMANDOS DO PROGRAMA SEM NENHUM ERRO DEVEMOS UTILIZAR UM COMANDO PARA VALIDAR ESSAS ALTERACOES, CHAMA-SE 'COMMIT'

        EXEC  SQL
              COMMIT WORK
        END EXEC



PROCEDIMENTOS PARA PROGRAMA COM CURSORES DB2:

                                                                               
EM PROGRAMAS BATCH/ON-LINE:
                                                                               
Nos cancelamentos dos programas nao ha' necessidade de se executar o fechamento dos CURSORES DB2 que porventura estiverem abertos no  momento do cancelamento. O fechamento dos mesmos ficara' a cargo do sistema operacional. No caso de encerramento (processamento normal), fechar os CURSORES abertos, testando seu SQLCODE.                                           
                                                                               

EM API'S BATCH/ON-LINE:

Nos cancelamentos das api's, e' obrigatorio o fechamento dos CURSORES DB2 abertos  no  momento  do cancelamento.

O que ocorre nas api's, em caso de cancelamento, na verdade, e' um pseudocancelamento, pois a api ao encerrar anormalmente o  seu processo, nao e' cancelada mas finalizada, retornando ao programa chamador. Quem toma a decisao  de  cancelar  ou  nao o processamento e' o programa chamador. Caso a api seja chamada novamente pelo mesmo programa,  o CURSOR da api estara' aberto (pois a  api nao o fechou na chamada anterior).

Assim, o fechamento  em  casos  de cancelamento de api's e' necessario. Porem, apenas sera' executado o fechamento (EXEC SQL CLOSE CURSOR1 END-EXEC) sem o teste do sqlcode de fechamento (para que nao se tenha sobreposicao de dados do cancelamento).       

O fechamento com teste de sqlcode so' se dara' no caso  de  encerramento  normal da api, ou seja, apos o termino do processamento de todas as  linhas desejadas do CURSOR.                                                      
                                                                                                                                                               

DB2 - Conceitos


D  B  2

EH UM GERENCIADOR DE BANCO DE DADOS QUE UTILIZA A LINGUAGEM SQL PARA MANIPULACAO E ACESSOS AOS BANCOS DE DADOS.

ESTRUTURA DE DADOS:

    - OS DADOS SAO ESTRUTURADOS EM TABELAS.
    - UMA TABELA CONTEM UM CONJUNTO DE LINHAS.
    - CADA LINHA EH COMPOSTA POR VARIAS COLUNAS.

REGRAS BASICAS PARA TABELAS:

    - TODAS AS LINHAS DE UMA TABELA POSSUEM O MESMO FORMATO.
    - NAO EXISTEM LINHAS DUPLICADAS.
    - NAO EXISTEM NOMES DE COLUNAS DUPLICADOS.
    - A ORDEM DAS LINHAS E COLUNAS NAO EH SIGNIFICATIVA.

VALOR NULO:

O DB2 DESENVOLVEU UM CONCEITO DE AUSENCIA DE INFORMACAO EM UMA DETERMINADA COLUNA. SE O CAMPO ESTIVER NULO SIGNIFICA QUE NENHUM VALOR FOI INFORMADO. NOS COMANDOS SQL ESTA PECULIARIDADE EH SEMPRE VERIFICADA USANDO-SE A PALAVRA NULL. NEM TODAS AS COLUNAS PODEM ACEITAR UM VALOR NULO. A ESTE RESPEITO A COLUNA PODE SER NOT NULL OU NOT NULL WITH DEFAULT (SE NENHUM VALOR FOR INFORMADO, O DB2 ASSUMIRA VALORES DEFAULT).

INDICE:

EH UMA FORMA DE ACESSO AOS DADOS DE UMA TABELA. O INDICE PODE SER COMPOSTO POR UMA OU MAIS COLUNAS, CONTIGUAS OU NAO, E ESTAR CLASSIFICADO EM ORDEM ASCENDENTE OU DESCENDENTE. QUANDO UM INDICE TEM A ESPECIFICACAO UNIQUE NAO SAO ACEITAS ENTRADAS DUPLICADAS NAS COLUNAS INDEXADAS.  NORMALMENTE O INDICE EH UTILIZADO PARA GARANTIR A UNICIDADE DAS LINHAS E AUMENTAR A PERFORMANCE.

CHAVES E CONSTRUCAO DOS ACESSOS:

QUALQUER COLUNA DE UMA TABELA DB2 PODE SER UTILIZADA COMO ARGUMENTO DE PESQUISA (NAO SO A COLUNA-CHAVE).

TIPOS DE COLUNA MAIS UTILIZADOS:

TIPO
DESCRIÇÃO
DOMININIO
EQUIVALENTE EM COBOL
SMALLINT       
INTEIRO (HALF-WORD)
-32768 A +32767    
S9(04) COMP
INTEGER        
INTEIRO (FULL-WORD)
-2147483648 A +2147483647        
S9(04) COMP
S9(09) COMP
DECIMAL (X,Y)  
X DIGITOS E Y DECIMAIS
-999999999999999  A +999999999999999
S9(N-M)V9(N) COMP-3
CHAR(N)        
ALFANUMERICO COM TAMANHO N
N = 1 A 254        
X(N)
DATE           
CONTEM DATA
FORMATO ISO: YYYY-MM-DD          
0001-01-01 A 9999-12-31
X(10)
TIME           
CONTEM HORARIO
FORMATO ISO: HH.MM.SS
00.00.00 A 24.00.00
X(08)
TIMESTAMP      
CONTEM DATA + HORARIO 
FORMATO ISO:   
YYYY-MM-DD-HH.MM.SS-NNNNNN
0001-01-01-00.00.00.000000  A 9999-12-31-24.00.00-000000
X(26)