Estou vendo o seguinte erro no SSMS (o servidor tem Windows Server 2008 e Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 instalado) ao executar algumas consultas no servidor vinculado, em particular consultas de execução longa.
As seleções simples das tabelas no servidor vinculado funcionam bem. Este é um novo problema que foi notado quando os SPs que funcionaram por anos começaram a falhar.
Executei uma captura Wireshark no servidor, capturando pacotes para a porta 1433 no host do servidor vinculado. No final da captura, vejo muitos (10) TCP Keep-Alives sendo emitidos (após uma mensagem sobre soma de verificação incorreta) e, em seguida, um pacote RST. O pacote RST está correlacionado com o erro abaixo sendo retornado ao cliente.
Existem outros servidores de banco de dados em nossa rede, onde o servidor vinculado está configurado de forma idêntica, que não exibem esse problema.
Eu encontrei alguns artigos como este e este . Estamos usando os NICs Broadcom implicados. A configuração Chimney Offload State está habilitada no servidor.
Vamos tentar desabilitar. Outros pensamentos sobre solução de problemas seriam muito apreciados.
OLE DB provider "SQLNCLI10" for linked server "myServer" returned message "Protocol error in TDS stream".
OLE DB provider "SQLNCLI10" for linked server "myServer" returned message "Communication link failure".
Msg 65535, Level 16, State 1, Line 0
Session Provider: Physical connection is not usable [xFFFFFFFF].
OLE DB provider "SQLNCLI10" for linked server "myServer" returned message "Communication link failure".
Msg 65535, Level 16, State 1, Line 0
Session Provider: Physical connection is not usable [xFFFFFFFF].
OLE DB provider "SQLNCLI10" for linked server "myServer" returned message "Communication link failure".
Msg 64, Level 16, State 1, Line 0
TCP Provider: The specified network name is no longer available.
Desativamos o TCP Chimney Offload de acordo com o artigo da Symantec, reinicializamos os servidores e o problema parece estar resolvido.
Os SPs problemáticos não estão mais lançando a exceção de falha no link de comunicação.
Mais informações da Microsoft sobre TCP Offloading