Tuesday 3 December 2024

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

 

Este comando é threadsafe se o arquivo ao qual se refere for:

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

Definido como VSAM ou RLS local.

Este comando não é thread-safe se o arquivo ao qual se refere for:

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

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

Descrição:

O comando DELETE exclui um registro de um arquivo em um KSDS, um caminho em um KSDS, um CICS ou tabela de dados mantida pelo usuário ou um RRDS. Você não pode excluir de um arquivo VSAM ESDS ou BDAM. Todas as referências a KSDS se aplicam igualmente a tabelas de dados mantidas por CICS e, exceto onde indicado de outra forma, a caminhos em um KSDS. O arquivo pode estar em um sistema local ou remoto. Você identifica, na opção RIDFLD, o registro específico a ser excluído.

Você pode excluir um grupo de registros com uma única chamada deste comando, identificando o grupo pela opção GENERIC (não disponível para RRDS). O comando DELETE com a opção GENERIC deve ser usado com cuidado. Se a chave genérica especificada corresponder a um grande número de registros, a unidade de trabalho do CICS manterá um grande número de bloqueios de registro até o ponto de sincronização. Isso pode causar problemas de armazenamento na região CICS ou, se o arquivo for um arquivo RLS, pode causar o uso excessivo de recursos do recurso de acoplamento e afetar outros sistemas. Em vez disso, considere o uso de uma série de exclusões genéricas (usando chaves genéricas que corresponderão a menos registros) e o ponto de sincronização após a exclusão de cada intervalo de registros.

Você também pode usar este comando para excluir um único registro que foi recuperado anteriormente para atualização (por um comando READ UPDATE). Nesse caso, você não deve especificar a opção RIDFLD.

Quando este comando é usado para excluir registros de uma tabela de dados mantida pelo CICS, a atualização é feita no conjunto de dados VSAM KSDS de origem e na tabela de dados na memória.

Quando este comando é usado para excluir registros de uma tabela de dados mantida pelo usuário, a atualização é feita apenas na tabela de dados na memória.

Quando este comando é usado para excluir registros de uma tabela de dados do recurso de acoplamento, a atualização é feita apenas na tabela de dados no recurso de acoplamento.

Opções:

ARQUIVO ( nome do arquivo )

Especifica o nome do arquivo a ser acessado.

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

GENÉRICO ( somente VSAM KSDS )

Especifica que a chave de pesquisa é uma chave genérica com um comprimento especificado na opção KEYLENGTH. A busca por um registro é satisfeita quando um registro é encontrado com uma chave que possui os mesmos caracteres iniciais (chave genérica) que os especificados.

KEYLENGTH ( valor de dados )

Especifica o comprimento (binário de meia palavra) da chave que foi especificada na opção RIDFLD, exceto quando RBA ou RRN é especificado, caso em que 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, ocorre a condição INVREQ.

A condição INVREQ também ocorre se você especificar GENERIC e o KEYLENGTH não for menor que o comprimento especificado na definição do VSAM.

Não especifique um valor zero para KEYLENGTH porque os resultados são imprevisíveis.

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

NOSUSPEND (apenas RLS)

Especifica que a solicitação não deve aguardar se o VSAM estiver mantendo um bloqueio ativo no registro, incluindo registros bloqueados como resultado de um DEADLOCK.

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

NUMREC ( área de dados ) (somente VSAM KSDS)

Especifica uma área de dados binários de meia palavra que o CICS configura para o número de registros excluídos.

RBA

(Conjuntos de dados de base VSAM KSDS apenas, 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. Use esta opção apenas ao excluir registros usando endereços de bytes relativos em vez de chaves para identificar os registros.

Você não pode usar RBA para:

  • Tabelas de dados mantidos pelo usuário
  • Tabelas de dados do recurso de acoplamento
  • Quaisquer arquivos abertos no modo de acesso RLS
  • Arquivos KSDS que podem conter mais de 4 GB de dados

RIDFLD ( área de dados )

Especifica o campo de identificação do registro. O conteúdo pode ser uma chave, um endereço de byte relativo (RBA) ou um número de registro relativo. Para um endereço de byte relativo ou um número de registro relativo, o formato deste campo deve ser binário de palavra inteira. Para um endereço de byte relativo, o RIDFLD pode ser maior ou igual a zero. Para um número de registro relativo, o RIDFLD pode ser maior ou igual a 1.

O conteúdo deve ser uma chave para tabelas de dados mantidas pelo usuário ou tabelas de dados do recurso de acoplamento.

Você deve especificar esta opção se também especificou GENERIC.

RRN ( apenas VSAM RRDS )

Especifica que o campo de identificação de registro especificado na opção RIDFLD contém um número de registro relativo. Use esta opção apenas com arquivos que fazem referência a conjuntos de dados de registros relativos.

SYSID ( nome do sistema )

Especifica o nome (1 a 4 caracteres) do sistema para o qual a solicitação é direcionada.

Se você especificar SYSID e omitir RBA e RRN, também deverá especificar KEYLENGTH; ele não pode ser encontrado na definição de recurso.

TOKEN ( área de dados )

Especifica, como um valor binário de palavra inteira, um identificador exclusivo para esta solicitação DELETE. Use esse identificador para associar a solicitação de exclusão a um registro retornado em uma solicitação READ UPDATE ou BROWSE anterior para UPDATE. O valor a ser usado é o valor retornado no TOKEN mantido pela solicitação READ UPDATE ou BROWSE para UPDATE anterior.

O TOKEN pode ser enviado com a função. No entanto, se uma solicitação especificando TOKEN for enviada a um membro da Família de produtos CICS que não reconhece essa opção, a solicitação falhará.

Bloqueios retidos e ativos:

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

Solicitações DELETE para registros que retiveram bloqueios são sempre rejeitadas com uma resposta LOCKED.

Os pedidos DELETE para registros que possuem bloqueios ativos aguardam a liberação do bloqueio, exceto quando a palavra-chave NOSUSPEND é especificada, caso em que o CICS retorna a resposta RECORDBUSY.

Exemplos:

O exemplo a seguir mostra como excluir um grupo de registros em um conjunto de dados VSAM:

EXEC CICS DELETE

     FILE('MASTVSAM')

     RIDFLD(ACCTNO)

     KEYLENGTH(len)

     GENERIC

     NUMREC(NUMDEL)