Domingo 14 Agosto 2022

Grave dados em uma fila de armazenamento temporário.

Condições: INVREQ, IOERR, ISCINVREQ, ITEMERR, LENGERR, LOCKED, NOSPACE, NOTAUTH, QIDERR, SYSIDERR

Este comando é thread-safe quando usado com uma fila no armazenamento principal ou auxiliar, seja em uma região CICS local ou função enviada para uma região CICS remota por meio de uma conexão IPIC. Também é threadsafe quando é usado com uma fila em um conjunto de armazenamento temporário compartilhado em um recurso de acoplamento z / OS que é gerenciado por um servidor de compartilhamento de dados de armazenamento temporário (servidor TS). O comando não é thread-safe quando sua função é enviada para uma região CICS remota por meio de outro tipo de conexão diferente de IPIC.

Nota para roteamento de transação dinâmica: O uso deste comando pode criar afinidades entre transações que afetam adversamente o uso do roteamento de transação dinâmica. Para obter mais informações sobre afinidades de transação, consulte Afinidade .

Descrição:

WRITEQ TS armazena registros de dados temporários em uma fila de armazenamento temporário no armazenamento principal ou auxiliar.

Se uma fila for definida como recuperável, o programa não deve emitir um comando WRITEQ TS se um comando DELETEQ TS tiver sido emitido anteriormente na mesma unidade lógica de trabalho. Ou seja, seguindo um comando DELETEQ TS , um comando WRITEQ TS não deve ser emitido até que ocorra um ponto de sincronização.

Se não houver espaço suficiente disponível no conjunto de dados de armazenamento temporário ou armazenamento principal para atender à solicitação WRITEQ TS , a tarefa será suspensa até que haja espaço disponível. (Outras tarefas no sistema podem liberar espaço.) Se não houver espaço disponível e você especificou a opção NOSUSPEND , a condição NOSPACE é levantada e você pode decidir se deseja interromper a transação com um encerramento anormal ou aguardar.

Opções:

AUXILIARY

Especifica que a fila de armazenamento temporário está em um dispositivo de armazenamento de acesso direto no armazenamento auxiliar. Este é o valor padrão para a primeira gravação.

Esta opção é ignorada nas seguintes situações:

  • Para uma fila existente
  • Se uma definição de recurso TSMODEL com um prefixo correspondente for instalada no sistema
  • Se a fila de dados de armazenamento temporário especificada residir em um conjunto de armazenamento temporário compartilhado
  • Se o CICS foi inicializado com suporte apenas principal TS, ou seja, o parâmetro de inicialização do sistema TS = (, 0) foi especificado

FROM ( área de dados )

Especifica os dados a serem gravados no armazenamento temporário.

ITEM ( área de dados )

Especifica, como um valor binário de meia palavra, o número do item do registro lógico a ser substituído na fila (opção REWRITE também especificada).

ITEM pode ser um campo de entrada e saída para o CICS. Portanto, os programadores devem garantir que o campo ITEM não seja definido no armazenamento protegido ao emitir um comando WRITEQ. Se o valor ITEM for um literal (por exemplo), a verificação de comando (CMDPROT = YES) resultaria em um abend AEYD ocorrendo.

Nota: Em liberações anteriores, ITEM em um WRITEQ TS sem REWRITE executaria uma função semelhante a NUMITEMS. Esta função é mantida para compatibilidade.

LENGTH ( valor de dados )

Especifica o comprimento, como um valor binário de meia palavra, dos dados a serem gravados.

Você deve especificar esta opção se estiver usando SYSID.

O comprimento máximo é 32763. Para obter uma descrição de um limite superior seguro, consulte as opções de LENGTH em comandos CICS .

MAIN

Especifica que a fila de armazenamento temporário está no armazenamento principal.

Esta opção é ignorada nas seguintes situações:

  • Para uma fila existente
  • Se uma definição de recurso TSMODEL com um prefixo correspondente for instalada no sistema
  • Se a fila de dados de armazenamento temporário especificada residir em um conjunto de armazenamento temporário compartilhado

Se você usar a opção MAIN para gravar dados em uma fila de armazenamento temporário em um sistema remoto, os dados serão armazenados no armazenamento principal se o sistema remoto for acessado pelo recurso de operação multiregião (MRO) do CICS ou conectividade IPIC. Se essas condições não forem atendidas, os dados serão armazenados no armazenamento auxiliar.

Se o sistema for MRO e MAIN for especificado, a fila não será recuperável e SYNCPOINT ROLLBACK não funcionará.

NOSUSPEND

Especifica que, se houver espaço insuficiente no conjunto de dados de armazenamento temporário ou no armazenamento principal para atender à solicitação WRITEQ TS, o programa aplicativo não será suspenso. Em vez disso, a condição NOSPACE é gerada.

No entanto, se um comando HANDLE CONDITION para NOSPACE estiver ativo quando o comando é executado, essa condição também substitui a ação padrão e o controle é passado para a etiqueta do usuário fornecida no comando HANDLE CONDITION. Essa condição tem precedência sobre a opção NOSUSPEND, mas é, obviamente, negada por NOHANDLE ou RESP.

NUMITEMS ( área de dados )

Especifica um campo binário de meia palavra em que o CICS armazena um número que indica quantos itens existem agora na fila, após a execução do comando WRITEQ TS.

Se o registro iniciar uma nova fila, o número do item atribuído é 1; os números dos itens subsequentes seguem sequencialmente. NUMITEMS não é válido se REWRITE for especificado.

QNAME ( nome )

Uma alternativa para QUEUE, QNAME especifica o nome simbólico (1 - 16 caracteres) da fila a ser gravada. Se o nome tiver menos de 16 caracteres, você ainda deve usar um campo de 16 caracteres, preenchido com espaços em branco, se necessário. Se a fila for definida para o CICS como remota, a solicitação será enviada para um sistema remoto. Não use X'FA ' a X'FF' , ou **, ou $$ ou DF, como o primeiro caractere do nome; esses caracteres são reservados para uso do CICS. O nome não pode consistir apenas em zeros binários.

QUEUE ( nome )

Especifica o nome simbólico (1 - 8 caracteres) da fila a ser gravada. Se o nome tiver menos de 8 caracteres, você ainda deve usar um campo de 8 caracteres, preenchido com espaços em branco, se necessário. Se a fila for definida para o CICS como remota, a solicitação será enviada para um sistema remoto. Não use X'FA ' a X'FF' , ou **, ou $$ ou DF, como o primeiro caractere do nome; esses caracteres são reservados para uso do CICS. O nome não pode consistir apenas em zeros binários.

REWRITE

Especifica que o registro existente na fila deve ser substituído pelos dados fornecidos. Se a opção REWRITE for especificada, a opção ITEM também deverá ser especificada. Se a fila especificada não existir, ocorre a condição QIDERR. Se o item correto em uma fila existente não puder ser encontrado, a condição ITEMERR ocorre e os dados não são armazenados.

SYSID ( nome do sistema )

(Filas remotas e compartilhadas apenas) Especifica o nome do sistema (1 - 4 caracteres) que identifica o sistema remoto ou conjunto de filas compartilhadas para o qual a solicitação é direcionada. Observe que as definições de recursos do TSMODEL não suportam a especificação de um SYSID para uma fila que reside em um conjunto de compartilhamento de dados de armazenamento temporário. Use a opção QUEUE ou QNAME em seu lugar. Usar um SYSID explícito para um conjunto de filas compartilhadas requer o suporte de uma tabela de armazenamento temporário (TST).