Sintomas
Suponha que Active o grupos de Disponibilidade AlwaysOn numa instância do Microsoft SQL Server 2014. Efectuar uma activação pós-falha de grupo de disponibilidade enquanto a réplica principal tem transacções activas. Em seguida, recebe a seguinte mensagem de aviso 3303:
Remoto proteger de transacção ' %. * ls' (ID de 0 x % 016I64x %ls) foi iniciada em % S_DATE na base de dados '%ls' em LSN % S_LSN falhou.
Nesta situação, os seguintes controladores de dados ou fornecedores não é possível detectar a excepção "hardening Falha ' remoto:
-
Controlador de JDBC da Microsoft para o SQL Server 4.0
-
OLE DB controlador para o SQL Server
-
SQL Server Native client para OLE DB
Por conseguinte, a aplicação de cliente que utiliza estes controladores ou fornecedores de não saber que a transacção é "em dúvida." Uma transação de "em dúvida" significa que poderia ter sido consolidada e temperado, para o disco com êxito ou é cancelada e anulada pelo SQL Server. Se esta transação de "em dúvida" é revertida, estes controladores ou fornecedores podem ainda considerar que a transacção consolidada como com êxito porque eles não é possível capturar a excepção. Isto pode causar um problema de inconsistência de dados de aplicações.
Nota Os seguintes fornecedores de ligação podem capturar a excepção "hardening falha remota" para as transacções de "em dúvida":
-
Controlador Microsoft ODBC para SQL Server
-
SQL Server Native Client (ODBC)
Resolução
Este problema foi corrigido pela primeira vez na actualização cumulativa do SQL Server.
Actualização cumulativa 5 para o SQL Server 2014/en-us/help/3011055
Cada nova actualização cumulativa para o SQL Server contém todas as correcções e todas as correcções de segurança que foram incluídas na anterior actualização cumulativa. Verifique as actualizações cumulativas mais recentes para o SQL Server:
Informações sobre correçãoEsta correcção introduz um novo sinalizador de rastreio 3923. O sinalizador de rastreamento permitirá accione uma excepção para a aplicação quando a mensagem de aviso 3303 é aumentada do SQL Server.
Depois de aplicar a correcção, tem de activar este sinalizador de rastreio resolver este problema. Com a correcção e o sinalizador de rastreio, a aplicação também tem de implementar os códigos de validação para verificar se a transacção é revertida ou praticada depois da excepção é capturada.
Existe uma correção suportada pela Microsoft. No entanto, esta correção destina-se apenas a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham este problema específico.
Se a correção está disponível para transferência, existe uma secção de "Transferência de Correção Disponível" na parte superior deste artigo da Base de Dados de Conhecimento. Se esta secção não for apresentado, submeta um pedido de suporte e serviço de cliente Microsoft para obter a correcção.
Nota Caso ocorram problemas adicionais ou se for necessária a resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos de normais do suporte serão aplicados a questões de suporte adicional e problemas incluídos nesta correção específica. Para uma lista completa dos números de telefone de suporte e serviço de cliente da Microsoft ou para criar um pedido de assistência separado, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=supportNota O formulário "Transferência de correcção disponível" apresenta os idiomas nos quais a correcção está disponível. Se não visualizar o seu idioma, é porque uma correcção não está disponível para esse idioma.
Requisito de reinícioNão é necessário reiniciar o computador depois de aplicar esta correcção.
Estado
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".