Thursday 21 November 2024

READ lê um registro de um arquivo em um sistema local ou remoto.

 

Para comandos UPDATE e não UPDATE, você deve identificar o registro a ser recuperado pelo campo de identificação de registro especificado na opção RIDFLD. Imediatamente após a conclusão de um comando READ UPDATE, a área de dados RIDFLD estará disponível para reutilização pelo programa aplicativo.

 

Condições: DISABLED, DUPKEY, FILENOTFOUND, ILLOGIC, INVREQ, IOERR, ISCINVREQ, LENGERR, LOADING, LOCKED, NOTAUTH, NOTFND, NOTOPEN, RECORDBUSY, SYSIDERR

 

Este comando é seguro para threads se o arquivo ao qual ele se refere for:

Definido como remoto e o comando é a função enviada através de uma conexão IPIC para uma região remota do CICS.

Definido como VSAM local ou RLS.

Este comando não é seguro para threads se o arquivo ao qual ele se refere for:

Definido como remoto e o comando é uma função enviada por uma conexão não IPIC.

Definido como uma tabela de dados compartilhada, tabela de dados do recurso de acoplamento ou arquivo BDAM.

 

Considerações da tabela de dados

Quando o comando READ lê uma tabela de dados mantida pelo CICS, uma solicitação READ com UPDATE ou RBA é sempre satisfeita por uma chamada para o VSAM. Uma leitura de chave completa que não é uma leitura genérica nem uma READ UPDATE é satisfeita por uma referência à tabela de dados, se possível. Se o registro não for encontrado na tabela, o conjunto de dados de origem será acessado, a menos que se saiba que a tabela está completa, ou seja, todos os registros na origem também estarão presentes na tabela (que é o caso se o carregamento for concluído e nenhum foi rejeitado por uma saída do usuário).

 

Se você executar uma leitura genérica (usando a opção GENERIC) em uma tabela de dados mantida pelo CICS, e o CICS retornará uma condição NOTFND porque o registro não foi encontrado na tabela, o CICS limpará as áreas INTO () e RIDFLD () para garantir que um registro incorreto não é retornado. Esse comportamento otimiza o desempenho, mas difere do comportamento de uma leitura genérica de um arquivo VSAM, quando as áreas INTO () e RIDFLD () são mantidas inalteradas no caso de uma condição NOTFND. Ao converter um arquivo VSAM em uma tabela de dados mantida pelo CICS, assegure-se de que todos os aplicativos que executam leituras genéricas dos dados executem a ação apropriada se uma condição NOTFND for retornada e as áreas INTO () e RIDFLD () forem limpas.

 

Quando o comando READ lê uma tabela de dados mantida pelo usuário, somente a tabela de dados é acessada quando o carregamento é concluído; o arquivo VSAM não é alterado de forma alguma.

 

Quando o comando READ lê uma tabela de dados do recurso de acoplamento, somente a tabela de dados é acessada, mesmo que a tabela seja carregada inicialmente de um conjunto de dados de origem VSAM.

 

Se um arquivo que se refere a uma tabela de dados do recurso de acoplamento ou mantida pelo usuário for definido com RLSACCESS (YES), as opções de API específicas do RLS CONSISTENT, NOSUSPEND e REPEATABLE não serão suportadas.

 

Lendo arquivos acessados ​​no modo RLS

Quando um arquivo é acessado no modo RLS, as solicitações de leitura sem atualização podem especificar uma das opções de integridade de leitura: NÃO COMPROMETIDO, CONSISTENTE ou REPETÍVEL.

Se nenhuma dessas palavras-chave for especificada, o CICS utilizará o valor especificado no parâmetro READINTEG da definição de recurso FILE, para o qual o padrão é UNCOMMITTED.

Se você desejar usar o nível de integridade de leitura especificado na palavra-chave READINTEG da definição FILE, precisará mudar de usar um arquivo local para um arquivo remoto ou se alterar o local de um arquivo remoto, verifique se:

  • A região proprietária de arquivos remotos suporta as opções de integridade de leitura.
  • A definição de FILE no sistema remoto especifica:
    • Modo RLS
    • Os valores corretos de integridade de leitura para seu aplicativo.

Os pedidos READ que especificam a palavra-chave UPDATE ou uma opção de integridade de leitura CONSISTENTE ou REPEATABLE (explícita ou implicitamente na definição FILE), retornam a condição LOCKED se eles referenciarem um registro que possui um bloqueio retido. A chave de um registro bloqueado não é retornada ao programa aplicativo. Portanto, se um programa aplicativo especificar GTEQ ou GENERIC na solicitação READ, não poderá saber qual chave de registro está bloqueada.

 

Se uma solicitação que especifica a integridade da leitura for enviada para um membro da família de produtos CICS que não suporta a integridade da leitura, a solicitação falhará:

  • Se um link ISC for usado, a solicitação receberá um cancelamento ATNI.
  • Se um link MRO for usado, a solicitação receberá um encerramento anormal do AXF8.

O código de encerramento anormal do AXF8 indica que seu programa tentou enviar uma solicitação que especifica opções de controle de arquivo para uma região remota do CICS que não suporta essas opções.

 

Bloqueios retidos e ativos

RECORDBUSY refere-se a bloqueios ativos e LOCKED refere-se a bloqueios retidos.

Esses bloqueios afetam solicitações de leitura que adquirem bloqueios; ou seja, solicitações de atualização e solicitações com integridade de leitura. Esses são os tipos de solicitações de leitura que são mencionados nos seguintes marcadores. Outras solicitações de leitura não são afetadas pela presença de bloqueios retidos ou ativos.

  • As solicitações de leitura de registros que mantiveram bloqueios são sempre rejeitadas com uma resposta LOCKED.
  • As solicitações READ para registros que possuem bloqueios ativos aguardam a liberação do bloqueio, exceto quando a palavra-chave NOSUSPEND for especificada; nesse caso, o CICS retornará a resposta RECORDBUSY.

 

Opções:

CONSISTENT (RLS only)

O registro é lido com um nível de integridade de leitura fornecido por um bloqueio compartilhado do VSAM que dura a duração da solicitação.

Se o registro estiver sendo modificado por outra tarefa, que, portanto, retém um bloqueio exclusivo, a solicitação READ aguarda a conclusão da atualização (a menos que NOSUSPEND também esteja especificado) da seguinte maneira:

Para uma solicitação de leitura em um arquivo não recuperável, a leitura é concluída assim que qualquer solicitação do VSAM que executa a atualização é concluída.

Para uma solicitação READ contra um arquivo recuperável, a solicitação READ é concluída quando a tarefa de atualização concluir seu próximo ponto de sincronização ou reversão.

 

DEBKEY

(BDAM bloqueado) especifica que o desbloqueio deve ocorrer por chave. Se nem DEBREC nem DEBKEY for especificado, o desbloqueio não ocorrerá.

 

DEBREC

(BDAM bloqueado) especifica que o desbloqueio deve ocorrer por registro relativo (relativo a zero). Se nem DEBREC nem DEBKEY for especificado, o desbloqueio não ocorrerá.

 

EQUAL

especifica que a pesquisa é satisfeita apenas por um registro com a mesma chave (completa ou genérica) que a especificada na opção RIDFLD.

 

FILE(filename)

especifica o nome do arquivo a ser acessado.

Se SYSID for especificado, presume-se que o conjunto de dados ao qual este arquivo se refere esteja em um sistema remoto, independentemente de o nome estar definido para o CICS. Caso contrário, a definição de recurso é usada para descobrir se o conjunto de dados está em um sistema local ou remoto.

 

GENERIC

(VSAM KSDS, caminhos e tabelas de dados) especifica que a chave de pesquisa é uma chave genérica cujo comprimento é especificado na opção KEYLENGTH. A procura de um registro é satisfeita quando um registro é encontrado com os mesmos caracteres iniciais (chave genérica) que os especificados.

 

GTEQ

(VSAM KSDS, caminhos e tabelas de dados) especifica que, se a pesquisa por um registro que tenha a mesma chave (completa ou genérica) que a especificada na opção RIDFLD não tiver êxito, o primeiro registro que tiver uma chave maior será recuperado.

 

INTO(data-area)

especifica a área de dados na qual o registro recuperado do conjunto de dados deve ser gravado.

Quando INTO é especificado, LENGTH deve ser especificado explicitamente ou deve poder ser padronizado na opção INTO, usando a referência de atributo de comprimento na linguagem assembler, ou STG e CSTG em PL / I. COMPRIMENTO deve ser especificado explicitamente em C.

 

KEYLENGTH(data-value)

especifica o comprimento (binário de meia palavra) da chave que foi especificada na opção RIDFLD, exceto quando RBA ou RRN é especificado; nesse caso, o valor KEYLENGTH não é válido. Esta opção deve ser especificada se GENERIC for especificado e pode ser especificada sempre que uma chave for especificada. No entanto, se o comprimento especificado for diferente do comprimento definido para o conjunto de dados e a operação não for genérica, ocorrerá a condição INVREQ.

A condição INVREQ também ocorre se GENERIC for especificado e o valor KEYLENGTH não for menor que o especificado na definição VSAM.

Se KEYLENGTH (0) for usado com o objeto de ler o primeiro registro no conjunto de dados, a opção GTEQ também deverá ser especificada. Se EQUAL for especificado explicitamente ou por padrão com KEYLENGTH (0), os resultados da READ serão imprevisíveis.

Para arquivos remotos, o valor KEYLENGTH pode ser especificado na definição de FILE. Se KEYLENGTH não estiver definido lá e não estiver especificado no programa aplicativo, e a chave tiver mais de 4 caracteres, o valor padrão será 4.

 

LENGTH(data-area)

especifica o comprimento, como um valor binário de meia palavra, da área de dados em que o registro deve ser colocado. Após a conclusão do comando READ, o parâmetro LENGTH contém o comprimento real do registro.

Esta opção deve ser especificada se SYSID estiver especificado.

Se o arquivo estiver em um sistema remoto, o parâmetro LENGTH não precisará ser definido aqui, mas deve ser definido na definição de recurso do arquivo.

Se o arquivo estiver em um sistema local, o parâmetro LENGTH deverá ser definido para registros de comprimento variável, usando a opção INTO, mas não para registros de comprimento fixo. No entanto, é aconselhável especificar o tamanho dos registros de comprimento fixo porque:

  • Isso faz com que seja verificado que o registro que está sendo lido não é muito longo para a área de dados disponível.
  • Ao ler registros de tamanho fixo em uma área maior que o registro que está sendo acessado, a condição LENGERR é aumentada para aplicativos COBOL, C, PL / I e idioma do assembler, se a opção LENGTH for especificada. Se a opção LENGTH não for especificada explicitamente, a condição LENGERR será retornada se o comprimento puder ser deduzido da área de dados. Se o comprimento especificado exceder o comprimento do registro do arquivo, o CICS utilizará o comprimento maior para a movimentação. Se a área de destino no programa aplicativo não for grande o suficiente, o armazenamento será sobreposto além da área de destino.

Se você especificar a opção SET, não precisará especificar a opção COMPRIMENTO.

Ao ler em uma área de dados de destino maior que o registro que está sendo lido, o conteúdo da área de dados de destino, do final do registro recuperado ao final da área de dados de destino, é imprevisível.

Se você especificar a opção INTO, o argumento LENGTH deverá ser uma área de dados que especifique o maior registro aceito pelo programa. Se o registro recuperado for maior que o valor especificado na opção LENGTH, o registro será truncado para o valor especificado e a condição LENGERR ocorrerá. Nesse caso, a área de dados LENGTH é configurada para o comprimento do registro antes do truncamento.

Observe que um comando de controle de arquivo emitido em relação a um registro de tamanho variável em um arquivo definido no sistema CICS local falha com uma condição LENGERR se um comprimento não for especificado. No entanto, se o mesmo comando for emitido em um arquivo definido em um sistema remoto, o comando não falhará.

 

NOSUSPEND (RLS only)

A solicitação não espera se o registro estiver bloqueado pelo VSAM com um bloqueio ativo, incluindo registros bloqueados como resultado de um DEADLOCK.

Nota: solicitações que especificam NOSUSPEND aguardam pelo menos 1 segundo antes que o CICS retorne a resposta RECORDBUSY.

 

RBA

(Conjuntos de dados básicos VSAM KSDS ou ESDS, ou apenas tabelas de dados mantidas pelo CICS, mas não caminhos) especifica que o campo de identificação de registro especificado na opção RIDFLD contém um endereço de byte relativo. Esta opção deve ser usada apenas ao ler registros de uma base ESDS ou ao ler a partir de uma base KSDS e ao usar endereços de bytes relativos em vez de chaves para identificar os registros.

Você não pode usar o RBA para:

  • Tabelas de dados mantidas pelo usuário
  • Tabelas de dados do recurso de acoplamento
  • Qualquer arquivo KSDS aberto no modo de acesso RLS
  • Arquivos KSDS que usam endereçamento estendido

Além disso, é recomendável não usar arquivos RBA para ESDS com mais de 4 GB. (Use o XRBA.)

 

REPEATABLE (RLS only)

O registro é lido com um nível de integridade de leitura fornecido por um bloqueio compartilhado do VSAM que dura a duração da unidade de trabalho na qual a solicitação de leitura é emitida.

Se o registro estiver sendo modificado por outra tarefa, que, portanto, retém um bloqueio exclusivo, a solicitação READ aguarda a conclusão da atualização (a menos que NOSUSPEND também esteja especificado) da seguinte maneira:

  • Para um arquivo recuperável, a solicitação READ é concluída quando a transação de atualização completa seu próximo ponto de sincronização ou reversão.
  • Para um arquivo não recuperável, o READ é concluído assim que a solicitação do VSAM que executa a atualização é concluída.

Após a conclusão da solicitação de LEITURA, o registro permanece bloqueado na tarefa que emitiu a LEITURA. Outras tarefas podem continuar a ler o registro, mas nenhuma outra tarefa pode atualizar o registro até que a tarefa que emitiu o READ execute seu próximo ponto de sincronização ou reversão.

 

RIDFLD(data-area)

especifica o campo de identificação do registro. O conteúdo pode ser uma chave, um endereço de bytes relativo ou um número de registro relativo (para conjuntos de dados VSAM) ou uma referência de bloco, uma chave física e um argumento de desbloqueio (para conjuntos de dados BDAM). Para um endereço de bytes relativo ou um número de registro relativo, o formato desse campo deve ser binário de palavra completa. Para um endereço de bytes relativo, o valor do RIDFLD pode ser maior ou igual a zero. Para um número de registro relativo, o valor do RIDFLD deve ser maior ou igual a 1, mesmo quando a opção GTEQ é especificada.

Consulte Identificando registros BDAM e Identificando registros VSAM para obter mais informações sobre como definir o campo de identificação de registros.

Imediatamente após a conclusão do comando, a área de dados RIDFLD estará disponível para reutilização pelo programa aplicativo, mesmo se UPDATE tiver sido especificado.

Verifique se a variável especificada pelo valor RIDFLD não é menor que o KEYLENGTH especificado neste comando ou, se KEYLENGTH não for especificado, o comprimento da chave do arquivo que você está lendo; caso contrário, os resultados são imprevisíveis.

 

RRN

(VSAM RRDS) especifica que o campo de identificação de registro especificado na opção RIDFLD contém um número de registro relativo. Esta opção deve ser usada apenas com arquivos que fazem referência a conjuntos de dados de registros relativos.

 

SET(ptr-ref)

indica que o CICS deve fornecer um buffer onde o registro é lido e especifica a referência do ponteiro que deve conter o endereço do registro recuperado.

Se a condição DUPKEY ocorrer no idioma do assembler, o registro especificado não foi definido. O registro especificado pode ser carregado no DFHEITP1.

A referência do ponteiro é válida até o próximo comando READ do mesmo arquivo ou até a conclusão de um comando REWRITE, DELETE ou UNLOCK correspondente, ou um SYNCPOINT no caso de READ UPDATE SET. Se você deseja reter os dados dentro do campo endereçado pelo ponteiro, eles devem ser movidos para sua própria área.

Se DATALOCATION (QUALQUER) estiver associado ao programa aplicativo, o endereço dos dados poderá estar acima ou abaixo da linha de 16 MB.

Se DATALOCATION (ABAIXO) estiver associado ao programa aplicativo, o endereço dos dados estará abaixo da linha de 16 MB.

Se TASKDATAKEY (USER) for especificado para a transação em execução, os dados retornados estarão em uma chave de usuário; caso contrário, ele está em uma chave CICS.

 

SYSID(systemname)

especifica o nome do sistema ao qual a solicitação é direcionada.

Se você especificar SYSID e omitir RBA e RRN, também deverá especificar LENGTH e KEYLENGTH; eles não podem ser encontrados na definição de recurso.

 

TOKEN(data-area)

especifica, como um valor binário de palavra completa, um identificador exclusivo para esta solicitação READ UPDATE. Este é um valor de saída retornado pelo controle de arquivo para a tarefa solicitante, para uso na associação de uma solicitação REWRITE ou DELETE (ou UNLOCK) subsequente ao registro retornado nessa solicitação READ UPDATE.

TOKEN pode ser enviado em função. No entanto, se uma solicitação especificando TOKEN for uma função enviada para um membro da família de produtos CICS que não reconhece essa palavra-chave, a solicitação falhará.

Nota: Se você especificar TOKEN, isso implica em atualização.

 

UNCOMMITTED

O registro é lido sem integridade de leitura.

O valor atual do registro, como conhecido pelo VSAM, é retornado. Nenhuma tentativa é feita para serializar essa solicitação de leitura com qualquer atividade de atualização simultânea para o mesmo registro. O registro pode estar em processo de atualização por outra tarefa e os dados do registro podem ser alterados posteriormente, se a atualização for subsequentemente efetuada.

 

UPDATE

especifica que o registro deve ser obtido para atualização ou (para VSAM e tabelas de dados) exclusão. Se esta opção for omitida, será assumida uma operação somente leitura.

ATUALIZAÇÃO garante integridade de leitura. O mecanismo usado para garantir a integridade dos dados depende do tipo de recurso do arquivo:

  • Para um arquivo VSAM acessado no modo RLS, o registro a ser atualizado é bloqueado pelo servidor SMSVSAM.
  • Para um arquivo VSAM acessado no modo não RLS, o registro a ser atualizado é bloqueado pelo CICS e, além disso, o intervalo de controle que contém o registro é mantido em controle exclusivo pelo VSAM.
  • Para um arquivo VSAM acessado no modo não RLS e log (UNDO), o CICS mantém um bloqueio de registro até a sincronização da tarefa.
  • Para um arquivo BDAM, o registro a ser atualizado é mantido sob controle exclusivo do BDAM.
  • Para uma tabela de dados mantida pelo usuário, o registro a ser atualizado é bloqueado pelo CICS.
  • Para uma tabela de dados mantida pelo CICS, o registro a ser atualizado é bloqueado pelo CICS e, além disso, o intervalo de controle que contém o registro é mantido em controle exclusivo pelo VSAM. O bloqueio do intervalo de controle VSAM é necessário porque as alterações na tabela de dados são refletidas no conjunto de dados de origem, que é acessado no modo não RLS.
  • Para uma tabela de dados do recurso de acoplamento usando o modelo de bloqueio, o registro a ser atualizado é bloqueado pelo servidor da tabela de dados do recurso de acoplamento.
  • Para uma tabela de dados do recurso de acoplamento usando o modelo de contenção, os registros não são bloqueados, permitindo que os registros sejam lidos para atualização por mais de uma tarefa. Se um registro lido para atualização por uma tarefa for alterado por outra, a primeira tarefa será notificada, quando emitir um comando REWRITE ou DELETE, pela condição de exceção CHANGED. Se um registro lido para atualização por uma tarefa for excluído por outra, a primeira tarefa será notificada, quando emitir um comando REWRITE ou DELETE, pela condição NOTFND.

Se outra tarefa tiver emitido uma solicitação READ REPEATABLE no mesmo registro, sua solicitação READ UPDATE deverá aguardar até que a tarefa atinja SYNCPOINT (a menos que você tenha emitido NOSUSPEND).

 

XRBA

especifica que o campo de identificação de registro especificado na opção RIDFLD contém um endereço de bytes relativo estendido. Essa opção deve ser usada ao ler registros de um conjunto de dados de endereçamento estendido ESDS.

Os conjuntos de dados KSDS não podem ser acessados ​​pelo XRBA.

 

Condições:

84 DESATIVADO

Valores RESP2:

50. - Um arquivo está desativado porque foi definido inicialmente como desativado e, desde então, não foi ativado.

Um arquivo está desativado porque foi desativado por um comando SET FILE ou CEMT SET FILE.

Ação padrão: finalize a tarefa de forma anormal.

 

15 DUPKEY

Valores RESP2: (VSAM)

140 - Um registro é recuperado por meio de um índice alternativo com o atributo NONUNIQUEKEY e outro registro de índice alternativo com a mesma chave segue

Na linguagem assembler, se a opção SET estiver sendo usada, o registro especificado não foi definido, mas pode ser carregado no DFHEITP1.

Ação padrão: finalize a tarefa de forma anormal.

 

12 FILENOTFOUND

Valores RESP2:

1 - O nome do arquivo fornecido na opção FILE não está definido para o CICS.

Ação padrão: finalize a tarefa de forma anormal.

 

21 ILLOGIC

Valores RESP2: (VSAM)

110 - Ocorre um erro VSAM que não está em nenhuma das outras categorias de resposta do CICS.

Para tabelas de dados mantidas pelo usuário, essa condição ocorre apenas para uma leitura que não seja UPDATE durante o carregamento quando o CICS tentou recuperar o registro do conjunto de dados de origem.

Ação padrão: finalize a tarefa de forma anormal.

 

16 INVREQ

Valores RESP2:

20 - READ não é permitido de acordo com a definição de recurso.

Um comando READ com a opção UPDATE é emitido para um arquivo em que as operações de atualização não são permitidas de acordo com a definição do recurso.

25 - As opções KEYLENGTH e GENERIC são especificadas e o comprimento especificado na opção KEYLENGTH é maior ou igual ao comprimento de uma chave completa.

26 - A opção KEYLENGTH está especificada (mas a opção GENERIC não está especificada) e o comprimento especificado não é igual ao comprimento definido para o conjunto de dados ao qual este arquivo se refere.

28. - Após um comando READ UPDATE sem TOKEN, outro READ UPDATE sem TOKEN foi emitido no mesmo arquivo sem um comando REWRITE, DELETE sem RIDFLD especificado, UNLOCK ou SYNCPOINT. Essa condição pode, em alguns casos, ser levantada, apesar do fato de a primeira READ UPDATE não ter sido bem-sucedida, por exemplo, porque atingiu o tempo limite.

40. - Ocorreu um erro de conversão de chave BDAM.

42. - As opções KEYLENGTH e GENERIC são especificadas e o comprimento especificado na opção KEYLENGTH é menor que zero.

44 - O comando não está em conformidade com o formato de READ para uma tabela de dados do recurso de manutenção ou acoplamento mantida pelo usuário; por exemplo, se RBA for especificado.

51 - Uma leitura para um arquivo KSDS que está sendo acessado no modo RLS especifica a palavra-chave RBA. O modo RLS não suporta o acesso relativo ao endereço de bytes aos conjuntos de dados KSDS.

52 - CONSISTENT é especificado em uma solicitação READ para um arquivo no modo não RLS ou para uma tabela de dados especificada com RLSACCESS (YES). CONSISTENTE não será permitido se o arquivo se referir a uma tabela de dados, mesmo que a definição do arquivo especifique RLSACCESS (YES).

53 - REPEATABLE é especificado em uma solicitação READ para um arquivo no modo não RLS ou para uma tabela de dados especificada com RLSACCESS (YES). REPEATABLE não será permitido se o arquivo se referir a uma tabela de dados, mesmo que a definição do arquivo especifique RLSACCESS (YES).

55 - NOSUSPEND é especificado em uma solicitação READ para um arquivo no modo não RLS ou para uma tabela de dados especificada com RLSACCESS (YES). NOSUSPEND não será permitido se o arquivo se referir a uma tabela de dados, mesmo que a definição do arquivo especifique RLSACCESS (YES).

56. - Uma tentativa de atualizar uma tabela de dados do recurso de acoplamento recuperável falhou porque a unidade de trabalho atual já atualizou 1024 tabelas de dados do recurso de acoplamento recuperável. Você não pode atualizar mais de 1024 tabelas de dados do recurso de acoplamento recuperável em uma unidade de trabalho.

57 - Uma tentativa de atualizar o arquivo falhou porque o conjunto de dados VSAM associado tem um estado AVAILABILITY de RREPL, que não permite operações de atualização, exceto as dos programas de replicação.

59. - O XRBA foi especificado, mas o conjunto de dados não é um ESDS estendido.

Ação padrão: finalize a tarefa de forma anormal.

 

17 IOERR

Valores RESP2:

120 - Há um erro de E / S durante a operação READ. Um erro de E / S é qualquer evento incomum que não é coberto por uma condição do CICS.

Para arquivos VSAM, o IOERR normalmente indica um erro de hardware.

Para tabelas de dados mantidas pelo usuário, essa condição ocorre apenas para uma leitura que não seja UPDATE durante o carregamento quando o CICS tentou recuperar o registro do conjunto de dados de origem.

Para uma tabela de dados do recurso de acoplamento, um IOERR indica uma resposta incorreta retornada de um acesso ao recurso de acoplamento.

Mais informações estão disponíveis no bloco de interface EXEC; para detalhes, consulte os campos do BEI .

Ação padrão: finalize a tarefa de forma anormal.

 

54 ISCINVREQ

Valores RESP2:

70

O sistema remoto indica uma falha que não corresponde a uma condição conhecida.

Ação padrão: finalize a tarefa de forma anormal.

 

22 LENGERR

Valores RESP2:

10 - Nem a opção LENGTH nem a opção SET são especificadas em um comando READ para um arquivo com registros de tamanho variável ou para um arquivo BDAM com registros de tamanho variável ou de formato indefinido.

11 - O comprimento de um registro lido com a opção INTO especificada excede o valor especificado na opção LENGTH; o registro é truncado e a área de dados fornecida na opção COMPRIMENTO é configurada para o comprimento real do registro.

13 - Um comprimento incorreto é especificado para um arquivo com registros de comprimento fixo.

Ação padrão: finalize a tarefa de forma anormal.

 

94 CARREGAMENTO

Valores RESP2:

104 - A solicitação não pode ser atendida porque é emitida em uma tabela de dados que ainda está sendo carregada. A condição pode ser aumentada por um dos seguintes motivos:

  • O READ especifica um registro que ainda não foi carregado em uma tabela de dados do recurso de acoplamento. Os registros podem ser lidos ou modificados enquanto um CFDT está carregando apenas se a chave solicitada estiver dentro do intervalo daqueles registros já carregados.

A resposta LOADING também pode ser retornada para uma tabela de dados do recurso de acoplamento que falhou durante o carregamento. Para obter mais informações sobre o que acontece se o carregamento de uma tabela de dados do recurso de acoplamento falhar, consulte a descrição da saída global do usuário do XDTLC em Gerenciamento de tabelas de dados nas saídas XDTRD, XDTAD e XDTLC .

  • A leitura especifica a opção UPDATE para uma tabela de dados mantida pelo usuário. Uma tabela de dados mantida pelo usuário não pode ser modificada durante o carregamento.
  • O READ especifica as opções GENERIC ou GTEQ para uma tabela de dados mantida pelo usuário. Enquanto um UMT está sendo carregado, você pode usar solicitações de leitura apenas com chaves precisas.

Se seus programas aplicativos encontrarem a condição LOADING persistente ou com muita freqüência, verifique se isso não é causado por definições de arquivo conflitantes que fazem referência ao mesmo conjunto de dados.

Ação padrão: finalize a tarefa de forma anormal.

 

100 BLOQUEADO

Valores RESP2:

106 - Está sendo feita uma tentativa de ler um registro especificando a palavra-chave UPDATE ou especificando (explícita ou implicitamente) CONSISTENTE ou REPEATABLE, mas o registro é bloqueado por um bloqueio retido (consulte Bloqueios retidos e ativos ).

A condição LOCKED também pode ocorrer para uma solicitação READ UPDATE para um CFDT recuperável que usa o modelo de bloqueio, se o registro que está sendo lido estiver bloqueado por um bloqueio retido. Consulte os bloqueios retidos na tabela de dados do recurso de acoplamento para obter informações sobre como investigar bloqueios retidos nos registros em uma tabela de dados do recurso de acoplamento.

Ação padrão: encerre a tarefa com o código AEX8.

 

70 NOTAUTH

Valores RESP2:

101 - Uma verificação de segurança do recurso falhou em FILE (nome do arquivo).

Ação padrão: finalize a tarefa de forma anormal.

 

13 NOTFND

Valores RESP2:

80 - Uma tentativa de recuperar um registro com base no argumento de pesquisa fornecido não teve êxito. Para tabelas de dados, essa condição ocorre se uma tentativa de ler um registro for malsucedida porque não há entrada com a chave especificada na tabela de dados. Isso não significa que não exista esse registro no conjunto de dados de origem (se a tabela foi criada a partir de um); pode ser que esse registro esteja presente, mas foi rejeitado durante o carregamento inicial pela saída do usuário XDTRD ou foi subsequentemente excluído da tabela de dados.Para arquivos remotos, essa condição ocorre se for feita uma tentativa de ler um registro sem o comprimento da chave especificado no aplicativo ou na definição do arquivo, e a chave real tiver mais de 4 caracteres.

81 - O XRBA foi especificado e o valor de RIDFLD foi maior que 4 GB, mas o conjunto de dados não é um ESDS estendido.

Ação padrão: finalize a tarefa de forma anormal.

 

19 NOTOPEN

Valores RESP2:

60 - NOTOPEN (RESP2 60) é retornado por um dos seguintes motivos:

  • O arquivo solicitado é FECHADO e NÃO HABILITADO. O estado CLOSED, UNENABLED é atingido após o recebimento de uma solicitação CLOSE em um arquivo OPEN ENABLED e o arquivo não está mais em uso. Você também pode tornar CLOSED, UNENABLED o estado inicial, especificando STATUS (UNENABLED) e OPENTIME (FIRSTREF) na definição de recurso FILE. (Para arquivos BDAM, você usa o parâmetro FILSTAT de DFHFCT TYPE = FILE.)
  • O arquivo solicitado está ABERTO e em uso por outras transações, mas uma solicitação FECHAR contra o arquivo foi recebida.
  • Um comando READ é emitido em um conjunto de dados que está desativado ou está sendo desativado como resultado de um comando SET DSNAME QUIESCED ou IMMQUIESCED.
  • O arquivo solicitado é FECHADO e ATIVADO, portanto, o CICS tentou abrir o arquivo como parte da execução da solicitação. Este arquivo aberto falhou por algum motivo. Você deve examinar o console para obter mensagens que expliquem por que o arquivo aberto foi malsucedido.

Essa condição não ocorre se a solicitação for feita para um arquivo FECHADO, DESATIVADO. Nesse caso, a condição DISABLED ocorre.

Ação padrão: finalize a tarefa de forma anormal.

 

101 RECORDBUSY

Valores RESP2:

107 - A palavra-chave NOSUSPEND é especificada e o registro é bloqueado por um bloqueio ativo (consulte Bloqueios Retidos e Ativos ).

Ação padrão: encerre a tarefa com o código AEX9.

 

53 SYSIDERR

Valores RESP2:

130 - A opção SYSID especifica um nome que não é o sistema local nem um sistema remoto definido por uma definição CONNECTION ou IPCONN. SYSIDERR também ocorre quando o link para o sistema remoto é conhecido, mas indisponível. No caso de um IPCONN, SYSIDERR ocorrerá se o link for conhecido, mas os sistemas local ou remoto não suportarem comandos de controle de arquivo que são enviados de função usando a interconectividade IP.

131 - Para uma tabela de dados do recurso de acoplamento, a conexão com o servidor da tabela de dados do recurso de acoplamento falhou. Isso pode ocorrer porque o próprio servidor falhou ou o servidor está disponível, mas o CICS falhou ao conectar-se a ele.

132 - O READ é emitido para uma tabela de dados do recurso de acoplamento que não existe mais, provavelmente devido a uma falha do recurso de acoplamento. Nesse caso, o servidor da tabela de dados do recurso de acoplamento também falha. Consulte o Configurando e executando um servidor de tabela de dados do recurso de acoplamento para obter informações sobre como reiniciar um servidor da tabela de dados do recurso de acoplamento e recarregar uma tabela.

Ação padrão: finalize a tarefa de forma anormal.

 

Exemplos:

O exemplo a seguir mostra como ler um registro de um arquivo chamado MASTER em uma área de dados especificada:

EXEC CICS READ
     INTO(RECORD)
     FILE('MASTER')
     RIDFLD(ACCTNO)

O exemplo a seguir mostra como ler um registro para atualização de um arquivo VSAM usando uma chave genérica e especificando uma pesquisa de chave maior ou igual.

EXEC CICS READ
     INTO(RECORD)
     LENGTH(RECLEN)
     FILE('MASTVSAM')
     RIDFLD(ACCTNO)
     KEYLENGTH(4)
     GENERIC
     GTEQ
     UPDATE