Partilhar via


Exemplo de tecnologia de pool de objeto

Este exemplo demonstra o uso de ativação just-in-time (JIT) e o objeto de pool em um ambiente do .NET estrutura.Um aplicativo de servidor contém o objeto em pool único, que representa um único arquivo de log.Vários aplicativos cliente instanciar e chamam a classe de objeto em pool para mostrar que, com a ativação JIT ativado e um dimensionar máximo do pool de um objeto, o cliente de todas as chamadas são roteadas através de uma instância de objeto único.Isso resultados em um único arquivo de log que chama a atividade de documentos do COM + e vários clientes.

Para obter informações sobre como usar os exemplos, consulte os tópicos a seguir:

Para compilação a amostra usando o aviso de comando

  1. Aberto o janela do aviso de comando e navegar até um de subpastas sob o diretório Technologies\ComponentServices\ObjectPooling específicos do linguagem.

  2. Tipo de MSBuild ObjectPoolingCS.sln or MSBuild ObjectPoolingVB.sln, dependendo de sua escolha de linguagem de programação, na linha de comando.

Para compilação a amostra usando o Visual Studio

  1. em aberto Windows Explorer e navegar até um de subpastas sob o diretório ObjectPooling específicos do linguagem.

  2. clicar duas vezes no ícone para ObjectPoolingCS.sln ou ObjectPoolingVB.sln, dependendo de sua escolha de linguagem, de programação para em em aberto o arquivo no Visual Studio.

  3. Sobre o Compilação menu, clicar Criar solução.O OPDemoSvr.dll e os assemblies OPDemo.exe são criados no diretório padrão \bin ou \bin\depurar.

Para registrar e instalar o assembly no GAC

  1. navegar até o diretório que contém o assembly criado.

  2. Tipo de RegSvcs OPDemoSvr.dll na linha de comando para registrar o assembly.

  3. Tipo de – i Gacutil OPDemoSvr.dll na linha de comando para instalar o assembly no GAC.

Para executar este exemplo

  1. Abra a janela do aviso de comando ou no Windows Explorer e navegar até o diretório que contém o executável de novo.

  2. No Ferramentas administrativas submenu seuTodos os programas menu, abra o componente Serviçosferramenta administrativa de .

  3. localizar o aplicativo COM + OPDemoSvr expandindo aplicativos Computer\COM + Services\Computers\My componente no painel à esquerda COM + explorer.

  4. localizar o componente Microsoft.Exemplos.Technologies.ComponentServices.ObjectPooling.PooledLogFile expandindo OPDemoSvr\Components.clicar com o botão direito do mouse no componente PooledLogFile e selecionar Propriedades no menu pop-up.clicar no Ativação guia e observe que objeto pool está ativado.

    Observação:

    O componente está configurado com um dimensionar de pool mínimo de zero e um dimensionar máximo do pool de um.Isso significa que, no máximo, um único objeto em pool existirá a qualquer momento, não importa quantos objetos são instanciados de código do cliente.Esses atributos são definidos explicitamente o código de exemplo usando o ObjectPoolingAttribute.O tempo limite de criação de 60 segundos é um valor padrão que é aplicado porque o código de exemplo não solicita explicitamente um valor diferente.

  5. Observe o Sumário de campo de edição a construção de objeto.Este campo contém o nome do arquivo de log baseado em disco que será criado pelo objeto de pool de exemplo.O valor padrão é OPSvrLogCS.txt ou OPSvrLogVB.txt.Você pode alterar o nome ou adicione informações de caminho para nome de arquivo (por exemplo, C:\OPSvrLogCS.txt).Se você não adicionar informações de caminho para nome de arquivo, o arquivo será criado no diretório System32 corrente.

  6. clicar OK para fechar a caixa de diálogo de propriedades do componente OPDemoServer.

  7. Iniciar três cópias da OPDemo.exe no Windows Explorer ou no janela do aviso de comando.Por exemplo, na janela do aviso de comando, navegar para a pasta C:\Documents and Settings\ O nome de usuário\Meus Documentos\Exemplos\Technologies\ComponentServices\ObjectPooling\VB\ObjectPooling\bin diretório e tipo de opdemo.exe três vezes.

  8. Em cada aplicativo cliente, clicar no Iniciar gravação botão.Você verá um asterisco intermitente na janela do cliente, que indica que as entradas estão sendo gravadas no arquivo de log especificado na seqüência de caracteres de construção de objeto de componente OPDemoServer.

  9. Depois que todos os aplicativos clientes começaram a gravação, aguarde alguns segundos.Em seguida, clicar no Parar gravação botão cada aplicativo cliente.

  10. localizar e abra o arquivo de log no aplicativo Notepad.exe ou Outros editor de texto.Você deve ver uma sequência de instruções que indicam COM + chamadas para IObjectControl.No meio dessas chamadas, você encontrará as mensagens por escrito de cada aplicativo cliente (identificados pela sua ID de processo), demonstrando que COM + tem coordenados chamadas por meio de três referências de objeto em um único objeto instanciado.Para obter mais informações sobre a interface IObjectControl, consulte os comentários de código de exemplo e o plataforma SDK.

    Observação:

    Para renomear ou excluir o arquivo de log, saia de todas as instâncias do aplicativo cliente e fechar o aplicativo OPDemoSvr Serviços de componentesferramenta administrativa de .Para fazer isso, clicar com o botão direito do mouse no aplicativo do COM + no painel esquerdo do explorer e selecionar Desligar no menu pop-up.

Requisitos

Plataforma: Windows 2000, Windows XP, Windows servidor 2003

.NET estrutura versão: 2.0, 1.1, 1.0

Comentários

Este exemplo utiliza uma seqüência de caracteres de construção de objeto para especificar nome de arquivo de log e, potencialmente, seu caminho totalmente qualificado.Ativação do Just-in-time (JIT) é um serviço COM + que permite que os clientes a criar e manter uma referência de objeto para um tempo indefinido sem a necessidade de que existe uma instância do objeto real por trás dele.+ Ativa um objeto just in time para um consumidor quando chama a sua referência de objeto.Essa ativação pode consistir em criar uma nova instância de objeto ou, quando usado em combinação com o pool de objetos COM +, passando o chamador uma referência a um objeto em pool.COM + desativa um objeto com base no bit doneness contexto de objeto.Para componentes .NET atendidas, a AutoCompleteAttribute pode ser aplicado a métodos de classe, indicando que o objeto pode ser desativado na sair do método.

O componente translation from VPE for Csharp, conforme exibido na ferramenta administrativa Serviços de componente é denominado OPDemoServerCS.PooledLogFile.A versão do Visual Basic é OPDemoServerVB.PooledLogFile.Para obter mais informações sobre criação binário de amostra e as etapas de inscrição, consulte os comentários em arquivos de código-fonte.

Observação:

Você deve usar o Global ferramenta cache assembly (Gacutil.exe)  Para instalar o conjunto de OPDemoSvr.dll para o global cache de assemblies antes de executar a amostra. Gacutil.exe está localizado no SDK\ número de versão > No diretório \Bin.

COM + objeto pool é um serviço que manterá um pool de ativo objeto s, pronto para ser usado por um cliente solicita um componente configurado para o pool.O pool pode ser configurado administrativamente ou usando o ObjectPoolingAttribute. Atributos do pool incluem um dimensionar mínimo e máximo do pool e um valor de time limite de solicitação do objeto criação.

Componentes que são habilitados para ativação JIT e pool de objetos podem controlar como eles são reutilizados, Implementando o IObjectControl interface. IObjectControl métodos são chamados somente pelo COM + para indicar eventos importantes no processo de ativação/desativação de objeto ou para determinar se o objeto pode ser retornado ao pool de objeto. Esta amostra implementa IObjectControl apenas para demonstrar a interface em uso pelo COM +. Para obter mais informações sobre ativação JIT e pooling de objeto, consulte a documentação do plataforma SDK.

Consulte também

Referência

CanBePooled

Global ferramenta cache assembly (Gacutil.exe) 

ObjectPoolingAttribute

JustInTimeActivationAttribute

ServicedComponent

System.EnterpriseServices

Outros recursos

A ativação just-in-time

Construção de objeto

Escrevendo componentes atendidos