Executando a Amostra Processamento de Tempo Limite

A amostra Processamento de Tempo Limite tem duas partes que são executadas separadamente:

Processamento de Tempo Limite Automático

Depois do fluxo de mensagens AutomaticTimeout ser implementado, você precisa apenas executá-lo; como o nome sugere, ele é executado automaticamente. As mensagens aparecem dez segundo à parte na fila TIMEOUT_SAMPLE_OUT_1 enquanto o intermediário está em execução.

Processamento de Tempo Limite Controlado

Depois do fluxo de mensagens ControlledTimeout ser implementado, você precisa conduzi-lo com as mensagens da amostra conforme descrito abaixo:
  1. Abra o arquivo de enfileiramento da mensagem de teste SetTenTimeout.enqueue.
  2. Clique em Gravar na Fila. Uma mensagem de pedido é enviada para a fila TIMEOUT_SAMPLE_IN_1 e dez cópias da mensagem original, dez segundos à parte, aparecem na fila TIMEOUT_SAMPLE_OUT_2.

Quando o teste for concluído, repita o procedimento com o arquivo SetUnlimitedTimeout.enqueue. Isso grava uma mensagem que contém um pedido de tempo limite ilimitado (sem fim) na fila TIMEOUT_SAMPLE_IN_2 e cópias da mensagem original, dez segundos à parte, aparecem na fila TIMEOUT_SAMPLE_OUT_2. As mensagens de saída contêm um fragmento (o primeiro registro <Fatura>) da mensagem de entrada original.

O pedido de tempo limite ilimitado é executado até que seja decidido que ele deve terminar. Você pode pará-lo com um pedido de cancelamento correspondente:

  1. Abra o arquivo de enfileiramento da mensagem de teste CancelUnlimitedTimeout.enqueue. Ele contém apenas um pedido de cancelamento para um pedido de tempo limite ilimitado contido no arquivo SetUnlimitedTimeout.enqueue.
  2. Clique em Gravar na Fila. As mensagens que param aparecem na fila TIMEOUT_SAMPLE_OUT_2.

Você também pode parar o pedido de tempo limite dez vezes da mesma maneira, utilizando o arquivo CancelTenTimeout.enqueue.

Você pode executar os tempos limites limitados e ilimitados em conjunto, conduzindo as duas mensagens bem próximas no fluxo. O nó "Controlled" as processará conforme cada ping e as mensagens de saída forem misturados na fila TIMEOUT_SAMPLE_OUT_2. Você não pode executar duas instâncias do pedido de tempo limite juntas - a segunda gerará um erro no nó Timeout Control porque ela não sobrescreverá o pedido existente. Observe que isso geralmente não é uma limitação dos nós Timeout, é uma limitação dessa amostra - os pedidos de tempo limite nos arquivos de enfileiramento na amostra têm identificadores com hardcode atribuído.

Verificando o Sucesso

O sucesso é determinado pela chegada das mensagens agregada nas filas TIMEOUT_SAMPLE_OUT_1 e TIMEOUT_SAMPLE_OUT_2. A primeira contém as mensagens do fluxo de mensagens AutomaticTimeout, que estão dez segundos à parte e continuarão aparecendo enquanto o fluxo estiver em execução. A segunda contém as mensagens do fluxo de mensagens ControlledTimeout, que estão em grupos, cada uma separada por intervalos de dez segundos, dependendo da ordem e da hora da chamada do pedido.

Para visualizar mensagens na fila TIMEOUT_SAMPLE_OUT_1, siga este procedimento:

  1. Na barra de ferramentas do workbench, clique no ícone Obter uma Mensagem de uma Fila Ícone Desenfileirar Ação.
  2. No menu drop-down, clique em Obter Mensagem para abrir a janela Desenfileirar Mensagem.
  3. Digite WBRK6_DEFAULT_QUEUE_MANAGER para o gerenciador de filas e TIMEOUT_SAMPLE_OUT_1 para a fila.
  4. Clique em Ler a partir da Fila para ler uma mensagem a partir da fila. As mensagens são automaticamente geradas e ficarão semelhantes a esta:
<TimeoutRequest>
<Action>SET</Action>
<Identifier>SampleAuto</Identifier>
<StartDate>2005-06-06</StartDate>
<StartTime>12:36:44.900</StartTime>
<Count>5</Count>
<Interval>10</Interval>
<IgnoreMissed>TRUE</IgnoreMissed>
<AllowOverwrite>TRUE</AllowOverwrite>
</TimeoutRequest>

As mensagens na fila TIMEOUT_SAMPLE_OUT_2 são visualizadas da mesma forma e contêm a mensagem de entrada inteira ou uma pequena parte dela.

Ícone Página Principal   Voltar para Home da Amostra