Compartilhar via


Usando eventos COM+ com componentes em fila COM+

O serviço de eventos COM+ é usado para gerenciar a entrega de eventos de editores para assinantes. O serviço de componentes em fila COM+ pode ser usado para tornar o tempo de processamento do editor e do assinante independente, enfileirando a mensagem do editor e, posteriormente, 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 em fila COM+.

Observação

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

 

O serviço de componentes em fila mantém a invocação de ordem de método em uma única mensagem. O gravador agrupa todas as chamadas de método em uma mensagem e, em seguida, o player invoca esses métodos na ordem em que a mensagem é processada.

Um gravador e um player de componentes em fila podem ser posicionados em um dos dois locais a seguir:

  • Entre o publicador e o objeto de evento
  • Entre o objeto de evento e o assinante

Se você posicionar o gravador e o player entre o editor e o objeto de evento, estará tornando o componente de classe de evento enfileirável. O componente de classe de evento deve ser marcado para enfileiramento e ser ativado pelo player em um processo separado do editor.

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 maneira: "queue:/new:/{12345678-1234-1234-1234-123456789012}".

Há uma implicação de ordem de entrega a ser considerada ao usar componentes enfileirados em uma situação de evento. Como o serviço de componentes em fila registra e reproduz todas as chamadas durante o tempo de vida de um único objeto em uma mensagem, todas as chamadas são reproduzidas na ordem em que foram feitas. No entanto, se houver mais de uma sessão com mais de um objeto, a ordem não poderá ser garantida. Se a ordem for importante, verifique se as chamadas que precisam ser reproduzidas na ordem residem na mesma instância do objeto.

Filtrando eventos no COM+

Publicação e entrega de eventos em COM+

Assinaturas

O objeto de classe de evento COM+