Existem várias instalações de processamento comuns que se aplicam a mais de uma instrução de entrada e saída.
As instalações de processamento comuns fornecidas são:
As discussões nas seções a seguir usam os termos volume e bobina.
O termo volume refere-se a todos os dispositivos de entrada e saída sem registro de unidade.
O termo bobina se aplica apenas a dispositivos de fita.
O tratamento de dispositivos de acesso direto no modo de acesso seqüencial é logicamente equivalente ao tratamento de dispositivos de fita.
Se a cláusula FILE STATUS for especificada na entrada de controle de arquivo, um valor será colocado na chave de status do arquivo especificado (o item de dados
de dois caracteres nomeado na cláusula FILE STATUS) durante a execução de qualquer solicitação nesse arquivo; o valor indica o status dessa solicitação.
O valor é colocado na chave de status do arquivo antes da execução de qualquer frase EXCEPTION/ERROR declarativa, INVALID KEY ou AT END associada à solicitação.
Existem dois nomes de dados da chave de status do arquivo.
Um é descrito por data-name-1 na cláusula FILE STATUS da entrada de controle de arquivo.
Este é um item de dados de dois caracteres com o primeiro caractere conhecido como chave de status do arquivo 1 e o segundo caractere conhecido como chave de
status do arquivo 2.
As combinações de valores possíveis e seus significados são mostrados na Tabela 1.
A outra chave de status do arquivo é descrita por data-name-8 na cláusula FILE STATUS da entrada de controle de arquivo.
data-name-8 não se aplica aos arquivos QSAM.
Para mais informações sobre dados-nome-8, consulte FILE STATUS clause.
| Dígito de alta ordem |
Significado |
Dígito de baixa ordema |
Significado |
| 0 |
Conclusão bem sucedida |
0 |
Nenhuma informação adicional |
| 2 |
Esse valor de status do arquivo se aplica apenas a arquivos indexados com chaves
alternativas que permitem duplicatas.
A instrução de entrada e saída foi executada com êxito, mas uma chave duplicada foi detectada.
Para uma instrução READ, o valor da chave da chave de referência atual era igual ao valor da mesma chave no próximo registro da chave de referência atual.
Para uma instrução REWRITE ou WRITE, o registro recém-criado criou um valor de chave duplicado para pelo menos uma chave de registro alternativa para a qual
duplicatas são permitidas. |
| 4 |
Uma instrução READ foi executada com êxito, mas o comprimento do registro sendo
processado não estava em conformidade com os atributos de arquivo fixos para esse arquivo. |
| 5 |
Uma instrução OPEN é executada com êxito, mas o arquivo opcional referenciado não
está disponível no momento em que a instrução OPEN é executada.
O arquivo foi criado se o modo aberto for I-O ou EXTEND.
Isso não se aplica aos arquivos seqüenciais do VSAM. |
| 7 |
Para uma instrução CLOSE com a frase NO REWIND, REEL / UNIT ou FOR REMOVAL ou para
uma instrução OPEN com a frase NO REWIND, o arquivo referenciado estava em um meio que não é da bobina / unidade. |
| 1 |
Condição AT-END |
0 |
Uma instrução READ seqüencial foi tentada e nenhum próximo registro lógico existia
no arquivo porque o final do arquivo foi atingido.
Ou a primeira leitura foi tentada em um arquivo de entrada opcional que não estava disponível. |
| 4 |
Foi tentada uma instrução READ seqüencial para um arquivo relativo e o número de
dígitos significativos no número de registro relativo era maior que o tamanho do item de dados-chave relativo descrito para o arquivo. |
| 2 |
Condição de chave inválida |
1 |
Existe um erro de sequência para um arquivo indexado acessado sequencialmente.
O valor da chave de registro principal foi alterado pelo programa entre a execução bem-sucedida de uma instrução READ e a execução da próxima instrução REWRITE
para esse arquivo.
Ou os requisitos ascendentes para valores sucessivos de chave de registro foram violados. |
| 2 |
Foi feita uma tentativa de gravar um registro que criaria uma chave duplicada em
um arquivo relativo.
Ou foi feita uma tentativa de gravar ou reescrever um registro que criaria uma chave de registro principal duplicada ou uma chave de registro alternativa
duplicada sem a frase DUPLICATES em um arquivo indexado. |
| 3 |
Foi feita uma tentativa de acessar aleatoriamente um registro que não existe no
arquivo.
Ou foi tentada uma instrução START ou READ aleatória em um arquivo de entrada opcional que não estava disponível. |
| 4 |
Foi feita uma tentativa de gravar além dos limites definidos externamente de um
arquivo relativo ou indexado.
Ou uma instrução WRITE seqüencial foi tentada para um arquivo relativo e o número de dígitos significativos no número de registro relativo foi maior que o tamanho
do item de dados-chave relativo descrito para o arquivo. |
| 3 |
Condição de erro permanente |
0 |
Nenhuma informação adicional |
| 4 |
Existe um erro permanente devido a uma violação de limite; foi feita uma tentativa
de gravar além dos limites definidos externamente de um arquivo seqüencial. |
| 5 |
Uma instrução OPEN com a frase INPUT, I-O ou EXTEND foi tentada em um arquivo não
opcional que não estava disponível. |
| 7 |
Uma instrução OPEN foi tentada em um arquivo que não suporta o modo de abertura
especificado na instrução OPEN. As possíveis violações são:
- A frase EXTEND ou OUTPUT foi especificada, mas o arquivo não suporta operações de gravação.
- A frase I-O foi especificada, mas o arquivo não suporta as operações de entrada e saída permitidas.
- A frase INPUT foi especificada, mas o arquivo não suporta operações de leitura.
|
| 8 |
Uma instrução OPEN foi tentada em um arquivo anteriormente fechado com bloqueio
(with lock). |
| 9 |
A instrução OPEN não teve êxito porque foi detectado um conflito entre os atributos
do arquivo fixo e os atributos especificados para esse arquivo no programa.
Esses atributos incluem a organização do arquivo (seqüencial, relativo ou indexado), a chave de registro principal, as chaves de registro alternativas, o conjunto
de códigos, o tamanho máximo de registro, o tipo de registro (fixo ou variável) e o fator de bloqueio. |
| 4 |
Condição de erro lógico |
1 |
Uma instrução OPEN foi tentada para um arquivo no modo aberto. |
| 2 |
Foi tentada uma instrução CLOSE para um arquivo que não está no modo aberto. |
| 3 |
Para um arquivo de armazenamento em massa no modo de acesso seqüencial, a última
instrução de entrada e saída executada para o arquivo associado antes da execução de uma instrução REWRITE não era uma instrução READ executada com êxito.
Para arquivos relativos e indexados no modo de acesso seqüencial, a última instrução de entrada e saída executada para o arquivo antes da execução de uma
instrução DELETE ou REWRITE não era uma instrução READ executada com êxito. |
| 4 |
Existe uma violação de limite porque foi feita uma tentativa de reescrever um
registro em um arquivo e o registro não era do mesmo tamanho que o registro sendo substituído.
Ou foi feita uma tentativa de gravar ou reescrever um registro maior que o maior ou menor que o menor permitido pela cláusula RECORD IS VARYING do nome do
arquivo associado. |
| 6 |
Uma instrução READ sequencial foi tentada em um arquivo aberto no modo de entrada
ou I-O e nenhum próximo registro válido foi estabelecido porque:
- A instrução READ anterior não teve êxito, mas não causou uma condição final.
- A instrução READ anterior causou uma condição no final.
|
| 7 |
A execução de uma instrução READ foi tentada em um arquivo não aberto no modo de
entrada ou I-O. |
| 8 |
A execução de uma instrução WRITE foi tentada em um arquivo não aberto no modo I-O,
saída ou extensão. |
| 9 |
A execução de uma instrução DELETE ou REWRITE foi tentada em um arquivo não aberto
no modo I-O. |
| 9 |
Condição definida pelo implementador |
0 |
- Somente para multithreading: Foi tentado um CLOSE de um arquivo VSAM ou QSAM em um encadeamento que não abriu o arquivo.
- Sem multithreading: Somente para VSAM: Consulte as informações sobre códigos de retorno do VSAM em
Usando códigos de status do VSAM (somente arquivos VSAM) no Enterprise COBOL Programming Guide.
- Arquivos QSAM: Não há mais informações disponíveis.
Consulte a mensagem de erro DFSMS para obter mais informações.
|
| 1 |
Somente para VSAM: falha na senha |
| 2 |
Erro lógico |
| 3 |
Para todos os arquivos, exceto QSAM: Recurso indisponível |
| 5 |
Para todos os arquivos, exceto QSAM: informações de arquivo inválidas ou incompletas |
| 6 |
Para arquivo VSAM:
Foi tentada uma instrução OPEN com a frase OUTPUT ou uma instrução OPEN com a frase I-O ou EXTEND para um arquivo opcional, mas nenhuma instrução DD foi
especificada para o arquivo.
Para o arquivo QSAM:
Foi tentada uma instrução OPEN com a frase OUTPUT ou uma instrução OPEN com a frase I-O ou EXTEND para um arquivo opcional, mas nenhuma instrução DD foi
especificada para o arquivo e a opção de tempo de execução CBLQDA (OFF) foi especificada. |
| 7 |
Somente para VSAM: execução da instrução OPEN bem-sucedida:
integridade do arquivo verificada |
| 8 |
Falha na abertura devido ao conteúdo inválido de uma variável de ambiente
especificada em uma cláusula SELECT ... ASSIGN ou devido a falha na alocação dinâmica. Para mais informações sobre o conteúdo das variáveis de ambiente, consulte
cláusula ASSIGN. |
A condição de chave inválida pode ocorrer durante a execução de uma instrução START, READ, WRITE, REWRITE ou DELETE.
Quando ocorre uma condição de chave inválida, a instrução de entrada e saída que causou a condição é mal sucedida.
Quando a condição de chave inválida é reconhecida, as ações são executadas na seguinte ordem:
A frase INVALID KEY e o procedimento EXCEPTION/ERROR podem ser omitidos.
Se a condição de chave inválida não existir após a execução da operação de entrada e saída, a frase INVALID KEY será ignorada, se especificada, e as seguintes
ações serão executadas:
As frases INTO e FROM são válidas para as instruções READ, RETURN, RELEASE, REWRITE e WRITE.
Você deve especificar um identificador que seja o nome de uma entrada na WORKING-STORAGE SECTION ou na LINKAGE SECTION ou de uma descrição do registro para outro
arquivo aberto anteriormente.
O indicador de posição do arquivo é uma entidade conceitual usada neste documento para facilitar a especificação exata do próximo registro a ser acessado em um
determinado arquivo durante certas sequências de operações de entrada e saída.
A configuração do indicador de posição do arquivo é afetada apenas pelas instruções OPEN, CLOSE, READ e START.
O conceito de um indicador de posição do arquivo não tem significado para um arquivo aberto no modo de saída (output) ou extensão (extend).