Partilhar via


Usando eventos COM+ com componentes em fila de COM+

O serviço de eventos COM+ é usado para gerenciar a entrega de eventos de editores para assinantes. O serviço de componentes enfileirados COM+ pode ser usado para tornar independentes os tempos de processamento do editor e do assinante, enfileirando a mensagem do editor e depois reproduzindo-a para o assinante. Se você precisa ou não usar o serviço de componentes em fila depende da lógica de negócios subjacente do seu aplicativo. Se você precisar ter eventos independentes de tempo, poderá criá-los usando o serviço de eventos COM+ com o serviço de componentes enfileirados COM+.

Observação

Para obter informações adicionais sobre como usar o serviço de componentes enfileirados COM+, consulte Componentes enfileirados COM+.

 

O serviço de componentes enfileirados mantém a invocação de ordem de método em uma única mensagem. O gravador agrupa todas as invocações de método em uma mensagem e, em seguida, o player invoca esses métodos em ordem quando a mensagem é processada.

Um gravador e um leitor de componentes em fila podem ser posicionados em qualquer um dos dois locais seguintes:

  • Entre o editor e o objeto do evento
  • Entre o objeto do evento e o assinante

Ao posicionar o gravador e o reprodutor entre o publicador e o objeto de evento, está a tornar a classe de eventos componente enfileirável. O componente de classe de evento deve estar marcado para enfileiramento e ser ativado pelo jogador/utilizador em um processo separado do publicador.

Para entregar eventos de forma assíncrona, componha o gravador e o player entre o objeto de evento e o assinante e defina o atributo Queued do objeto de assinatura. Isso define SubscriberMoniker da seguinte forma: "queue:/new:/{12345678-1234-1234-1234-123456789012}".

Há uma implicação de ordem de entrega a considerar ao utilizar componentes em fila numa situação de evento. Como o serviço de componentes enfileirados registra e reproduz todas as chamadas dentro do tempo de vida de um único objeto em uma mensagem, todas as chamadas são repetidas na ordem em que foram feitas. No entanto, se houver mais de uma sessão com mais de um objeto, a ordem não pode ser garantida. Se a ordem for importante, certifique-se de que as chamadas que precisam ser reproduzidas por ordem estejam localizadas na mesma instância de objeto.

Filtrando eventos em COM+

Publicação e entrega de eventos em COM+

Subscrições

O objeto de classe de evento COM+