Este documento contém as informações mais recentes para o Microsoft® Transaction Server(MTS).
Para maiores informações, consulte os tópicos a seguir:
Configurando o Microsoft Transaction Server
O quehá de novo no MTS 2.0?
Documentação do produto MTS
As seções a seguir contêm informações mais recentes que não estão disponíveis na documentação regular, bem como falhas e limitações conhecidas.
Ao instalar o MTS, defina a identidade do pacote 'Sistema' antes de criar qualquer pacote novo, como se segue:
Certifique-se de que a conta de usuário para as identidades do pacote 'Sistema' e outros pacotes MTS tenha o login do Windows NT "como um serviço" do direito do usuário. Você pode verificar isso utilizando o 'Gerenciador de usuário do Windows NT':
Estas informações substituem completamente a documentação anterior que descreve como utilizar o Oracle com o Microsoft Transaction Server, incluindo a documentação de 'Ajuda'on-line do Microsoft Transaction Server 2.0.
Você pode ativar os componentes MTS transacionais para acessar um banco de dados Oracle 7.3.3 através do ODBC. O MTS trabalha com o Oracle 7 Workgroup Server for Windows NT, Oracle 7 Enterprise Server for Windows NT, Oracle 7 Enterprise Servers em UNIX, e Oracle Parallel Server em UNIX.
Seu componente MTS pode acessar um banco de dados Oracle 8 tanto no Windows NT quanto no Unix, desde que o componente Microsoft Transaction Server utilize o software cliente Oracle 7.3.3. O MTS não suporta o software cliente Oracle 8.
Esta seção inclui os seguintes tópicos:
O software a seguir é necessário para acessar um banco de dados Oracle a partir dos componentes MTS.
Componente | Versão |
Banco de dados Oracle em Windows NT | 7.3.3 (com correção 4 ou mais recente) |
Banco de dados Oracle em UNIX | 7.3.3 (com correções) |
Oracle SQL*Net | 2.3.3 (com versão corrigida 2.3.3.0.3 ou mais recente) |
Oracle OCIW32.DLL | 1.0.0.5 ou mais recente |
Oracle SQLLIB18.DLL | 1.8.3.0.1 ou mais recente |
Oracle XA73.LIB | 7.3.3.2.0 ou mais recente |
Microsoft Transaction Server 2.0 | 2.0 |
Driver Microsoft ODBC para Oracle (MSORCL32.DLL) | 02.73.7283.1 ou mais recente |
ActiveX Data Objects (ADO) | 1.5 |
Observação importante: As versões anteriores do software não irão funcionar corretamente. Certifique-se de instalar estas versões do software ou as mais recentes. A falha para realização desse procedimento certamente é a causa mais comum dos problemas durante a tentativa da utilização do Microsoft Transaction Server com o Oracle.
Se seu banco de dados Oracle reside no Windows NT, você pode instalar tanto a versão para Windows NT do Oracle 7.3.3 Workgroup Server quanto a versão para Windows NT do Oracle 7.3.3 Enterprise Server. The Oracle 7.3.2 e as versões anteriores para Windows NT do Oracle não são suportadas e não irão funcionar em conjunto com as transações MTS.
Você deve instalar a versão corrigida do Oracle 7.3.3 que é listada na tabela acima. A versão Oracle 7.3.3 não irá funcionar com o MTS, a não ser que a versão corrigida seja instalada.
Você deve submeter um relatório de problemas ao Oracle Customer Support Organization para obter a versão corrigida do Oracle. Esta versão corrigida não estava disponível no site público da Web do Oracle no momento em que essa observação foi redigida.
Você pode instalar o Oracle 8 no Windows NT desde que os componentes do Microsoft Transaction Server utilize o software cliente Oracle 7.3.3. O MTS não suporta o software cliente Oracle 8.
Se seu banco de dados Oracle reside em UNIX, você deve instalar o Oracle versão 7.3.3 (ou a mais recente) para aquela plataforma UNIX. Na maioria dos casos, você será também solicitado a instalar uma versão corrigida do Oracle 7.3.3 para o Oracle em UNIX.
Você deve entrar em contato com o Oracle Customer Support para determinar se uma versão corrigida do Oracle 7.3.3 é solicitada para sua plataforma UNIX. Explique que você irá acessar seu banco de dados Oracle em UNIX utilizando um novo suporte de transação XA que é incluído agora no Oracle versão 7.3.3 no Windows NT.
As versões corrigidas a seguir são conhecidas para funcionarem:
Plataforma | Correção Oracle |
HP 9000 | 7.3.3.3 |
IBM AIX | 7.3.3.2 |
Sun Solaris | 7.3.3.2 |
Você deve instalar o Oracle 8 em Unix desde que os componentes do Microsoft Transaction Server utilizem o software cliente Oracle 7.3.3. O MTS não suporta o software cliente Oracle 8.
Se os componentes do Microsoft Transaction Server acessam um banco de dados Oracle em um Windows NT remoto ou no sistema Unix, certifique-se de que o seguinte software cliente Oracle esteja presente no sistema Microsoft Transaction Server. Certifique-se de que o software cliente esta no nível da versão adequado. A tabela no início da seção "Software necessário" especifica quais versões são necessárias.
Componente |
Oracle SQL*Net |
Oracle OCIW32.DLL |
Oracle SQLLIB18.DLL |
Oracle XA73.LIB |
Você deve instalar a versão especificada do Oracle SQL*Net em seu sistema Microsoft Transaction Server.
Você deve instalar a versão especificada do Oracle OCIW32.DLL em seu sistema Microsoft Transaction Server.
A versão seguinte do Oracle OCIW32.DLL funciona:
Version 1, 0, 0, 5 Tuesday, March 18, 1997 2:47:52 PM Size 18KB.
A seguinte versão do Oracle OCIW32.DLL falha:
Version 7.x Thursday, February 01, 1996 12:50:06 AM Size 36 KB
Obtivemos a versão correta desta DLL a partir do CD de instalação do Oracle 7.3.3 na pasta \WIN32\V7\RSF73.
Você deve instalar a versão especificada do Oracle SQLLIB18.DLL em seu sistema Microsoft Transaction Server.
Você deve instalar a versão do Oracle XA73.LIB em seu sistema Microsoft Transaction Server.
Você deve instalar o Microsoft Transaction Server 2.0 se você desejar acessar um banco de dados Oracle utilizando o Microsoft Transaction Server abaixo do controle de transação.
O Driver Microsoft ODBC 2.0 para Oracle (MSORCL32.DLL) versão 02.73.7283.1 ou mais recente é solicitado. O programa Windows NT 4.0 Option Pack instala automaticamente esta DLL.
Se você quiser acessar o banco de dados Oracle, sugerimos que você utilize o novo driver do Oracle 2.0, mesmo que você não precise do suporte de transação. Este novo driver oferece melhor desempenho que o driver do Oracle 1.0 substituído. O driver do Oracle 1.0 serializou todas as atividades no nível do driver; as requisições foram segmentadas somente uma vez por meio do driver. O driver do Oracle 2.0 serializa todas as atividades no nível da conexão. Isso permite que conexões de banco de dados diferentes sejam usadas em paralelo.
Caso seus aplicativos utilizem ADO, você deve instalar o ADO versão 1.5. As versões anteriores do ADO não funcionarão com o 'Gerenciador de driver ODBC 3.5'. O ADO 1.5 está incluído no Windows NT 4.0 Option Pack.
Para configurar o suporte Oracle para os componentes transacionais do MTS
Se seu banco de dados Oracle estiver localizado em um sistema Windows NT, instale o Oracle versão 7.3.3 no Windows NT.
Se seu banco de dados Oracle estiver localizado em um sistema UNIX, instale o Oracle versão 7.3.3 naquele sistema.
Certifique-se de que a versão correta do Oracle OCIW32.DLL seja instalada como descrito na seção "Software necessário".
Se seu banco de dados Oracle estiver localizado em um sistema Windows NT, instale a versão corrigida do Oracle 7.3.3 que está listada na seção "Software necessário".
Se seu banco de dados Oracle estiver localizado em um sistema UNIX, instale a versão corrigida do Oracle 7.3.3 que é necessária para sua versão do UNIX.
Se os componentes do Microsoft Transaction Server acessarem um banco de dados Oracle em um Windows NT remoto ou em um sistema Unix, certifique-se de que o software cliente Oracle correto está presente em seu sistema Microsoft Transaction Server.
Instale a versão corrigida especificada do Oracle em seu sistema Microsoft Transaction Server e certifique-se de que o software cliente coincide com os níveis de versão listados na tabela na seção "Software necessário".
Quando você instala o Microsoft Transaction Server 2.0, o software seguinte será instalado.
Se você nunca instalou o Microsoft Transaction Server 2.0 versão Beta, ignore essa etapa.
Se você instalar previamente o Microsoft Transaction Server 2.0 versão Beta, utilize o Windows Explorer para determinar se o arquivo DTCXATM.LOG está em seu sistema. Se estiver, interrompa o serviço Microsoft DTC e exclua o arquivo DTCXATM.LOG.
Se você excluir o arquivo DTCXATM.LOG uma vez, quando fizer sua primeira atualização da versão beta Microsoft Transaction Server 2.0. Nunca exclua o arquivo DTCXATM.LOG depois disso, porque ele pode conter informações de recuperação vital.
Desempenha as etapas a seguir para ativar o suporte de transação Oracle XA:
Seleção de acesso em V$XATRANS$ ao público.
Consulte a documentação do Server para obter maiores informações sobre como configurar o suporte de transação do XA.
O banco de dados possui segurança integrada que utiliza a autenticação do Windows NT para validar os usuários do banco de dados. Isso permite que um usuário efetue logon no Oracle sem fornecer uma conta ou senha de usuário separadamente. Os usuários podem manter uma conta ou senha de usuário para o Windows NT e para o Oracle.
Se os componentes MTS sempre fornecem uma conta e senha de usuário ao conectar-se ao banco de dados Oracle, você não está utilizando a segurança integrada. Isso é válido se seus aplicativos especificarem a conta e a senha de usuário direta ou indiretamente por meio de um ODBC DSN. Em qualquer um dos casos, você não está utilizando a segurança integrada e pode ignorar essa etapa.
Se você utilizar a segurança integrada, deve-se configurar o MS DTC para executar um nome e senha de usuário autorizados a conectarem-se ao seu banco de dados Oracle. Isso é solicitado porque, durante a recuperação do banco de dados, o MS DTC abre seu banco de dados Oracle para relatar o resultado de transações em dúvida. Consulte ""Alterando a conta de usuário sob a qual o Microsoft Distributed Transaction Coordinator é executado"" abaixo. Utilize as ferramentas de administração de segurança do Oracle para certificar-se de que o nome de usuário que você especifica está autorizado a abrir seu banco de dados Oracle.
Para obter maiores informações sobre as instalações de segurança do Windows NT integrado do Oracle, consulte sua documentação Oracle.
Se você desejar criar mais do que algumas dúzias de conexões para um banco de dados Oracle, deve-se configurar o servidor Oracle para suportar conexões adicionais de banco de dados. Para obter maiores informações, consulte "Configurando o Oracle para suportar um grande número de conexões" abaixo.
Depois de instalar e configurar o suporte Oracle, você deve validar a instalação do Oracle utilizando o programa de teste do Oracle, instalado com o MTS. O programa de teste do Oracle utiliza interfaces OCI XA do Oracle do mesmo modo que o MTS as utiliza.
O programa de teste do Oracle determina se você pode conectar-se a um banco de dados Oracle utilizando a instalação XA do Oracle. O programa de teste do Oracle utiliza interfaces Oracle padrão e instalações de transação. Não é necessário o Microsoft Transaction Server nem o Microsoft Distributed Transaction Coordinator. Portanto, falha no programa de teste indica que seu sistema Oracle está instalado ou configurado de maneira imprópria. Se o programa de teste do Oracle falhar, reinstale e reconfigure o Oracle, ou entre em contato com a Oracle Support Organization para assistência
Para executar o programa de teste do Oracle
Exclua todos arquivos rastreados do Oracle a partir da máquina contendo os componentes MTS que acessam o banco de dados Oracle. A maneira mais fácil de fazer isso é utilizar o Windows Explorer para localizar e excluir todos os arquivos *.TRC.
Se o programa de teste do Oracle falhar, os arquivos rastreados podem ajudá-lo a determinar a origem do problema. Ao excluir todos os arquivos obsoletos rastreados, torna-se fácil localizar qualquer arquivo criado recentemente.
Se você nunca instalou a versão beta do Microsoft Transaction Server 2.0, pode pular essa etapa.
Você somente deve excluir o arquivo DTCXATM.LOG uma vez quando você atualiza pela primeira vez, a partir da versão beta do Microsoft Transaction Server 2.0. Você nunca deve excluir o arquivo DTCXATM.LOG depois disso, porque isso poderá conter informações de recuperação vitais.
c:>TestOracleXaConfig.exe -U<identificação de usuário> -P<senha> -S<Nome_de_Serviço como contido no arquivo TNS>.
Se você executar o programa de teste sem parâmetros, o programa irá exibir informações de ajuda que descrevem os parâmetros necessários.
O programa de teste irá exibir informações sobre cada operação Oracle que ele executa e indicará se cada operação foi bem sucedida.
Depois de validar a instalação e a configuração do Oracle utilizando o programa de teste do Oracle, você deve utilizar o aplicativo 'Banco de exemplo' fornecido com o Microsoft Transaction Server para certificar-se de que o Microsoft Transaction Server pode acessar seu banco de dados Oracle.
Para validar o suporte Oracle utilizando o 'Banco de exemplo'
Proprietário scott
Nome da tabela Conta
Nome da coluna 1 No da conta do tipo NUMBER
Nome da coluna 2 Balanço do tipo NUMBER
No da conta Balanço
1 1000
2 1000
[ODBC]
DRIVER=Microsoft ODBC para Oracle
UID=scott
PWD=minhasenha
ConnectString=meuservidor
SERVER=meuservidor
O Oracle às vezes altera nomes da DLL quando é lançada novas versões do produto. O Microsoft Transaction Server conta com o conhecimento dos nomes de algumas DLLs do Oracle. O MTS geralmente procura por nomes da DLL fornecidos com a versão do Oracle 7.3.3. Se o Oracle renomear aquelas DLLs, você deve modificar os valores das seguintes chaves de Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Transaction Server\Local Computer\My Computer
Sob esta chave há dois valores de seqüência de caracteres nomeada.
Se você configurar o MicrosoftÒ Distributed Transaction Coordinator (DTC) para executar sob uma outra conta, que não a do Sistema, deve-se especificar uma conta que é um membro do grupo 'Administradores'. Se não for, o MS DTC pode falhar ao iniciar, e você verá a seguinte mensagem no log de eventos do Windows NT.
O objeto de log XATM falhou ao definir a chave de criptografia de log
Você pode configurar a identificação de usuário para o MS DTC como segue:
Se você quiser criar mais do que algumas dúzias de conexões para um banco de dados Oracle, deve-se configurar o servidor Oracle para suportar conexões de banco de dados adicionais.
Você pode se deparar com um ou mais dos seguintes erros se falhar ao fazer isto:
Se você se deparar com qualquer um desses problemas, considere o aumento dos seguintes parâmetros de configuração do servidor Oracle:
Sessions
O valor para sessions
geralmente deve ser três vezes o número total de conexões de banco de dados que você espera que seus aplicativos realizem.
Queuesize
Se a queue size
para o processo Oracle Listener for inadequada, o Listener às vezes retrocede e rejeita requisições abertas de banco de dados. Isso acontece se o Oracle Listener recebe muitas requisições de conexão e sua fila estoura. Um cliente que encontra esse erro relata a mensagem de erro 'ORA-12541: No Listener' e o log do cliente ou os arquivos rastreados mostrarão a mensagem ECONREFUSED.
Para corrigir esse problema:
Sugerimos que você selecione um valor grande para QUEUESIZE
porque o sistema Oracle geralmente abre mais de uma conexão de banco de dados para cada conexão de banco de dados transacional que seu aplicativo abrir. Como resultado, a fila do Oracle listener pode ficar cheia e estourar.
Para acomodar 100 requisições, altere o arquivo LISTENER.ORA como a seguir:
QUEUESIZE = 100
Se seus aplicativos utilizarem ADO, certifique-se de que você instalou o ADO 1.5. Para obter maiores informações, consulte a seção 'Software necessário'.
A conectividade do banco de dados Oracle não é suportada para os componentes Microsoft Transaction Server sendo executados na plataforma digital alpha. O Support for Oracle na plataforma digital alpha será adicionado em uma versão futura.
É importante que a versão correta do OCIW32.DLL esteja instalada em seu computador. Você deve verificar a versão desta DLL sempre que reinstalar o Oracle ou o Microsoft Transaction Server.
Os aplicativos Microsoft Transaction Server que residem nos clusters do MSCS (Wolfpack) não podem acessar os banco de dados XA, incluindo o banco de dados Oracle. Este é o resultado de uma limitação no Microsoft Distributed Transaction Coordinator.
Atualmente, o Microsoft Distributed Transaction Coordinator armazena informações criptografadas relacionadas às recuperações XA no Registro do Windows NT. Atualmente essas informações não podem ser duplicadas entre dois nós em um cluster do MSCS. Como resultado, o Microsoft DTC não pode ser utilizado com algum banco de dados compatível ao XA em um ambiente de cluster. Pretendemos eliminar essas restrições em uma versão futura.
Se seu aplicativo desempenha transações estendidas a dois ou mais computadores, certifique-se de que o MS DTCs, nesses computadores, estão configurados para comunicarem-se uns com os outros. O MS DTC é executado sob a identidade da conta do Sistema, como padrão. O MS DTC em um computador pode-se comunicar com o MS DTC em outro computador, somente se as contas de Visitantes estiverem ativadas nos dois computadores. Se você desativar a conta de Visitante em uma das máquinas ou no domínio do Windows NT ao qual elas pertencem, deve-se configurar o MS DTC para executar sob algum outro nome de usuário que pode-se comunicar com o computador remoto. Consulte "Alterando a conta de usuário sob a qual o Microsoft Distributed Transaction Coordinator é executado" acima.
Clientes que utilizam o MS DTC em um ambiente MSCS devem instalar o Windows NT QFE Q116844. Este QFE repara um problema de chamadas de procedimento remoto (RPC, Remote Procedure Call) que pode fazer com que um cliente do MS DTC seja desligado ao tentar se conectar com o MS DTC em um servidor cluster. Este reparo também faz parte do Windows NT QFE1, disponível no site de transmissão da Web do Windows NT Option Pack.
Servidores cluster devem definir a propriedade Nome do servidor remoto para um nome de servidor virtual utilizando o MTS Explorer. Isso permite que cliente remotos acessem componentes MTS dentro do cluster e, em caso de falha, certifique-se de que os clientes estão fazendo referência ao cluster, e não a um nó específico dentro daquele cluster.
Para os pacotes MTS nos clusters do MSCS, a conta de usuário associada com a identidade do pacote deve ser um administrador de sistema ou deve ter permissões de acesso de cluster de 'Controle total' (como definido em cluadmin). Se você não executar o pacote sob a identidade de um administrador de sistema, o MTS não poderá se conectar ao MS DTC.
O MTS exige que as pastas do Windows NT tenham o mesmo caminho em todos os nós dentro de um cluster do MSCS (por exemplo, c:\winnt).
Você deve desligar os recursos de cluster do MSCS (como o SQL Server) que são afetados pela instalação do MTS antes de executar o Programa de Instalação do MTS.
Você pode instalar SQL Server 6.5 após a instalação do MTS. É recomendável que você instale o SQL Server 6.5 antes de instalar o MTS. Se você instalar o SQL Server 6.5 após instalar o MTS, o Programa de Instalação do MTS tentará certificar-se de que o MS DTC funciona corretamente.
O MTS inclui o script INSTCAT.SQL. Esse script atualiza os procedimentos armazenados de catálogo para o driver ODBC do SQL Server. Se você não fez isso ainda, execute esse script utilizando o utilitário isql do SQL Server.
A autorização de segurança não está ativa como padrão.
Você não pode definir uma identidade de pacote para um grupo.
Ao definir a identidade de pacote, o MTS valida a senha que você digitar. Entretanto, se você alterar a senha para a conta sem atualizar a senha no MTS Explorer, o pacote não executa.
O arquivo de log do MS DTC agora pode ser localizado em uma pasta compactada. Entretanto, para um melhor desempenho, não compacte o arquivo de log do Microsoft DTC nem armazene em uma pasta compactada. O MS DTC deve descompactar o arquivo de log antes de ele ser utilizado.
Ao redefinir o arquivo de log do MS DTC no Windows 95, você pode ver uma caixa de diálogo chamada "MTxOCI" seguida por uma segunda caixa de diálogo chamada ""Falha na criação do arquivo de log do MS DTC." Se isso ocorrer, você deve desativar a inicialização automática do MS DTC como descrito em "Monitorando transações MTS no Windows 95." Reinicie seu computador e redefina o arquivo de log. Em seguida, você pode reativar a inicialização automática do MS DTC.
Outros problemas na redefinição do arquivo de log do MS DTC podem ser reparados fechando-se o MTS Explorer, reiniciando o MTS Explorer, e tentando redefini-lo novamente. Em algumas ocorrências, pode-se necessitar de várias tentativas antes de ser bem-sucedido.
A documentação para iniciar e parar o MS DTC no MicrosoftÒ WindowsÒ 95 deve ser como segue:
Como padrão, o Microsoft Distributed Transaction Coordinator (MS DTC) é configurado para iniciar automaticamente quando um sistema Windows NT ou Windows 95 inicia. Para evitar que o MS DTC inicie automaticamente após reinicializar um computador com Windows 95, utilize o editor de Registro para localizar a chave de Registro HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices e, em seguida, exclua a entrada de valor denominada MSDTC. Convém ativar a inicialização automática do MS DTC novamente, utilize o editor de Registro para criar uma entrada de valor denominada MSDTC com o valor da seqüência de caracteres "msdtcw -start"
sob a chave de Registro HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices .
Observe que o nome do serviço é "msdtcw"
, e não "msdtc"
, e que há um espaço antes do hífen.
Você não pode administrar remotamente uma instalação MTS 2.0 a partir de um computador que executa a versão anterior do MTS. Se tentar fazê-lo, um código de erro será apresentado ou o MTS Explorer será finalizado inesperadamente.
Pacote individual desligado não é suportado ao administrar remotamente um computador x com MTS 1.
Depois de instalar o MTS 2.0, você pode ver uma violação de acesso ao desligar o MicrosoftÒ Visual BasicÒ 5.0. Esta é uma falha conhecida do Visual Basic 5.0 que pode ser reparada pela instalação do Visual StudioÔ Service Pack 2 a partir do http://www.microsoft.com/vstudio. Para obter maiores informações sobre este problema, consulte o artigo Q167213 "Base de conhecimento".
Há um problema conhecido que ocorre se um processo do servidor MTS termina inesperadamente (devido a um failfast, uma declaração ou uma violação de acesso), tentativas subseqüentes para reiniciar o aplicativo criam processos MTS múltiplos. (O correto deve ser somente um processo MTS por pacote.) No caso de um processo servidor terminar inesperadamente, você deve reinicializar seu computador com Windows 95.
Há um problema conhecido que pode causar deadlocks ao utilizar aproximadamente 40 conexões pipes ou mais nomeadas de um cliente Windows 95 para o MS Distributed Transaction Coordinator (DTC). Para reparar esse problema, altere o protocolo entre o driver ODBC e o SQL Server para TCP/IP.
O COM permite que um servidor emule o outro utilizando as chaves de Registro TreatAs ou AutoTreatAs. Suponha que um cliente crie um componete de um dado CLSID utilizando o CoCreateInstance. Se a chave TreatAs ou AutoTreatAs estiver presente sob aquele CLSID no Registro, o COM irá criar o componente indicado por esta chave. Isso roteia efetivamente as requisições do cliente para o servidor de emulação. (O mesmo roteamento é possível utilizando-se o ProgID se o cliente consultar seus servidores pelo ProgID em vez do CLSID.)
Os componentes que são emulados utilizando-se a TreatAs ou a AutoTreatAs não são componentes MTS válidos e não podem ser importados. Se a emulação for adicionada após o componente ter sido importado, ele deve ser excluído do catálogo MTS e, em seguida, substituído com o componente de emulação.
Dentro de um processo servidor, objetos na mesma atividade devem ser registrados com modelos de encadeamento compatíveis. As combinações a seguir são válidas:
Observe que os componentes MTS segmentados apenas uma vez não podem ser criados por um Active Server Page em processo de execução com o IIS ou em processo com um aplicativo do IIS utilizando a isolação do processo.
A criação de servidores locais não-MTS utilizando método CreateInstance do objeto do contexto é extremamente desaconselhável. Tais servidores não podem ser escalonados com bons resultados e podem causar outras ocorrências de servidor que não possam ser desligados pelo MTS. Se você precisar criar um servidor local não-MTS, utilize o CoCreateInstance.
Não utilize o COM surrogates dentro do MTS. Em vez disso, carregue servidores em processo no processo servidor MTS.
O controle de acesso ao pacote baseado na função MTS não funciona corretamente quando os pacotes são front-ended pelos multiplexadores que representa clientes múltiplos (por exemplo, o Internet Information Server). Os pacotes MTS utilizados nesses ambientes devem ser configurados com a segurança desativada.
Isto pode ser reparado pela instalação do Windows NT QFE1, disponível no site de transmissão da Web no Windows NT Option Pack. Depois de instalar o QFE, a segurança baseada em função funcionará corretamente com o IIS.
Quando você cria aplicativos IIS seguros que utilizam processo de isolamento, o IIS cria um pacote MTS que é definido para ser executado como IWAM_<nome do computador>. Se você desejar alterar a identidade desses pacotes, deve-se também adicionar uma nova identidade de pacote ao grupo "MTS Trusted Impersonators" ou a segurança não funcionará corretamente em outros componentes MTS fora de processo. Se isso não for feito, o chamador parecerá ser IWAM_<nome do computador> em vez do cliente verdadeiro do IIS.
O ADO apaga qualquer informação que você possa ter colocado num objeto 'ErrorInfo'. Há uma alteração de código para este problema que precisa ser implementada no tratamento de erros.
Para o Visual Basic, o código é similar ao que se segue:
ErrorHandler: ' disponibilização If Not adoRS Is Nothing Then Set adoRS = Nothing End If If Not adoConn Is Nothing Then Set adoConn = Nothing End If Err.Raise Err.Number, "Bank.Accout.Post", Err.Description Exit Function
Para o Visual C++, o código é similar ao que se segue:
// // ErrorInfo é salvo aqui porque o seguinte // código de disponibilização do ADO pode desmarcá-lo. // IErrorInfo * pErrorInfo = NULL; GetErrorInfo(NULL, &pErrorInfo); if (adoRsBalance) adoRsBalance->Release(); if (adoCoConnection) adoCoConnection->Release(); AtlReportError( CLSID_CAccount, pErrMsg, IID_IAccount, hr); // // coloque o error back no TLS // SetErrorInfo(NULL, pErrorInfo);
Para o Visual J++, o código é similar ao que se segue:
if (adoRsBalance != null) { if (adoRsBalance.getState() == ObjectStateEnum.adStateOpen) adoRsBalance.Close(); ComLib.release (adoRsBalance); } if (adoConn != null) { if (adoConn.getState() == ObjectStateEnum.adStateOpen) adoConn.Close(); ComLib.release (adoConn); }
Observação No Java você deve fechar expressamente o conjunto de registros e/ou as conexões, bem como liberar os objetos ADO.
A documentação declara incorretamente que uma versão do Active Server Page (ASP) do cliente do 'Banco de exemplo' é fornecida.
O MTS 1.0 teve um limite de 100 métodos por componente. No MTS 2.0 agora esse limite é de 1024 métodos.
Os componentes que utilizam o RDO 2.0 e são acessados simultaneamente por clientes múltiplos que podem acusar violações de acesso. Isso tem sido observado em servidores que têm múltiplos processadores. Esse problema tem sido observado em componentes que utilizam o ADO.
Os exemplos do Visual Basic Scripting (VBScript) para administração automatizada do MTS estão localizados em \Program Files\Mts\Samples, não \Program Files\Mtx\Samples\WSH como afirmado na documentação.
Para compilar os componentes do banco de exemplo Java no Windows 95, execute o 'midl.exe' no arquivo 'Account.idl', em seguida execute o 'SetJavaDev.bat'.
Os componentes MTS não devem ser construídos como DLLs de extensões MFC, porque tais DLLs podem ser carregadas somente pelos aplicativos MFC. Um componente COM, e portanto um componente MTS, deve ser construído para que possa ser carregado em qualquer processo, independente do tipo de aplicativo que iniciou o processo.
Para obter maiores informações sobre as DLLs de extensões MFC, consulte o Guia do Programador do Microsoft Visual C++.
Quando um processo do 'Mtx.exe' sendo executado nos componentes Visual Basic 4.0 é "Desligar após estar ocioso por x minutos", ocorre um problema conhecido que resulta em uma violação de acesso de 'Leitura'. Atualmente não há solução conhecida para esse problema. Acredita-se que se mais de dois componentes Visual Basic 4.0 forem utilizados em um processo, é mais provável que isso aconteça. Uma solução é definir seu pacote para "Manter em execução quando estiver ocioso". Isso torna-se somente um problema quando utilizam-se componentes construídos com o Visual Basic 4.0 -- Não há mais problemas no Visual Basic 5.0.
Se o componente do servidor utilizar o RDO, nunca deixe que um rdoConnection com um rdoResultset ativo caia do escopo ou poderá resultar em uma deadlock. Você deve fechar manualmente o rdoResultset ou o rdoConnection para evitar a deadlock. A seqüência a seguir produz uma deadlock:
O deadlock é evitado manualmente, fechando-se o conjunto de resultados (ou conexão) no final da etapa 1, que gera imediatamente chamadas ODBC para fechar a instrução (e a conexão). A raiz do problema é o atraso apresentado pela mensagem postada na janela oculta para fazer com que o ODBC se feche.
Sempre que você recompilar um projeto OLE DLL no Visual Basic 4.0, o Visual Basic grava novamente todas as entradas de Registro para todos os componentes (classes Visual Basic) que existem naquele DLL. Além disso, o Visual Basic pode gerar novos GUIDs (dependendo da configuração do projeto) para identificar os componentes naquele DLL. Isso significa que os componentes MTS não são mais registrados corretamente no catálogo MTS.
Há duas soluções para este problema. Primeiro, há um botão Atualizar no Transaction Server Explorer, bem como o comando Atualizar todos os componentes no menu Ferramentas. Se você utilizar esse comando o Microsoft Transaction Server irá reparar todas as inconsistências nas entradas de Registro dos componentes no painel direito do Explorer atualmente.
Se você instalar a versão desenvolvida do Microsoft Transaction Server, verifique a opção VB Addin para ativar um recurso que renovará automaticamente os componentes depois de recompilados. A próxima vez que você executar o Visual Basic 4.0, o add-in será automaticamente instalado em seu Visual Basic IDE. Você pode também ativar e desativar o recurso em uma base por projeto selecionando ou deselecionando o comando MTxServer RegRefresh | AutoRefresh after compile no menu Add-Ins do Visual Basic. Se você desejar renovar todos os componentes do Microsoft Transaction Server em um dado momento, pode-se utilizar o comando MTxServer RegRefresh | Refresh all components agora no menu Add-Ins .
Importante O Visual Basic Add-in tem sido atualizado para funcionar com o Visual Basic versão 4.0 e versão 5.0. Uma vez instalado, ele irá renovar automaticamente o catálogo do Transaction Server com as alterações feitas durante cada compilação. A opção do menu 'Add-in' não é mais suportada para ativar e desativar a renovação automática.
A utilização do add-in irá renovar corretamente o catálogo do MTS, mesmo após as compilações do Visual Basic que geram novos GUIDs de componentes. Observe também que a definição Compatible OLE Server na caixa de diálogo Project Options no Visual Basic pode ser utilizada para interromper o Visual Basic de gerar novos GUIDs de componentes.
A renovação do catálogo do MTS depende da não alteração do ProgIDs de seus componentes. No Visual Basic 4.0, o ProgID do componente é formado pela seguinte concatenação: nome do projeto.nome da classe. Se você alterar qualquer um desses itens, terá que reinstalar o(s) componente(s) no MTS Explorer.
A construção do componente no Visual Basic 4.0 sem selecionar a opção Compatible OLE Server recoloca os antigos CLSID e IID em cada compilação. Há desvantagens quando um componente MTS é desenvolvido, mesmo que o add-in do Visual Basic esteja ativado.
Ao relatar uma falha, inclua a informação a seguir em seu relatório de falha:
Se você tiver uma pergunta técnica sobre o Microsoft® Transaction Server, utilize a documentação on-line ou consulte a 'Ajuda' clicando no botão Ajuda durante um procedimento. Se você ainda tiver alguma dúvida, o Microsoft oferece serviços e suporte técnico que vão desde ferramentas de auto-ajuda a assistência direta com a Microsoft Technical Support Engineer. Observação: Os serviços e preços listados aqui estão disponíveis somente nos Estados Unidos e Canadá (consulte Technical Support Worldwide abaixo).
Microsoft Technical Support Online: Este site inovador utiliza a tecnologia de ponta do Microsoft para ajudá-lo a acessar as informações técnicas mais importantes e recursos para responder a suas questões. Utilize os 'Assistentes de solução de problema' para diagnosticar e responder facilmente questões técnicas. Ou selecione artigos técnicos, auxílio de programação ou perguntas comuns do Microsoft Knowledge Base de mais de 75.000 artigos. Visite http://www.microsoft.com/support/ hoje e veja como é fácil encontrar as respostas que você precisa.
Pay-Per-Incident Support: Se ainda necessitar de respostas para suas dúvidas técnicas, você pode adquirir o Pay-Per-Incident Support. Nos EUA. e Canadá, por uma taxa de $195US por ocorrência, ligue para (800) 936-5900, 24 horas por dia, sete dias por semana, inclusive feriados.
Observação Taxas de suporte para as ligações (800)# serão debitadas em seu cartão de crédito VISA, MasterCard ou American Express.
Priority Annual Support: Se você esperar um grande número de ocorrências de suporte ou precisar de acesso de prioridade ao Microsoft Technical Support Engineers, poderá adquirir um Priority Annual Comprehensive Account. Nos EUA e Canadá, para obter maiores informações ou para adquirir uma conta anual ao custo de $1,695US por 10 ocorrências, ligue para (800) 936-3500, 24 horas por dia, 7 dias por semana, inclusive feriados. Para enviar uma ocorrência a uma conta existente, ligue para (800) 936-4900, 24 horas por dia, 7 dias por semana, inclusive feriados.
Enviando dúvidas via Internet: Nos EUA e Canadá, você pode também enviar suas dúvidas de suporte Pay-Per-Incident ou Priority Annual via Internet com Web Response. Para obter maiores detalhes, utilize o Microsoft Technical Support Online em http://www.microsoft.com/support/.
Prioridade Plus: O Microsoft Technical Support oferece também contas especiais para empresas de médio porte que exigem resolução prioritária de ocorrência, incluindo suporte business-critical e acesso a informações de destino para auxiliar os profissionais de tarefa de 'Ajuda' e informações tecnológicas no suporte do planejamento para o desenvolvimento do produto oculto. Para obter maiores informações, Nos EUA e Canadá, ligue para (800) 936-3500, 24 horas por dia, 7 dias por semana, inclusive feriados.
Priority Consult Line: Recebe, por hora, consultas de dúvidas de suporte que vão além do suporte no área técnica tradicional. Estas incluem estrutura ou planejamento para desenvolvimento, desenvolvimento de software, revisão de código e planejamento de implementação. O Consult Line abrange todos os produtos da Microsoft, inclusive aqueles produtos utilizados para desenvolver soluções de Internet e Intranet. Para obter maiores informações ou adquirir serviços de consulta por hora a $195US por hora (mínimo de uma hora), ligue para (800) 936-5200, de segunda a sexta-feira, exceto feriados, das 6 às 18 horas, hora do Pacífico.
Serviços e programas profissionais: O Microsoft Technical Support oferece também programas e serviços de suporte profissional para empresas de grande porte que necessitam de um relacionamento direto com a Microsoft. Para obter maiores informações, consulte a seção "Suporte técnico" do arquivo da 'Ajuda', ou visite o Microsoft Technical Support Online em http://www.microsoft.com/support/.
Text Telephone: Os serviços de telefone textual da Microsoft (TTY/TTD) estão disponíveis para os surdos ou aqueles com dificuldades auditivas. Nos Estados Unidos, utilizando um modem TTY/TTD, disque (425) 635-4948. No Canadá, utilizando um modem TTY/TTD, disque (905) 568-9641.
Technical Support Worldwide: Os serviços de suporte e os preços podem variar fora dos Estados Unidos e do Canadá. Para obter informações sobre suporte disponível fora dos EUA e Canadá, entre em contato com a subsidiária local da Microsoft em sua área. Para obter uma lista das subsidiárias da Microsoft em todo o mundo, consulte a seção "Suporte técnico" do arquivo da 'Ajuda', ou visite o Microsoft Technical Support Online em http://www.microsoft.com/support/.
Observação Os serviços e preços listados aqui estão disponíveis somente nos Estados Unidos e Canadá. Os serviços de suporte podem variar fora dos EUA e Canadá. Para obter maiores informações sobre suporte em outros locais, entre em contato com a subsidiária local da Microsoft.
Os serviços de suporte da Microsoft estão sujeitos aos preços, termos e condições vigentes da Microsoft, que, por sua vez, estão sujeitos a alterações sem aviso prévio.
© 1998 Microsoft Corporation
Estes materiais são fornecidos no estado em que se encontram, somente para o propósito de informação.
Nem a Microsoft nem seus fornecedores tornam qualquer garantia, expressa ou implicada com relação ao conteúdo desses materiais ou a exatidão de qualquer informação contida aqui, incluindo, sem limitação, as garantias implicadas de comercialização e adequação para propósitos específicos. Porque alguns estados/jurisdições não permitem exclusões de garantias, as limitações acima não podem ser aplicadas a você.
Nem a Microsoft nem seus fornecedores terão qualquer responsabilidade pelos danos, ou o que quer que seja, incluindo conseqüente, eventual, direto, indireto, especial e perda de lucros. Por isso alguns estados/jurisdições não permitem exclusões de garantias implicadas. As limitações acima podem não ser aplicadas a você. Em qualquer evento a Microsofte seus fornecedores responsabilizam-se integralmente por qualquer modo decorrente desses materiais, seja por dano, contrato ou do contrário não irá exceder o preço comercial sugerido nesses materiais.