Benutzer mit den meisten Antworten
Multiple TCP Verbindungen in einem Windows-Service.

Frage
-
Hallo,
In meinem Windows-Serivce laufen teilweise eine hohe Anzahl von Threads die alle mit jeweils einem anderen Ziel über TCP/IP kommunizieren.
Ich habe manchmal das Problem das einzelne Tasks sich nicht zu ihren TCP Ziel verbinden können nachdem es eine lange Zeit gelaufen ist. Es kann Tage oder auch Wochen dauern bis es zu diesen Aussetzern kommt, bei einigen Installationen passiert das auch nie. Ein Leak möchte ich hier mal ausschließen.
Als Fehler kommt: Verbindungsversuch fehlgeschlagen. (Obwohl ziel erreichbar ist) Wenn es einmal fälschlicherweise nicht geht, funktioniert es nie wieder.
Ein PING ist jedoch ohne Probleme möglich.
Ein Restart vom Service behebt den Fehler immer.
Jemand eine Idee was ich programatisch machen könnte was es zu solch ein Problem kommt.cu
k.o.
Antworten
-
Hi K.,
das Problem kenne ich. Es kann aber leider sehr viele verschiedene Ursachen haben. Als Gemeinsamkeit hat sich bei mir herausgestellt, dass es einen Absturz in einem Thread gab und danach interne Komponenten "gehangen" haben. Da hilft wirklich nur extensive Protokollierung in allen Catch-Blöcken, die die Threads vollständig überwachen. Wenn da ein Programmzweig, der in einem Thread abgearbeitet wird, nicht in try-catch eingeschlossen wird, kann es unmöglich werden, der Ursache auf den Grund zu gehen. In diese Überwachung sollten auch Tine-Outs eingeschlossen werden, da diese meist die Ursache bei mir waren.--
Viele Grüsse
Peter Fleischer (ehem. MVP)
Meine Homepage mit Tipps und Tricks- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Freitag, 20. Juli 2018 04:53
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Montag, 30. Juli 2018 05:00
-
Hi Kai,
da Time-Outs sehr unterschiedlich auftreten können, solltest Du eine Liste mit allen denkbaren Situationen und Zuständen erstellen, bei denen Time-Outs auftreten können, und dazu die Behandlung festlegen. Das ist dann zu implementieren und möglichst mittels Schalter zu protokollieren. Später nach erfolgreichen Tests kannst Du mit dem Schalter die Protokollierung unterdrücken.
--
Viele Grüsse
Peter Fleischer (ehem. MVP)
Meine Homepage mit Tipps und Tricks
- Bearbeitet Peter Fleischer Dienstag, 17. Juli 2018 10:16
- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Freitag, 20. Juli 2018 04:53
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Montag, 30. Juli 2018 05:00
Alle Antworten
-
Hi K.,
das Problem kenne ich. Es kann aber leider sehr viele verschiedene Ursachen haben. Als Gemeinsamkeit hat sich bei mir herausgestellt, dass es einen Absturz in einem Thread gab und danach interne Komponenten "gehangen" haben. Da hilft wirklich nur extensive Protokollierung in allen Catch-Blöcken, die die Threads vollständig überwachen. Wenn da ein Programmzweig, der in einem Thread abgearbeitet wird, nicht in try-catch eingeschlossen wird, kann es unmöglich werden, der Ursache auf den Grund zu gehen. In diese Überwachung sollten auch Tine-Outs eingeschlossen werden, da diese meist die Ursache bei mir waren.--
Viele Grüsse
Peter Fleischer (ehem. MVP)
Meine Homepage mit Tipps und Tricks- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Freitag, 20. Juli 2018 04:53
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Montag, 30. Juli 2018 05:00
-
Hi Kai,
da Time-Outs sehr unterschiedlich auftreten können, solltest Du eine Liste mit allen denkbaren Situationen und Zuständen erstellen, bei denen Time-Outs auftreten können, und dazu die Behandlung festlegen. Das ist dann zu implementieren und möglichst mittels Schalter zu protokollieren. Später nach erfolgreichen Tests kannst Du mit dem Schalter die Protokollierung unterdrücken.
--
Viele Grüsse
Peter Fleischer (ehem. MVP)
Meine Homepage mit Tipps und Tricks
- Bearbeitet Peter Fleischer Dienstag, 17. Juli 2018 10:16
- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Freitag, 20. Juli 2018 04:53
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Montag, 30. Juli 2018 05:00