INFO: Chamada de gerenciamento de pool de conexão por objetos ADO do ASP

Traduções deste artigo Traduções deste artigo
ID do artigo: 191572 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Ao usar o ActiveX Data Objects (ADO) dentro de uma página Active Server Pages (ASP), é importante saber como utilizar o pool com eficiência de conexões. Ao usar combinações diferentes de conexões de ADO implícitas e explícitas com conjuntos de registros ADO e comandos instanciados com Server.CreateObject ou apenas CreateObject, é possível para as conexões não seja retornado para o pool de conexão. A tabela na seção "Mais informações" descreve os possíveis cenários e resultados.

Observação Conexões que usam os provedores OLE DB do Jet e drivers ODBC não são colocados em pool já que esses provedores e drivers não suportam pool.

Mais Informações

Seguindo um tipo de conexão do lado esquerdo de grade e um tipo de conjunto de registros ou comando da parte superior da grade, você pode encontrar as respostas para perguntas a seguir:

  • É a conexão ADO (conexão) retornou ao pool de conexão?
  • Qual instrução retorna a conexão para o pool?
                |Recordset     |Recordset     |Command      |Command
                |created       |created       |created      |created
                |with          |with          |with         |with
                |Server.       |CreateObject  |Server.      |CreateObject
                |CreateObject  |              |CreateObject |
   -----------------------------------------------------------------------
   Explicit     |1.Yes         |1.Yes         |1.Yes        |1.Yes
   Connection   |2.Conn.Close  |2.Conn.Close  |2.Conn.Close |2.Conn.Close
   created with |              |              |             |
   Server.      |              |              |             |
   CreateObject |              |              |             |
   -----------------------------------------------------------------------
   Explicit     |1.Yes         |1.Yes         |1.Yes        |1.Yes
   Connection   |2.Conn.Close  |2.Conn.Close  |2.Conn.Close |2.Conn.Close
   created with |              |              |             |
   CreateObject |              |              |             
---------------------------------------------------------------------------
   Implicit     |1.No          |1.Yes         |1.No         |1.No
   Connection   |2.N/A         |2.Set         |2.N/A        |2.N/A
                |              |  Recordset   |             |
                |              |  = Nothing   |             |
---------------------------------------------------------------------------
				

Código de exemplo


Observação <username>Você deve alterar o UID = <nomedousuário> e PWD = < senha de alta segurança > para os valores corretos antes de executar esses códigos. Certifique-se de que UID tenha as permissões apropriadas para executar esta operação no banco de dados.
   Explicit Connection - Server.CreateObject

      sConnect="DRIVER={SQL Server};SERVER=ServerName;DATABASE=Pubs;UID=<username>;PWD=<strong password>"
      Set Conn = Server.CreateObject("ADODB.Connection")
      Conn.Open sConnect

   Explicit Connection - CreateObject

      sConnect="DRIVER={SQL Server};SERVER=ServerName;DATABASE=Pubs;UID=<username>;PWD=<strong password>"
      Set Conn = CreateObject("ADODB.Connection")
      Conn.Open sConnect

   Implicit Connection with Recordset

      sConnect="DRIVER={SQL Server};SERVER=ServerName;DATABASE=Pubs;UID=<username>;PWD=<strong password>"
      Set Rs = CreateObject("ADODB.Recordset")
      Rs.Open "SELECT * FROM Authors", sConnect
				

Como recriar esses testes

  1. Criar uma página ASP com um dos seguintes cenários.
          Sample ASP page:
          <%@ LANGUAGE="VBSCRIPT" %>
    
          <HTML>
          <BODY>
          >%
          dim cn(10)
          dim cmd(10)
    
          For x = 0 to 10
           Set cn(x) = Server.CreateObject("ADODB.Connection")
           cn(x).Open "DRIVER={SQL Server};SERVER=Ovteam;DATABASE=Pubs;UID=<username>;PWD=<strong password>"
           Set cmd(x) = Server.CreateObject("ADODB.Command")
           cmd(x).activeconnection = cn(x)
           cmd(x).commandtext = "SELECT * FROM Authors"
    
           cmd(x).execute
    
           Response.Write "Command executed: " & x & "<BR>"
    
    
           Set cmd(x) = Nothing
           cn(x).close 'comment this line out to recreate the problem
           Set cn(x) = Nothing
        Next
        %>
        </BODY>
        <HTML>
    					
  2. No SQL Server, abra o Monitor de desempenho : no menu Iniciar , selecione programas , clique em Ferramentas administrativas (comum) e, em seguida, selecione Desempenho do sistema .
  3. Clique em + para adicionar um contador.
  4. Altere o objeto para o SQL Server.
  5. Selecione o contador de Conexões de usuário e clique em Adicionar .
  6. Clique em OK .
  7. Execute a página ASP.
  8. Observe o contador de conexões de usuário. Se a conexão está sendo retornada para o pool, em seguida, será reutilizado e ver apenas o contador vá até uma por meio de duas conexões do ponto inicial. Se as conexões de começam a subir, em seguida, eles não estão sendo retornados para o pool de conexão para ser reutilizado e novas conexões estão sendo criados para cada objeto ADO.

Conclusão

Geralmente não é uma boa prática criar implicitamente conexões. Quando uma conexão é criada implicitamente não tem um identificador para a conexão de chamada e fechar a conexão. A conexão continua a permanecer aberta e não utilizados até os horários de conexão de saída. O tempo limite padrão com o pool de conexão habilitado para o SQL Server é 60 segundos. Quando o pool de conexão não está ativado, o SQL Server descarta a conexão imediatamente após a página ASP tenha sido analisada mas há outros problemas de desempenho a serem considerados ao pool de conexão não está em.

Referências

Para obter informações adicionais sobre o pool de conexões, consulte os seguintes artigos na Base de dados de Conhecimento Microsoft:
169470INF: Perguntas mais frequentes sobre o pool de conexão ODBC
Para obter informações adicionais sobre connectionADO/ASP escalabilidade, consulte os seguintes artigos na Base de dados de Conhecimento Microsoft:
176056INFO: Escalabilidade de ADO/ASP perguntas FREQÜENTES
  1. Conectar ao Support Online no seguinte endereço de Internet:
    http://support.microsoft.com/default.aspx
  2. Na caixa Meu pergunta é sobre, selecione todos os produtos.
  3. Na caixa Meu pergunta É, digite a identificação do artigo (qnumber) do artigo que você deseja ver. Por exemplo, digite "" Q162192"" (sem as aspas).
  4. Clique em Localizar (próximo à caixa minha pergunta É). Essa pesquisa irá retornar de um a vários títulos de artigo. A Identificação do artigo aparece no canto superior esquerdo do artigo. Você pode ver a identificação do artigo somente após você clicar em para ler o artigo.
  5. Clique no título do artigo para exibi-lo.

Propriedades

ID do artigo: 191572 - Última revisão: sexta-feira, 29 de junho de 2007 - Revisão: 2.3
A informação contida neste artigo aplica-se a:
  • Microsoft ActiveX Data Objects 1.5
  • Microsoft ActiveX Data Objects 2.0
  • Microsoft Active Server Pages 4.0
  • Microsoft Data Access Components 2.5
Palavras-chave: 
kbmt kbdatabase kbinfo KB191572 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 191572

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com