Domingo 14 Agosto 2022

Condições: INVREQ, IOERR, ISCINVREQ, LENGERR, NOTAUTH, RESUNAVAIL, SYSIDERR, TERMIDERR, TRANSIDERR, USERIDERR

 

Nota: Para roteamento de transação dinâmica : Se START for cancelado posteriormente por outra tarefa, ou se a transação iniciada usar RETRIEVE WAIT, afinidades de intertransação podem ser criadas que afetam adversamente o uso de roteamento de transação dinâmica. Para obter mais informações, consulte Afinidade .

Descrição:

START inicia uma tarefa, em um sistema local ou remoto, em um horário especificado. A hora é especificada por INTERVAL, AFTER, AT ou TIME. Consulte a seção sobre tempos de expiração em Controle de intervalo .

A tarefa inicial pode passar dados para a tarefa iniciada. A tarefa inicial também pode especificar um terminal a ser usado pela tarefa iniciada como seu recurso principal.

O padrão é INTERVAL (0), mas para C o padrão é APÓS HORAS (0) MINUTOS (0) SEGUNDOS (0).

CEDF é uma exceção ao comando START e não é válido como um nome TRANSID. Portanto, não tente iniciar o CEDF dessa maneira.

Importante: existe uma regra de 6 horas, se o START for acionado a qualquer momento dentro de 6 horas após a hora especificada no START, ele é executado imediatamente. Isso acontece independentemente de as 6 horas anteriores incluirem meia-noite. Para ilustrar aqui estão alguns exemplos:

EXEC CICS® START TIME (123000) Este comando, emitido às 05:00 ou 07:00 de segunda-feira, expira às 12:30 do mesmo dia.

EXEC CICS START TIME (020000) Este comando, emitido às 05:00 ou 07:00 de segunda-feira, expira imediatamente porque o horário especificado está dentro das 6 horas anteriores.

Para obter mais informações, consulte Tempos de expiração .

Você pode usar as opções RTRANSID, RTERMID e QUEUE para passar mais dados para a tarefa iniciada. Essas opções podem conter valores de dados arbitrários com significados que dependem do que é especificado nas tarefas iniciadas e iniciais. Uma maneira possível de usá-los é na seguinte situação. Uma tarefa pode iniciar uma segunda tarefa, passando a ela um nome de transação e um nome de terminal a ser usado quando a segunda tarefa iniciar uma terceira tarefa. A primeira tarefa também pode passar o nome de uma fila a ser acessada pela segunda tarefa.

Se você estiver usando uma conexão IPIC, o comprimento máximo da área de dados FROM é de 32.500 bytes. Esse limite permite a área de dados FROM de 32.500 bytes e espaço para cabeçalhos.

START com TERMID especificado não propaga o registro de dados de origem (ODR), portanto, as tarefas são sempre iniciadas em um novo ponto de origem.

As seguintes restrições devem ser satisfeitas antes que a transação a ser executada possa ser iniciada:

  • O intervalo especificado deve ter decorrido ou o tempo de expiração especificado deve ser alcançado. Para obter mais informações, consulte Controle de intervalo . Especifique as opções INTERVAL ou AFTER quando uma transação deve ser executada em um sistema remoto, para evitar complicações quando os sistemas local e remoto estão em fusos horários diferentes.
  • Se você especificar a opção TERMID, o terminal nomeado deve existir e estar disponível. Se o terminal nomeado não existir quando o intervalo de tempo expirar, o START será descartado.
  • Se você especificar a opção PROTECT, a tarefa inicial deve ter um ponto de sincronização bem-sucedido. Esta opção, acoplada a extensões para tabelas de sistema, reduz a exposição a dados perdidos ou duplicados causados ​​por falha de uma tarefa inicial.
  • Se a transação a ser executada for em um sistema remoto, o formato dos dados deve ser declarado igual ao dos dados no sistema local. Use as opções RDO DATASTREAM e RECORDFORMAT. Para CICS para CICS, essas opções são sempre os valores padrão. Para CICS para IMS / VS, certifique-se de especificar os valores corretos.

Executar um comando START que nomeia uma transação no sistema local cancela todos os comandos POST pendentes executados pela tarefa inicial.

Você pode enfileirar comandos START especificando a opção LOCALQ na definição de recurso RDO TRANSACTION, conforme descrito em Atributos TRANSACTION .

Passando dados por controle de intervalo

Se os dados devem ser transmitidos pelo controle de intervalo (usando a opção FROM), eles são enfileirados em uma fila de armazenamento temporário. Use a opção REQID para especificar o nome da fila de armazenamento temporário a ser usada. Esse identificador pode ser recuperável (em termos de armazenamento temporário) ou irrecuperável. Para obter mais informações sobre como definir filas de armazenamento temporário recuperáveis, consulte Recursos do TSMODEL .

Se você também especificar a opção PROTECT, deverá definir a fila de armazenamento temporário identificada pela opção REQID como recuperável. Se você não especificar a opção PROTECT, não defina a fila de armazenamento temporário como recuperável. Podem ocorrer resultados imprevisíveis se você não seguir essas regras. Consulte as solicitações de INÍCIO .

Se você especificar a opção FROM e não a REQID, uma fila de armazenamento temporário com prefixo 'DF' padrão será usada. As mesmas regras se aplicam conforme listado anteriormente; especifique a opção PROTECT apenas se definir as filas de armazenamento temporário com prefixo 'DF' como recuperáveis.

Um comando START com REQID, emitido a partir de uma tarefa que foi iniciada por um START com o mesmo REQID, retorna um abend AEIQ (condição IOERR) se os dados FROM para a tarefa não foram lidos por um RETRIEVE.

Você também receberá esse erro se mais de um comando START com o mesmo REQID for emitido por uma tarefa ou tarefas no mesmo sistema CICS. As regiões do CICS TS sempre rejeitam com um IOERR quaisquer comandos START que especifiquem um REQID duplicado.

Tarefas iniciadas sem dados são executadas sem um endereço de instalação. Tarefas iniciadas com dados executados com um endereço de instalação de um ICE até que os dados sejam recuperados.

Se um ICRX for usado, ele será salvo nas reinicializações. Se a solicitação de início for cancelada posteriormente, o ICRX será excluído.

Verificação de erros e considerações de desempenho

A opção NOCHECK especifica que nenhuma resposta (para executar o comando START) é esperada no início da transação. Para comandos START que nomeiam tarefas a serem iniciadas em um sistema local, condições de erro são retornadas; as condições de erro não são retornadas para tarefas a serem iniciadas em um sistema remoto. A opção NOCHECK permite que o CICS melhore o desempenho quando o comando START deve ser enviado para um sistema remoto; também é um pré-requisito se o envio do comando START for enfileirado enquanto se aguarda o estabelecimento de links para o sistema remoto.

Iniciando tarefas sem terminais

Se a tarefa a ser iniciada não estiver associada a um terminal, cada comando START inicia uma tarefa separada, independentemente de os dados serem passados ​​para a tarefa iniciada. Os exemplos a seguir mostram como iniciar uma tarefa específica, não associada a um terminal, em uma hora:

EXEC CICS START

     TRANSID('TRNL')

     INTERVAL(10000)

     REQID('NONGL')

 

EXEC CICS START

     TRANSID('TRNL')

     AFTER HOURS(1)

     REQID('NONGL')

 

Iniciando tarefas com terminais, mas sem dados

Apenas uma tarefa é iniciada se vários comandos START, cada um especificando a mesma transação e terminal, expirarem ao mesmo tempo ou antes que o terminal esteja disponível.

Os exemplos a seguir mostram como solicitar o início de uma tarefa associada a um terminal. Como nenhum identificador de solicitação é especificado nesses exemplos, o CICS atribui um e o retorna ao programa aplicativo no campo EIBREQID do bloco de interface EXEC.

EXEC CICS START

     TRANSID('TRN1')

     TIME(185000)

     TERMID('STA5')

 

EXEC CICS START

     TRANSID('TRN1')

     AT HOURS(18) MINUTES(50)

     TERMID('STA5')

 

Iniciando tarefas com terminais e dados

Os dados são transmitidos para uma tarefa iniciada se uma ou mais das opções FROM, RTRANSID, RTERMID e QUEUE forem especificadas. Esses dados são acessados ​​pela tarefa iniciada usando um comando RETRIEVE.

É possível passar muitos registros de dados para uma nova tarefa emitindo vários comandos START, cada um especificando a mesma transação e terminal.

A execução do primeiro comando START faz com que a nova tarefa seja iniciada e permite que ela recupere os dados especificados no comando. A nova tarefa também é capaz de recuperar dados especificados nos comandos START subsequentes que expiram antes do término da nova tarefa. Se a transação foi definida como reiniciável (definindo a transação usando a opção RDO RESTART (YES)) e esses dados não foram recuperados antes de a nova tarefa ser finalizada, outra nova tarefa é iniciada e pode recuperar os dados pendentes.

Se a transação termina de forma anormal e não foi definida como reiniciável, nenhuma nova tarefa é iniciada e os dados são descartados.

Os exemplos a seguir mostram como iniciar uma tarefa associada a um terminal e passar dados para ele:

EXEC CICS START

     TRANSID('TRN2')

     TIME(173000)

     TERMID('STA3')

     REQID(DATAREC)

     FROM(DATAFLD)

     LENGTH(100)

 

EXEC CICS START

     TRANSID('TRN2')

     AT HOURS(17) MINUTES(30)

     TERMID('STA3')

     REQID(DATAREC)

     FROM(DATAFLD)

     LENGTH(100)

 

Ao usar a linguagem C, use as opções AFTER / AT HOURS, MINUTES e SECONDS porque C não fornece um tipo de dados decimal compactado. Você pode usar INTERVAL ou TIME, mas se o valor especificado não for uma constante inteira, o aplicativo será responsável por garantir que o valor transmitido ao CICS esteja no formato decimal compactado.

Transações roteadas dinamicamente iniciadas por comandos START

Algumas transações iniciadas por um subconjunto de comandos START podem ser roteadas dinamicamente para uma região remota. Para obter informações gerais sobre o roteamento de transação dinâmica e informações específicas sobre quais transações iniciadas por comandos START são elegíveis para roteamento dinâmico, consulte Transações de roteamento chamadas por comandos START .

Para uma solicitação START adiada , se a transação do usuário a ser iniciada for elegível para roteamento dinâmico, um elemento de controle de intervalo (ICE) é criado e mantido na região solicitante com um ID de transação de CDFS. Quando o ICE expirar, o CDFS será executado e iniciará a transação do usuário. A solicitação será roteada com base no estado da definição da transação e do sysplex naquele momento. Certifique-se de que a segurança do CDFS esteja configurada corretamente.

Nota: Você não pode usar a propagação de identidade com um comando START enviado para uma região remota através de uma conexão LU61 ou LU62. Para este tipo de conexão, o ICRX não será enviado e as informações de identidade serão perdidas. A propagação de identidade também não está disponível para comandos START roteados dinamicamente com atraso.

Falhas de START sem condições de exceção

Nas seguintes circunstâncias, um comando START é executado sem erros, mas a tarefa iniciada nunca ocorre:

  • Quando a transação ou seu programa inicial está indisponível no momento em que o CICS tenta criar a tarefa.
  • Quando o START especifica um terminal e um tempo de expiração, e o terminal não está definido (e não pode ser localizado pelas saídas XICTENF ou XALTENF) no tempo de expiração.
  • Quando o START especifica um terminal que não está definido (e não pode ser localizado pelas saídas XICTENF ou XALTENF) no momento em que o CICS tenta criar a tarefa.
  • Para um START adiado , quando a verificação de segurança do CDFS da transação do sistema falha.

Essas exposições resultam do atraso entre a execução do comando START e o momento de criação da tarefa. Mesmo quando o START é imediato, o CICS pode atrasar a criação da tarefa, seja porque o terminal necessário não está livre ou devido a outras restrições do sistema.

Você pode usar os comandos INQUIRE para garantir que a transação e o programa estejam ativados no momento do comando START, mas qualquer um pode ficar indisponível antes da criação da tarefa.

Você obtém uma condição TERMIDERR se o terminal solicitado não existir no momento do START, mas se for excluído posteriormente, como ocorre se o usuário fizer logoff, sua solicitação de START será descartada com a definição do terminal.

Propagação do contexto do aplicativo

A propagação do contexto do aplicativo é um processo que passa dados do contexto do aplicativo de uma tarefa que emite um comando START para uma tarefa que executa a transação iniciada. Os dados são usados ​​para monitorar e medir o uso de recursos do aplicativo. Os contextos de aplicativo inicial e atual são transmitidos entre aplicativos. Os dados de contexto do aplicativo não são propagados com os seguintes comandos START:

  • Um comando EXEC CICS START local gerado a partir de um acionador de dados transitórios (TD).
  • Um comando EXEC CICS START local assíncrono recebido de um adaptador de processamento de eventos (EP).
  • Um comando EXEC CICS START que especifica um valor de parâmetro TERMID ou USERID .

Para obter mais informações, consulte Contexto do aplicativo .

Opções:

DEPOIS DE

Especifica o intervalo de tempo que deve decorrer antes que a nova tarefa seja iniciada.

Insira a hora em AFTER e AT de duas maneiras:

Uma combinação de pelo menos dois de HORAS (0 - 99), MINUTOS (0 - 59) e SEGUNDOS (0 - 59). HORAS (1) SEGUNDOS (3) significa uma hora e três segundos (o padrão dos minutos é zero).

Como um de HOURS (0 - 99), MINUTES (0 - 5999) ou SECONDS (0 - 359999). HORAS (1) significa uma hora. MINUTOS (62) significa uma hora e dois minutos. SEGUNDOS (3723) significa uma hora, dois minutos e três segundos.

PARA

Especifica a hora em que a nova tarefa deve ser iniciada. Para saber como inserir a hora, veja a opção DEPOIS.

FMH

Especifica que os dados do usuário a serem passados ​​para a tarefa iniciada contêm cabeçalhos de gerenciamento de função. FMH não é válido para terminais LUTYPE2 ou LUTYPE3.

FROM ( área de dados )

Especifica os dados a serem armazenados para uma tarefa que deve ser iniciada em algum momento futuro.

HORAS ( valor de dados )

Especifica um valor binário de palavra inteira no intervalo de 0 a 99. HOURS é uma subopção das opções AFTER e AT. Para seu uso e significado, veja a opção DEPOIS.

INTERVAL ( hhmmss )

Especifica o tempo de expiração como um intervalo de tempo que deve decorrer a partir do momento em que o comando START é emitido. O mm e ss estão cada um no intervalo de 0 a 59. O tempo especificado é adicionado ao horário do relógio atual pelo CICS quando o comando é executado, para calcular o tempo de expiração.

LENGTH ( valor de dados )

Especifica um valor de dados binários de meia palavra que é o comprimento dos dados a serem armazenados para a nova tarefa. Consulte as opções de LENGTH em comandos CICS para obter orientação sobre os limites ao configurar a opção LENGTH.

MINUTES ( dados-valor )

Especifica como um valor binário de palavra inteira o número de minutos para uso com AFTER ou AT. O valor deve estar no intervalo de 0 a 59 se HOURS ou SECONDS também for especificado ou no intervalo de 0 a 5999, caso contrário. MINUTES é uma subopção das opções AFTER e AT. Para seu uso e significado, veja a opção DEPOIS.

NOCHECK

Especifica que, para um sistema remoto, o CICS melhora o desempenho do comando START fornecendo menos verificação de erros e um pouco menos função. Para obter mais informações, consulte a seção sobre como melhorar o desempenho das solicitações START intersistema em Melhorando o desempenho das solicitações START intersistema

PROTEGER

Especifica que a nova tarefa não é iniciada até que a tarefa inicial tenha obtido um ponto de sincronização. Se a tarefa inicial terminar de forma anormal antes do ponto de sincronização ser obtido, a solicitação para iniciar a nova tarefa será cancelada. Se a opção REQID também for especificada, o identificador do pedido deve ser um nome definido como recuperável para armazenamento temporário. Se a transação iniciada for remota, PROTECT especifica que ela não deve ser agendada até que a transação local tenha concluído com êxito um ponto de sincronização. Para obter mais informações sobre a opção PROTECT com transações remotas, consulte Melhorando o desempenho de solicitações START intersistema

QUEUE ( nome )

Especifica um nome (1 - 8 caracteres) que é passado para a tarefa iniciada. Se este nome representar uma fila de armazenamento temporário, a fila deve ser local para a tarefa iniciada. O conteúdo da fila não é passado.

Se você também estiver especificando REQID, certifique-se de que o nome do REQID e o nome da FILA não sejam iguais.

REQID ( nome )

Especifica um nome (1 - 8 caracteres), que deve ser exclusivo, para identificar um comando. Você pode usar esta opção quando outra tarefa deve ser fornecida com a capacidade de cancelar um comando não expirado.

Se você omitir essa opção, o CICS gerará um identificador de pedido exclusivo no campo EIBREQID do bloco de interface EXEC, a menos que você especifique a opção NOCHECK, caso em que o campo EIBREQID é definido como nulos e não pode ser usado posteriormente para cancelar o comando START.

Se você incluir qualquer uma das opções de dados (FROM, RTERMID, RTRANSID ou QUEUE), os dados serão armazenados em uma fila TS usando o nome REQID especificado (ou gerado pelo CICS) como o identificador. O registro da fila assim identificado deve ser local para o sistema CICS onde o comando START é processado. O comando START é processado no sistema identificado pela opção SYSID ou, se a opção SYSID for omitida, no sistema associado à opção TRANSID.

RTERMID ( nome )

Especifica um valor (1 - 4 caracteres), por exemplo, um nome de terminal, que pode ser recuperado quando a transação, especificada na opção TRANSID no comando START, é iniciada.

Quando recuperado, o valor pode ser usado na opção TERMID de um comando START subsequente.

RTRANSID ( nome )

Especifica um valor (1 - 4 caracteres), por exemplo, um nome de transação, que pode ser recuperado quando a transação, especificada na opção TRANSID no comando START, é iniciada.

Quando recuperado, o valor pode ser usado na opção TRANSID de um comando START subsequente.

SECONDS ( dados-valor )

Especifica um valor binário de palavra inteira no intervalo 0 - 59, quando HOURS ou MINUTES também são especificados, ou 0 - 359999 quando SECONDS é a única opção especificada. SECONDS é uma subopção das opções AFTER e AT. Para seu uso e significado, veja a opção DEPOIS.

SYSID ( nome do sistema )

Especifica o nome do sistema para o qual a solicitação é direcionada.

TERMID ( nome )

Especifica o identificador simbólico (1 - 4 caracteres alfanuméricos) do recurso principal associado a uma transação a ser iniciada como resultado de um comando START. Este recurso principal pode ser um terminal (o caso usual) ou uma sessão APPC. Onde uma sessão APPC é especificada, o nome da conexão (ou conjunto de modos) é usado em vez de um identificador de terminal. Esta opção é necessária quando a transação a ser iniciada deve se comunicar com um terminal; caso contrário, deve ser omitido.

Defina o identificador do terminal como um terminal local ou remoto no sistema no qual o comando START é executado quando o início da transação entra em vigor.

A opção TERMID é usada em dados de saltos anteriores coletados. Para obter mais informações sobre como usar a opção TERMID com dados de saltos anteriores, consulte Características de dados de saltos anteriores .

Não use a opção TERMID se estiver usando propagação de identidade.

HORA ( hhmmss )

Especifica a hora em que uma nova tarefa é iniciada.

Ao usar a linguagem C, use as opções AFTER / AT HOURS, MINUTES e SECONDS porque C não fornece um tipo de dados decimal compactado. Você pode usar TIME, mas se o valor especificado não for uma constante inteira, o aplicativo será responsável por garantir que o valor transmitido ao CICS esteja no formato decimal compactado.

TRANSID ( nome )

Especifica o identificador simbólico (1 - 4 caracteres) da transação a ser executada por uma tarefa iniciada como resultado de um comando START.

Se você especificar SYSID e nomear um sistema remoto, a transação será considerada nesse sistema se a transação for definida como remota. Caso contrário, a definição do recurso de transação é usada para descobrir se a transação está em um sistema local ou remoto.

A opção TRANSID é usada em dados de saltos anteriores coletados. Para obter mais informações, consulte Características de dados de saltos anteriores .

USERID ( dados-valor )

Especifica o ID do usuário sob cuja autoridade a transação iniciada deve ser executada, se a transação iniciada não estiver associada a um terminal (ou seja, quando TERMID não for especificado). Este ID do usuário é referido como userid1 .

Se você omitir TERMID e USERID, o CICS usará, em vez disso, o ID do usuário sob o qual a transação que emite o comando START está em execução. Este ID do usuário é referido como userid2 .

Usando userid1 ou userid2 , o CICS garante que uma transação iniciada sempre seja executada sob um ID de usuário válido, que deve ser autorizado para todos os recursos referenciados pela transação iniciada.

O CICS executa uma verificação de segurança substituta em relação ao userid2 para verificar se este usuário está autorizado para o userid1 . Se userid2 não estiver autorizado, o CICS retorna uma condição NOTAUTH.

Se você estiver usando propagação de identidade e sua tarefa tiver um ID de usuário distribuído associado a seu contexto de segurança, essas informações não serão propagadas para tarefas iniciadas com a opção USERID.