Como o CICS Garante a Emissão de Evento

É possível garantir a emissão de um evento usando um adaptador EP com modo de emissão síncrona e o modo de transação apropriado. Com a emissão síncrona, o processamento de formatação e emissão do evento é concluído de forma síncrona dentro da unidade de trabalho da transação de captura. A unidade de trabalho é concluída com êxito somente se o evento for emitido. O adaptador EP é vinculado a partir da tarefa de aplicativo, isto é, o evento não é colocado na fila para processamento assíncrono por um encadeamento de dispatcher EP ou uma tarefa de adaptador EP separada.

A emissão de evento síncrona não é suportada para pontos de captura do sistema, portanto, a emissão de eventos do sistema não pode ser garantida.

Os eventos síncronos podem ser transacionais ou não transacionais, mas a capacidade de recuperação do transporte deve ser configurada corretamente em cada caso.

Eventos não transacionais síncronos:
O adaptador EP deve emitir eventos para seu transporte de uma maneira irrecuperável para que os eventos não sejam retrocedidos se a unidade de trabalho falhar.
Eventos transacionais síncronos:
O adaptador EP deve emitir eventos para seu transporte de uma maneira recuperável para que os eventos transacionais sejam retrocedidos se a unidade de trabalho for restaurada.

Nem todos os adaptadores EP podem suportar a emissão síncrona com todas as combinações de TRANSMODE. Para obter informações adicionais, consulte Adaptadores de Processamento de Eventos.

Quando a emissão de um evento falha, o adaptador EP fornece informações sobre o evento e o motivo de ele não ter sido emitido, incrementa estatísticas relevantes sobre o evento e faz com que a unidade de trabalho da transação de captura seja restaurada.

Considerações sobre Planejamento

Compreender a forma como a emissão de evento síncrona funciona ajuda a entender como usar da melhor forma esse recurso. Algumas coisas que devem ser consideradas ao usar a emissão de evento síncrona incluem: segurança, desempenho, transporte e efeitos nos aplicativos.

A transação de captura de evento deve ter autoridade de gravação para o transporte de emissão de evento (por exemplo, a fila do WebSphere MQ do adaptador EP do WebSphere MQ) para emissões síncronas; a tarefa de dispatcher ou adaptador EP que emite eventos precisa da autoridade de gravação para emissão assíncrona.

A emissão de evento síncrono transacional é recuperável. Ao usar o adaptador EP do WebSphere MQ do CICS, os eventos são colocados na fila de eventos do WebSphere MQ sob o ponto de sincronização, portanto, talvez seja necessário revisar a alocação de espaço do conjunto de dados de log do WebSphere MQ. Ao usar o adaptador EP CICS TSQ, esse adaptador aumenta o uso da fila de TS recuperável, portanto, talvez seja necessário revisar o tamanho e os atributos do fluxo de logs do CICS. O uso de eventos transacionais síncronos com uma tarefa que é executada por um tempo longo sem tomar um ponto de sincronização pode fazer com que o log estoure.

Ao usar a emissão síncrona, um adaptador EP customizado deve respeitar o sinalizador EPAP_RECOVER no contêiner DFHEP.ADAPTPARM. Para obter informações adicionais, consulte Adaptador EP Customizado.

Garantir a emissão de eventos fornece a oportunidade de construir aplicativos críticos baseados em eventos e de estender aplicativo existentes de uma maneira confiável. O conflito está no fato de o processamento síncrono, que é essencial para garantir que os eventos sejam emitidos, pode ter um impacto no tempo de resposta do aplicativo. Um uso cuidadoso da emissão de evento síncrona minimiza o impacto no aplicativo. Consulte Desempenho do Processamento de Eventos para obter informações adicionais sobre considerações de desempenho quando se garante a emissão de eventos.

Uma única unidade de trabalho pode causar a emissão de muitos eventos, em que alguns deles são transacionais e outros são não transacionais. Se uma transação de captura não conseguir emitir um evento síncrono, a unidade de trabalho será restaurada com todos os eventos transacionais que ela capturar. Os eventos não transacionais ainda podem ser emitidos.

O adaptador EP, seus recursos (como uma fila do WebSphere MQ) e o consumidor de evento devem ser configurados com capacidade suficiente para processar o volume de pico esperado de eventos a serem emitidos para evitar que a transação de captura falhe.

Para ajudar a decidir onde usar a emissão síncrona, eis algumas considerações para comparação entre emissão síncrona e assíncrona:

Considere as seguintes características quando estiver usando emissão de evento assíncrona:
  • A ordem na qual os eventos são emitidos de um programa CICS pode ser diferente da ordem na qual eles foram capturados.
  • A ordem na qual os eventos são emitidos pode variar de uma execução para outra de um programa CICS capacitado para eventos.
  • A emissão de eventos não é garantida. Eventos podem ser perdidos se o CICS terminar anormalmente com eventos em andamento. No caso improvável de uma falha do sistema CICS após a captura de um evento mas antes de sua emissão, o evento pode não ser emitido, independente de o adaptador EP na ligação de evento especificar ou não que os eventos são transacionais.
  • O custo de formatar e emitir o evento é transferido para um encadeamento de processamento de eventos ou para uma transação separada.
  • Há um impacto mínimo sobre a transação de captura.
  • Nenhuma mudança é necessária no código do aplicativo.
Considere as seguintes características quando estiver usando emissão de evento síncrona:
  • Os eventos são emitidos a partir de um programa CICS na ordem na qual eles foram capturados.
  • A emissão de eventos é garantida quando a transação de captura concluir com êxito.
  • Os eventos podem ser considerados como extensões do aplicativo para dados críticos aos negócios.
  • Quando a emissão síncrona é usada com o adaptador EP do WebSphere MQ, a entrega dos eventos pode ser garantida.
  • O custo de formatar e emitir o evento é incluído ao encadeamento do aplicativo.
  • Há um impacto maior sobre a transação de captura; para um evento emitido em um encadeamento do aplicativo, uma falha na emissão do evento faz com que o aplicativo retroceda. Considere a configuração da transação de captura e o impacto sobre o uso geral de recursos do sistema.