Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Nota Esta mensagem de erro pode ser associada com o erro número-2147168246 (8004d00a).
importante Este artigo contém informações sobre como editar o registo. Antes de editar o registo, certifique-se de que compreende como o restaurar se ocorrer um problema. Para obter informações sobre como efectuar este procedimento, consulte o tópico de ajuda "Restaurar o registo" no Regedit.exe ou o tópico de ajuda "Restaurar uma chave de registo" no Regedt32.exe.
O que faz a mensagem "Falha de inscrição na chamada transacção do objecto de" significa?
O Gestor do controlador ODBC comunica este erro quando um componente transaccional do Microsoft Transaction Server tenta abrir uma ligação à base de dados e o Gestor do controlador não é possível inscrever a ligação da base de dados na transacção actual. O Gestor do controlador ODBC inscreve a ligação de base de dados na transacção actual chamando o procedimento SQLSetConnectionAttr (SQL_ATTR_ENLIST_IN_DTC) do controlador ODBC. O Gestor do controlador ODBC apresenta a mensagem "Não foi possível para inscrição" Se a chamada de procedimento SQLSetConnectionAttr falhar.
Para obter informações adicionais, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
193893
(http://support.microsoft.com/kb/193893/EN-US/
)
Utilizar bases de dados Oracle com o Microsoft Transaction Server
Se este erro ocorrer quando o componente transaccional do Microsoft Transaction Server está a aceder a uma base de dados do Microsoft SQL Server, verifique o seguinte:
Certifique-se de que o Microsoft Distributed Transaction Coordinator(MS DTC) serviço é iniciado.
Certifique-se de que o serviço MS DTC foi iniciado no sistema em que o Microsoft Transaction Server componentes são implementados. Se a aplicação Microsoft Transaction Server está a aceder a uma base de dados do Microsoft SQL Server num sistema remoto, certifique-se de que o serviço MS DTC está iniciado nesse sistema também. Isto é frequentemente a causa do "falhou a erro de inscrição".
Execute os seguintes passos para verificar o estado do serviço MS DTC:
No menu Iniciar , seleccione definições e, em seguida, clique em Painel de controlo.
Seleccione o ícone de serviços.
Percorra a lista de serviços e confirme que o estado do serviço MS DTC é iniciado. Se o estado do MS DTC está em branco (iniciado), é possível iniciar seleccionando MSDTC e, em seguida, clicando em Iniciar .
Verifique a configuração de rede.
Quando um componente do Microsoft Transaction Server transacional num sistema acede a uma base de dados SQL Server noutro sistema, o MS DTC propaga a transacção DTC do sistema primário ou primeiro o sistema secundário. Transacção propagação só pode ocorrer se o processo DTC no sistema principal puder comunicar com o processo DTC no sistema secundário. Os processos DTC estabelecer ligações de chamada (RPC, Remote Procedure Call) de procedimento remoto em ambas as direcções, que significa que um problema de configuração de rede em qualquer um dos sistemas pode impedir que o DTC processos de comunicar com êxito entre si. Isto faz com que ODBC devolverão um erro "Não foi possível para inscrição".
Frequentemente é registado o seguinte evento de MS DTC no registo de eventos de aplicações do Windows NT:
Primário: Ligação de sessão falhou. Principal excedido enquanto esperava por secundária para ligação.
Este erro indica que o DTC no computador não conseguiu ligar ao DTC no SQL Server, mas DTC no SQL Server do Microsoft Transaction Server não conseguiu efectuar o enlace inverso para o Microsoft Transaction Server computador.
Se a configuração de rede estiver incorrecta, cada tentativa de ligação a base de dados remota do SQL Server resultado um erro "Falha de inscrição". Se obtiver consistentemente um erro "Falha de inscrição" mesmo depois do Microsoft DTC ter sido iniciada em ambos os sistemas, a causa mais provável da falha é um erro de configuração de rede.
Se isto ocorrer, verifique a configuração de rede utilizando Pingtest.bat da seguinte forma:
Utilize um editor de texto (tal como o bloco de notas) para criar um ficheiro chamado Pingtest.bat. Copie os comandos de ficheiro batch seguinte no mesmo.
echo off
REM Usage pingtest OtherMachineName
REM Must use a machine name and NOT an IP address
ping -n 1 %computername%
ping -n 1 %1
ipconfig /all
echo on
O ficheiro de comandos utiliza % computername % para apresentar o endereço IP local. Em seguida, apresenta o endereço IP do computador remoto que especificar na linha de comandos quando executar o ficheiro batch. Quando invoca o ficheiro batch, tem de especificar o nome do computador remoto e não o endereço IP. Utilizando o nome de computador força o ping para resolver o nome de computador exactamente o mesmo que o MS DTC faz quando liga ao computador do MS DTC remoto.
Execute o Pingtest.bat no Microsoft Transaction Server respectivo computador para determinar se efectuar um pode ping computador do SQL Server pelo nome. Captura a saída do ficheiro batch num ficheiro de texto. Por exemplo, se Microsoft Transaction Server em execução no computador A e SQL Server está em execução no computador B, utilize o seguinte comando:
Pingtest B > AResults.txt
Execute o Pingtest.bat no computador do SQL Server para determinar se pode efectuar o ping computador com o Microsoft Transaction Server pelo nome. Captura a saída do ficheiro batch num ficheiro de texto. Por exemplo, se Microsoft Transaction Server em execução no computador A e SQL Server está em execução no computador B, utilize o seguinte comando:
Pingtest A > BResults.txt
Examine o conteúdo de ficheiros de dois texto para garantir que os dois computadores podem efectuar ping si com êxito.
Se utilizar ficheiros Hosts ou Lmhosts para a resolução de nomes TCP/IP, verifique cuidadosamente muito estes ficheiros para se certificar de que contêm o nome de computador válido para mapeamentos de endereços IP. Para o fazer, verifique os anfitriões e os ficheiros Lmhosts no directório Winnt40\System32\Drivers\Etc no tanto O Microsoft Transaction Server computador e o SQL Server. Frequentemente, o ficheiro num sistema será correcto, enquanto que no outro sistema está incorrecto.
Configurar o SQL Server para utilizar TCP/IP em vez de com o nome encaminhamentos (pipes).
Se apenas vir o erro "Falha de inscrição" intermitentemente, em seguida, utilizar pipes nomeados em vez de TCP/IP pode ser a causa do problema. Utilizar pipes nomeados pode resultar em erros de "Não foi possível para inscrição" intermitentes. Microsoft recomenda vivamente que configure o SQL Server para utilizar TCP/IP em vez de encaminhamentos com nome. Utilizar pipes nomeados pode resultar em erros intermitentes "não foi possível para inscrição".
No menu Iniciar , seleccione programas, seleccione Microsoft SQL Server 6.5 e, em seguida, clique em Utilitário de configuração do cliente de SQL .
Clique no separador Biblioteca de rede .
Na lista de rede predefinida, seleccione TCP/IP Sockets.
Clique em concluído .
Verificar o tempo limite de transacções.
O componente poderá ter deixado de transacção devido a tempo limite de transacção antes da inscrição de base de dados concluída. Pode aumentar o valor de tempo de espera da transacção através do Microsoft Transaction Server Explorer. Utilize os seguintes passos para aumentar o valor de limite de tempo:
Inicie o Microsoft Transaction Server Explorer e seleccione computadores.
Clique com o botão direito do rato o computador onde a transacção foi iniciada e clique em Propriedades .
Clique no separador Opções e especifique um valor de limite de tempo maior.
Isto é pouco provável é o problema a menos que as transacções de tirar uma invulgarmente demorada. No entanto, poderá ser útil aumentar temporariamente o valor de limite de tempo para eliminar esta como uma origem de problemas potencial.
Se este erro ocorrer quando o componente transaccional do Microsoft Transaction Server está a aceder a uma base de dados Oracle, verifique o seguinte:
Certifique-se de que o serviço MS DTC foi iniciado.
Certifique-se que o serviço DTC da Microsoft é "iniciado" no sistema nos quais os componentes do Microsoft Transaction Server são implementados. Utilize os seguintes passos para verificar o respectivo estado:
No menu Iniciar , seleccione definições e, em seguida, clique em Painel de controlo.
Seleccione o ícone de serviços.
Percorra a lista de serviços e confirme que o estado do serviço MS DTC é iniciado. Se o estado do MS DTC está em branco (iniciado), é possível iniciar seleccionando MSDTC e, em seguida, clicando em Iniciar .
Instale o software cliente Oracle mais recente no computador do Microsoft Transaction Server.
Certifique-se que a Oracle 7.3 ou cliente do Oracle 8 software patch versão mais recente está instalada no sistema que contém os componentes do Microsoft Transaction Server. Note que é comum a actualizar o software Oracle num sistema que contém a base de dados Oracle, mas não conseguir actualizar o software Oracle num sistema que contém os componentes do Microsoft Transaction Server. Tem de actualizar o software Oracle no sistema cliente.
Pode obter os mais recentes patches de Oracle Windows NT a partir do local de FTP do Oracle. Vá para:
ftp://oracle-ftp.oracle.com
(ftp://oracle-ftp.oracle.com)
e seleccione "servidor", "wgt-tech", "servidor" e "windowsNT"
instale o software Oracle Server mais recente na base de dados do Oracle Server System.
Se a aplicação Microsoft Transaction Server acede a uma base de dados Oracle num sistema Windows NT ou o UNIX, certifique-se que o patch mais recente do Oracle é instalado nesse sistema.
Pode obter os patches de Oracle mais recentes para o Windows NT do site FTP da Oracle. Vá para:
ftp://oracle-ftp.oracle.com
(ftp://oracle-ftp.oracle.com)
e seleccione "servidor", "wgt-tech", "servidor" e "windowsNT"
Utilize o controlador de ODBC Microsoft Oracle.
Certifique-se de que o Microsoft Transaction Server está a utilizar o Oracle Microsoft ODBC controlador. Não outro controlador de ODBC Oracle suporta Microsoft Transaction Server transacções.
Tem de instalar um dos seguintes Oracle controladores ODBC da Microsoft se pretender utilizar transacções Microsoft Transaction Server a partir de uma plataforma x 86 da Intel.
Reduzir esta tabelaExpandir esta tabela
Controlador ODBC para Oracle MS
Versão número
Veículos de edição
2.0 actualizado
2.73.7283.03
MDAC 1.5b MDAC 1.5 c Windows NT 4.0 Option pack
2.0 actualizado
2.73.7356
SDK DO ODBC 3.5
2.5
2.573.2927
O Visual Studio 6.0 Dados Access 2.0 SDK MDAC 2.0
Tem de instalar o Microsoft Oracle ODBC 2.5 versão do controlador 2.573.2927, se pretender utilizar o Microsoft Transaction Server transacções a partir de uma plataforma Compaq Alpha. Versões anteriores do controlador de ODBC do Microsoft Oracle não suportar a plataforma Compaq Alpha.
Pode obter o controlador ODBC Microsoft Oracle 2.5 a partir de:
http://microsoft.com/data
(http://msdn.microsoft.com/dataaccess)
seguindo a hiperligação "Transferências".
Se pretender aceder a um Oracle base de dados, sugerimos que utilizar o Microsoft Oracle ODBC Driver 2.0 ou posterior controlador mesmo que não necessitam de suporte de transacções. Este novo controlador oferece um desempenho melhor do que o controlador Microsoft Oracle ODBC 1.0 é substituído O Oracle 1.0 controlador serializado toda a actividade ao nível do controlador; pedidos foram single-threaded através do controlador. A Microsoft Oracle 2.0 e posteriores controladores serializar todas as actividades ao nível da ligação. Isto permite ligações de base de dados diferente para ser utilizado em paralelo.
Certifique-se que o suporte de XA da Oracle está activado.
Verifique para se certificar que o suporte de transacções XA da Oracle foi activado. Para mais informações, consulte a secção "Activar Oracle XA transacções support" no documento de base de "utilizar Oracle dados com o Microsoft Transaction Server".
Se estiver a utilizar o Oracle 7.3, certifique-se de que existe V $ XATRANS $. Esta vista deve ter sido criada quando a biblioteca XA foi instalada. Se esta vista não existir, o administrador do sistema Oracle tem de criá-lo executando o script fornecido pela Oracle com o nome "XAVIEW.SQL". Este ficheiro pode ser encontrado na C:\ORANT\RDBMS73\ADMIN. Este script SQL deve ser executado como utilizador Oracle "SYS".
Se estiver a utilizar Oracle8, deve existir nesta vista. Não deve necessário criá-la.
Para Oracle 7.3 e Oracle8, o administrador do sistema Oracle tem de conceder SELECT acesso público na DBA_PENDING_TRANSACTIONS ver.
Grant Select on V$XATRANS$ to public.
No Gestor de instância do Oracle, clique em Modo avançado (Advanced Mode) no menu Ver e seleccione "Parâmetros de inicialização" no painel da esquerda. No painel direito, seleccione "Advanced optimização" e aumentar o parâmetro "distributed_transactions" para permitir transacções de MTS mais concorrentes actualizar a base de dados num único momento.
Consulte a documentação do Oracle Server para obter mais informações sobre como configurar suporte de transacções XA da Oracle.
Certifique-se que os caracteres numéricos da Oracle estão configurados correctamente.
aviso A utilização incorrecta do Editor de registo pode provocar problemas graves que poderão forçar a reinstalação do sistema operativo. Microsoft não garante que os problemas resultantes da utilização incorrecta do Editor de registo possam ser resolvidos. As suas próprias risco da utilização do Editor de registo.
Para obter informações sobre como editar o registo, consulte o tópico de ajuda "Alterar chaves e valores" no Editor de registo (Regedit.exe) ou os tópicos de ajuda "Adicionar e eliminar informações no registo" e "Editar dados do registo" do Regedt32.exe. Nota efectuar uma que deve cópia de segurança do registo antes de o editar.
Os clientes que tenham sistemas localizados fora dos Estados Unidos podem precisar de configurar suporte de caracteres numéricos da Oracle. No registo do Windows NT, localize a seguinte chave de registo:
HKEY_LOCAL_MACHINE\SOFTWARE\Oracle
e adicione esta entrada:
"NLS_NUMERIC_CHARACTERS"=".,"
Nota : os caracteres dentro da cadeia entre aspas acima são um ponto e vírgula, por essa ordem.
Certifique-se que Oracle está configurado com as ligações adequadas.
Se pretender criar mais do que alguns dozen ligações a uma base de dados Oracle, certifique-se de que Oracle está configurado para suportar ligações de base de dados adicionais. Para mais informações, consulte a secção base de "Configurar Oracle para suporte um grande número de ligações"no documento"utilizar Oracle dados com o Microsoft Transaction Server".
Certifique-se que tem uma ligação com a base de dados Oracle, se utilizar segurança integrada do Oracle.
Se utilizar segurança integrada do Oracle, certifique-se que o MS DTC está em execução sob um ID de início de sessão e palavra-passe autorizado a estabelecer ligação à base de dados Oracle. Para mais informações, consulte a secção "Configurar segurança integrada" no documento de bases de "utilizar Oracle dados com o Microsoft Transaction Server".
Execute o programa TestOracleXAConfig.
Execute o programa TestOracleXAConfig para se certificar de que pode com êxito ligar à base de dados Oracle sem utilizar o Microsoft Transaction Server. Para mais informações, consulte a secção "Testar instalação e configuração de MTS suporte para Oracle" no documento "Utilizar um Oracle da base de dados com o Microsoft Transaction Server".
Execute o programa exemplo banco.
Executar programa banco exemplo para se certificar de que pode com êxito ligar à base de dados Oracle a partir de um programa Microsoft Transaction Server. Para mais informações, consulte a secção "Validar Oracle instalação e configuração com o banco aplicação de exemplo" no documento "Utilizar Oracle bases de dados com o Microsoft Transaction Server".
Active rastreio de Oracle.
Oracle é capaz de gerar ficheiros de rastreio que registam as informações enviadas entre o Oracle cliente e servidor. Estes ficheiros de rastreio podem ser extremamente úteis no diagnóstico de problemas. Pode tornar-se de que Oracle rastreio da seguinte forma:
Certifique que Mtxoci.dll instalado no sistema MTS é versão 1998.08.762.0 ou posterior. Versão 1998.08.762.0 disponibilizada com o lançamento do NT4 Service Pack 4. Foi a primeira versão do Mtxoci.dll que lhe permite activar o rastreio de Oracle e controlar a localização dos ficheiros de rastreio do Oracle.
Utilize o Explorador para localizar e eliminar qualquer Oracle existente analisar ficheiros no sistema. Estes ficheiros têm nomes que terminem o sufixo ".trc". Eliminando os ficheiros de rastreio obsoletos, torna mais fácil localizar qualquer recém-criadas uns.
é poderá escolher uma unidade de disco diferente e directório para ficheiros de rastreio se pretender.
Utilize o Explorador para criar o directório de ficheiro de rastreio do Oracle. No nosso exemplo, crie o directório "OraTrace" na unidade "C".
Parar o pacote MTS está acessando o Oracle base de dados. A parar o pacote garante que todas as ligações de base de dados Oracle existentes estão fechadas e que novas ligações de base de dados Oracle são abertas quando o componente MTS está próximo chamada. Estas ligações de base de dados Oracle recentemente abertas têm Oracle rastreio activado.
Invocar o componente do Microsoft Transaction Server que está a abrir a base de dados Oracle.
Examine os ficheiros de rastreio de Oracle recém-criados.
Activar rastreio de erros MTS/Oracle
MTS é capaz de capturar informações adicionais sobre erros de Oracle no registo de eventos de aplicações do Windows. Pode capturar esta informação da seguinte forma:
Parar o pacote MTS está acessando o Oracle base de dados. A parar o pacote garante que o Mtxoci.dll dispõe de rastreio quando é reiniciado.
Invocar o componente do Microsoft Transaction Server que está a abrir a base de dados Oracle.
Utilize o Visualizador de eventos do Windows para examinar a aplicação de registo de eventos. Procure eventos gerados por MTXOCI. Poderá ver eventos semelhante ao seguinte:
Mensagem de cadeia: chamada sqlld2 falhou com o erro 0x849.
O valor de erro é apresentado em octal. Pode utilizar o programa Calculadora para converter o valor de erro decimal. Neste exemplo, "0x849" converte para o valor de erro Oracle 2121.
Verificar o tempo limite de transacções.
Considere se transacção do componente Microsoft Transaction Server poderá ter terminado antes da inscrição de base de dados concluída. Isto pode ocorrer se o tempo limite transacção expirar antes de concluir a inscrição de base de dados Oracle.
Pode aumentar o valor de tempo de espera da transacção através do Microsoft Transaction Server Explorer. Para o fazer, utilize estes passos:
Execute o Microsoft Transaction Server Explorer e seleccione computadores.
Clique com o botão direito no computador onde a transacção foi iniciada e seleccione Propriedades no menu de atalho.
Seleccione o separador Opções e especifique um valor de limite de tempo maior.
Isto é pouco provável é o problema a menos que as transacções durar mais do que um minuto. No entanto, poderá ser útil aumentar temporariamente o valor de limite de tempo para eliminar esta como uma origem de problemas potencial.
O que fazer se o utilizador continua a ser obter este erro
Se continuar a receber este erro depois de fazer tudo aqui descritos, deve comunicar o erro para o suporte a produtos da Microsoft organização. Forneça as seguintes informações no relatório do problema.
Descreva o problema. O erro "Não foi possível para Enlist" acontece sempre que tenta utilizar o Microsoft Transaction Server transacções ou falha intermitente? Se a falha intermitente, frequência-ocorrer?
Descrevem a configuração da aplicação e sistema.
Descreva o Microsoft Transaction Server componentes de aplicação estão instalados no sistema. Se estiver a utilizar uma base de dados Oracle, fornece a versão do software de cliente Oracle e o controlador Microsoft ODBC para Oracle está a utilizar.
Está a utilizar uma base de dados Microsoft SQL ou Oracle uma base de dados? É a base de dados no mesmo computador que a transacção de Microsoft componentes de aplicação do servidor ou está num computador diferente? Se estiver a utilizar uma base de dados Oracle, o tipo de sistema é base de dados Oracle instalado e qual a versão do software Oracle instalada?
O transporte de rede está a utilizar: TCP/IP, com o nome encaminhamentos (pipes), IPX/SPX e por aí em diante? O serviço de nomes está a utilizar: WINS, DNS, ficheiros de anfitrião etc.?
O programa TestOracleXAConfig executar?
Se estiver a utilizar uma base de dados Oracle, tente executar o programa TestOracleXAConfig. Se este programa falhar, o problema reside no Oracle. Comunique o problema ao serviço de apoio a clientes da Oracle.
O programa de banco de exemplo executar?
Tente executar o programa de banco de exemplo com o Microsoft SQL Server. Se estiver a utilizar um Oracle base de dados, é a aplicação de exemplo bancária executado com Oracle? Se não, o erro ocorrerem?
Os erros são comunicados sob os ficheiros de rastreio do Oracle?
Se estiver a utilizar uma base de dados Oracle, que informações estão presentes no ficheiros de rastreio Oracle? Para capturar esta informação, primeiro localizar e eliminar tudo existente Oracle rastrear ficheiros no sistema. Estes ficheiros têm nomes que terminem com a extensão .TRC. Depois de eliminar todos os ficheiros de rastreio existente, execute a falha componente do Microsoft Transaction Server e fornecer Microsoft com o conteúdo dos ficheiros de rastreio do Oracle.
Quais os erros são comunicados no registo de eventos do Windows NT?
Verifique o registo de eventos do Windows NT e comunicar todos os eventos DTC que foram registados na ou perto da hora da falha.
A utilizar segurança integrada do Oracle?
Indicar se estiver a utilizar segurança integrada do Oracle.
O que é o valor de tempo de espera da transacção?
Informe Microsoft que valor de limite de tempo da transacção está configurado no Microsoft Transaction Server.
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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 191168
(http://support.microsoft.com/kb/191168/en-us/
)
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.
Qual foi o esforço que despendeu pessoalmente para utilizar este artigo?
Muito baixo
Baixo
Moderado
Elevado
Muito elevado
Diga-nos porquê e o que podemos fazer para melhorar estas informações
Obrigado! Os seus comentários são utilizados para ajudar-nos a melhorar o conteúdo do nosso suporte. Para obter mais opções de assistência, visite a Home Page de Ajuda e Suporte.