Tenho uma aplicação Qt que troca dados via QtOpcUa. Não tenho nenhuma pesquisa, navegação ou outra operação, mas um monte de assinaturas. A cada poucos minutos recebo um BadTimeout
erro do servidor que fecha a conexão.
Isso acontece somente se eu tiver alguma assinatura habilitada e mais de um CLP conectado. Mas o que pode causar esse tempo limite?
Aqui eu li:
A operação expirou.
Como uma assinatura pode expirar? Isso é feito pelo próprio servidor! É um problema do servidor ou posso fazer alguma coisa do lado do cliente?
As mensagens que recebo são:
[20231003 12:51:19 I] unknown:0 - "Received a ServiceFault response"
[20231003 12:51:19 I] unknown:0 - "The ServiceResult has the StatusCode BadTimeout"
[20231003 12:51:19 W] unknown:0 - "Received Timeout for Publish Response"
Seu aplicativo cliente pode estar enviando/enfileirando mais PublishRequests do que o nível de atividade das assinaturas precisa ou com dicas de tempo limite no RequestHeader que são muito curtas e, eventualmente, o servidor o retira da fila e descobre que foi recebido há mais tempo do que o tempo limite dica e envia de volta uma resposta ServiceFault com Bad_Timeout.