Conceitos do Gerenciador de Propriedades Compartilhadas COM+

Em COM+, o estado transitório compartilhado para objetos é gerenciado usando o gerenciador de propriedades compartilhadas (SPM). O SPM é um dispensador de recursos que você pode usar para compartilhar o estado entre vários objetos em um processo de servidor.

Não é possível usar variáveis globais em um ambiente distribuído devido a problemas de simultaneidade e colisão de nomes. O gerenciador de propriedades compartilhadas elimina colisões de nomes fornecendo grupos de propriedades compartilhadas, que estabelecem namespaces exclusivos para as propriedades compartilhadas que eles contêm. O SPM também implementa bloqueios e semáforos para ajudar a proteger as propriedades compartilhadas contra acesso simultâneo, o que pode resultar em atualizações perdidas e deixar as propriedades em um estado imprevisível.

Observação

O estado transitório compartilhado é uma informação de estado mantida na memória que não sobrevive a falhas do sistema. As informações são projetadas para serem compartilhadas por vários objetos através dos limites de transação (mas não entre processos).

 

As propriedades compartilhadas armazenadas no SPM estão disponíveis somente para objetos em execução no mesmo processo. Isso significa que os objetos que usarão o SPM para armazenar valores e que precisarão ter acesso a esses valores devem ser instalados como parte do mesmo aplicativo COM+. É possível que os administradores de sistema movam classes COM+ de um pacote para outro depois que seu aplicativo COM+ tiver sido implantado. Se você depender de vários objetos compartilhando propriedades por meio do SPM, deverá documentar claramente que eles devem ser instalados no mesmo aplicativo COM+.

Também é importante que as propriedades de compartilhamento de componentes tenham o mesmo atributo de ativação. Se dois componentes no mesmo pacote tiverem atributos de ativação diferentes, eles geralmente não poderão compartilhar propriedades. Por exemplo, se um componente estiver configurado para ser executado em um processo de cliente e o outro estiver configurado para ser executado em um processo de servidor, seus objetos geralmente serão executados em processos diferentes, mesmo que estejam no mesmo pacote.

Você deve sempre instanciar os objetos SharedPropertyGroupManager, SharedPropertyGroup e SharedProperty de componentes COM+ em vez de um cliente base. Se um cliente base cria propriedades e grupos de propriedades compartilhadas, as propriedades compartilhadas estão dentro do processo do cliente-base, não em um processo de servidor. Isso significa que os objetos COM+ não podem compartilhar as propriedades, a menos que os objetos também estejam em execução no processo do cliente (o que geralmente não é uma boa ideia).

COM+ Gerente de Propriedades Compartilhadas

Grupos de propriedades compartilhadas