Entrar

CORRECÇÃO: Provedor SQLOLEDB incorretamente deixa transação aberta

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.

281633
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
BUG #: 58292 (SQLBUG_70)
BUG #: 235846 (SHILOH)
Sintomas
Executar uma determinada seqüência de comandos que envolvam transações explícitas e parâmetros em um programa aplicativo usando o provedor SQLOLEDB incorretamente deixa uma transação não confirmada aberta. Isso pode causar bloqueio grave e outros problemas.
Causa
Embora a opção SET 'implicit_transactions' é definida como desativado, o provedor SQLOLEDB está abrindo uma transação implícita.
Resolução

MDAC 2.6

Para resolver esse problema, obtenha o service pack mais recente para o Microsoft Data Access Components 2.6. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
300635Como obter o service pack mais recente do MDAC 2.6

Hotfix

importante : Microsoft Data Access Components versão 2.6 deve ser instalado antes de aplicar esse hotfix.

A versão em inglês dessa correção deve ter os seguintes atributos de arquivo ou posteriores:
   Date       Time     Version     Size      File name      Platform   -----------------------------------------------------------------   11/22/00   8:43pm   8.00.0225   491,584   Sqloledb.dll   Intel   11/22/00   8:43pm   8.00.0225    61,440   Sqloledb.rll   Intel				
Observação: devido a dependências do arquivo, o hotfix mais recente ou o recurso que contém os arquivos acima pode também conter arquivos adicionais.

Como Contornar
Para contornar este problema, siga um destes procedimentos:
  • Use o provedor OLE DB para ODBC em vez do SQLOLEDB provider.

    - ou -
  • Coloca transações adicionais ao redor o código que cria o problema.
Situação
A Microsoft confirmou que este é um problema no provedor Microsoft OLE DB para SQL Server está incluído no Microsoft Data Access Components (MDAC) versões 2.1, 2.5 e 2.6.

MDAC 2.6

Esse problema foi corrigido primeiro no Microsoft Data Access Components 2.6 Service Pack 1.


MDAC 2.5

Esse problema foi corrigido primeiro na versão do Sqlredis.exe está incluído no Microsoft SQL Server 7.0 Service Pack 4.
Mais Informações
Por meio de rastreamento do aplicativo, poder ver no SQL Server Profiler que o provedor SQLOLEDB está enviando as instruções a seguir para o SQL Server:
SET FMTONLY ON select ... SET FMTONLY OFFset implicit_transactions off SET NO_BROWSETABLE OFF				
este implicit_transaction faz com que um ' ' já que está sendo aberto.

Ao usar o provedor OLE DB para ODBC e o driver do SQL Server em vez disso, o mesmo código Visual Basic/ADO exato envia as instruções a seguir ao SQL Server:
set implicit_transactions off SET NO_BROWSETABLE OFFSET FMTONLY ON select  ... SET FMTONLY OFF				
, portanto, o SELECT FMTONLY abre uma transação implícita com SQLOLEDB. No entanto, como o aplicativo nunca aberto esta transação, o aplicativo será normalmente nunca fechado-lo. Esta transação será fechada apenas após a próxima transação explícita.
deslocado bloquear opentran

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 281633 - Última Revisão: 02/23/2014 22:22:39 - Revisão: 6.4

  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbfix kbmdac260sp1fix kbqfe KB281633 KbMtpt
Comentários