The problem is that the devices usually give a TCP connection failure on the first attempted use. They'll then work fine for an hour straight. But, if allowed to sit idle for 10 - 15 mins (approx), they'll throw the initial error once.
A primeira coisa que eu recomendaria é obter uma cópia do manual ou falar com o fornecedor para obter uma explicação exata do erro que os dispositivos geram. Perdi tempo procurando por problemas de Camada 3/4 quando o erro
realmente significava outra coisa. Nem todos os fornecedores usam a terminologia de maneira correta ou consistente.
Parece que os dispositivos não estão enviando manipulação ou mantendo o keep-alive corretamente. Se não houver dados passando pela sua conexão TCP, ela será fechada eventualmente. Para evitar que esse endpoint (ou ambos) possa enviar pacotes keep-alive para evitar que a conexão seja finalizada. Eu sei que isso pode ser feito com o TCP (Layer-4) e, presumivelmente, também poderia ser feito com SSL / TLS (Layer-7).
Coloque um sniffer de pacotes de escolha entre um desses dispositivos e sua infraestrutura e registre todo o tráfego desde o momento em que ele funciona até o momento em que não funciona. Então olhe através dele e encontre onde o dispositivo ou o servidor está se conectando está iniciando a seqüência de término , então veja o que precede imediatamente isso. Também observe o momento em que o dispositivo lança o erro "Falha na conexão TCP". Está tentando usar uma conexão que acha que está estabelecida, mas que o servidor pensa que está terminada? Algo estranho está acontecendo aqui também - se a conexão não for estabelecida, em vez de gerar um erro, seu dispositivo de cartão de crédito deve tentar criar um novo (o que aparentemente acontece com sucesso na segunda vez).
E, finalmente, se você estiver usando o NAT, considere dar a um desses dispositivos uma conexão direta, não-NAT, para fins de teste (novamente, faça uma captura de pacote). O NAT pode fazer coisas muito estranhas a aplicativos ou protocolos que dependem do Princípio End-to-End e fazer Não use o NAT difundido ou outros dispositivos com informações de estado que interfiram na conexão.
Se você estiver usando um proxy, verifique se ele não está envolvido ou se está configurado corretamente para lidar com esses dispositivos. Temos muitos dispositivos ou processos que são inteligentes o suficiente para usar as configurações WPAD do sistema operacional do host, mas não enviam as credenciais do diretório ativo da conta de usuário que as executa com suas solicitações HTTP / HTTPS e o proxy espera que todas as conexões sejam autenticadas e então o processo falhará silenciosamente no lado do cliente.