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)