Thursday 21 November 2024

Programe o uso de um recurso por uma tarefa (desenfileirar).

Condições: INVREQ, LENGERR

Este comando é threadsafe se for definido como LOCAL. Não é threadsafe se for definido como GLOBAL.

Nota para roteamento de transação dinâmica: O uso deste comando pode criar afinidades entre transações que afetam adversamente o uso de roteamento de transação dinâmica, a menos que o nome especificado em RESOURCE corresponda ao nome especificado em uma definição de recurso ENQMODEL instalada, que tem escopo de todo o sysplex. Consulte Afinidade para obter mais informações sobre afinidades de transação.

Descrição:

DEQ faz com que um recurso atualmente enfileirado pela tarefa seja liberado para uso por outras tarefas.

Se uma tarefa for enfileirada, mas não for removida de um recurso, o CICS® libera automaticamente o recurso durante o processamento do ponto de sincronização ou quando a tarefa é encerrada. Um recurso no contexto deste comando é qualquer string de 1–255 bytes, estabelecida por padrões internos, para proteger contra ações conflitantes entre tarefas ou para causar thread único dentro de um programa.

Ao emitir o comando DEQ, o recurso a ser retirado da fila deve ser identificado pelo método usado durante o enfileiramento no recurso. Se nenhum enfileiramento foi emitido para o recurso, o desenfileiramento será ignorado.

Se mais de um comando ENQ for emitido para um recurso por uma tarefa, esse recurso permanecerá pertencente à tarefa até que a tarefa emita um número correspondente de comandos DEQ.

Quando um comando EXEC CICS DEQ (ou ENQ) é emitido para um recurso cujo nome corresponde a uma definição de recurso ENQMODEL instalada, o CICS verifica o valor do atributo ENQSCOPE para determinar se o escopo é local ou todo o sysplex. Se o ENQSCOPE não estiver em branco, o CICS tratará o ENQ ou DEQ como todo o sysplex e transmitirá um nome da fila e o nome do recurso para a serialização de recurso global z / OS para gerenciar o enfileiramento. Se o atributo ENQSCOPE for deixado em branco (o valor padrão), o CICS tratará o DEQ como local para a região emissora do CICS. Se nenhum ENQMODEL corresponder ao nome do recurso, o escopo do comando DEQ é local. Para obter mais informações sobre os recursos ENQMODEL, consulte Recursos ENQMODEL .

Opções:

LENGTH ( valor de dados )

especifica que o recurso a ser retirado da fila tem um comprimento fornecido pelo valor dos dados. O valor dos dados é um valor binário de meia palavra no intervalo de 1 a 255. Se o valor especificado estiver fora desse intervalo, ocorre uma condição LENGERR. Se a opção LENGTH for especificada em um comando ENQ, ela também deve ser especificada no comando DEQ para esse recurso e os valores dessas opções devem ser os mesmos.

MAXLIFETIME ( cvda )

especifica a duração do ENQ sendo lançado. Os valores CVDA são:

UOW

O enqueue foi adquirido com a duração de uma unidade de trabalho. Este é o valor padrão.

Nota: Para compatibilidade com releases anteriores do CICS, um valor CVDA de LUW também é suportado.

TASK

ENQ foi adquirido com a duração de uma tarefa.

RESOURCE(data-area)

especifica uma área cujo endereço representa o recurso a ser retirado da fila ou uma variável que contém o recurso (um nome de funcionário, por exemplo). No último caso, você deve usar a opção LENGTH.

Exemplos:

Os exemplos a seguir mostram como retirar da fila de um recurso:

EXEC CICS DEQ

     RESOURCE(RESNAME)

 

EXEC CICS DEQ

     RESOURCE(SOCSECNO)

     LENGTH(9)