Hallo,
ich habe bei uns in der Firma zwei Ubuntu-VMs (8.04), auf denen jeweils ein PG 8.3 Datenbankserver läuft. Diese beiden VMs liegen in physikalisch unterschiedlichen Netzwerken. Zuhause habe ebenfalls eine Ubuntu VM mit Postgresql. Bei allen drei Installationen sehe ich im Logfile laufend (unabhängig von der Anwendung) folgende Fehlermeldungen:
incomplete startup packet
unexpected EOF on client connection
could not receive data from client: Connection reset by peer
Eine Recherche war für mich bisher wenig hilfreich, da in diversen Foren beschrieben wurde, das solche Meldungen auf Probleme mit dem Netzwerk hindeuten. Das kann ich bei mir aber ausschließen - alle anderen Dienste funktionieren und auch sonst gab es nie Probleme mit dem Netzwerk. Zumal es auch auf allen drei Systemen auftritt.
Hat vielleicht von euch jemand eine Idee, was hier das Problem sein könnte? Meine postgresql.conf sowie meine pg_hba.conf Dateien entsprechen zu 90% den Default-Einstellungen, ich habe lediglich Anpassungen für die Authentifizierung und die IP-Berechtigung vorgenommen.
Vielen dank im Vorraus!
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Kann es sein, dass die Clients einfach die Verbindung schließen, ohne sie ordnungsgemäß herunterzufahren?
Oder dass z. B. das Gateway oder der Router die Verbindung aufgrund eines Timeouts löscht?
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Hi,
einmal hatten wir in der Firma das Problem, dass unsere Anwendung nach längerer Betriebszeit bei einer Query mit dem Postgresql-Fehler "Ein/ausgabe Fehler beim Senden an das Backend" abbrach. Der Zusammenhang zu diesen Fehlermeldungen im Logfile liegt nahe, da die Cause ebenfalls ein SocketError war (write to socket broken). Das Beheben des Fehlers war dann durch ein Neustarten der Anwendung kein Problem.
Da unsere Anwendung mittlerweile einen eigenen Connection-Pool verwendet, der beim wegbrechen einer Verbindung diese neu aufbaut, sollten diese Fehler nun nicht mehr auftreten. Dennoch sind die Fehlermeldungen im Logfile vorhanden und das macht mir etwas Angst...
Nun, gibt es ein Logfile vom Pool? Sobald eine dieser Verbindungen dort wegbricht, erscheint wohl diese Logmeldung.
Wie sieht denn die Netzwerkverbindung zwischen Anwendung und Pool aus? Was liegt da alles dazwischen?
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Hatte deine Antwort erst nach dem Abschicken meiner Nachricht gelesen
Also, wir verwenden ja Connection-Pools, die die Verbindung nach dem Gebrauch wieder an den Pool zurückgeben. Ein close() auf der Connection wird nicht aufgerufen.
Zum Thema Firewall: Das war anfangs auch schon eine Vermutung von mir, da ich allerdings diese Fehlermeldungen auch zuhause habe (und ich hier im lokalen Netzwerk bin und hier auch keine Firewall werkelt), hab ich das noch nicht weiter überprüft.
Bei dem Gateway bin ich mir allerdings nicht so sicher (weder zuhause, noch bei der Arbeit), da meine Kenntnisse was Netzwerk angeht eher rudimentär sind.
Der Pool ist Bestandteil der Anwendung, es liegt also nichts dazwischen. Ich muss noch dazu sagen, das unsere Client-Anwendung, von der ich bisher sprach in Wirklichkeit eine Serveranwendung ist, welche die Geschäftslogik abbildet und mit der Datenbank und den Client-Anwendungen kommuniziert.
Im Logfile des Pools war (bis auf den weiter oben beschriebenen einmalig aufgetretenen Fehler) nichts ungewöhnliches zu finden.
Gut, wenn der Pool Bestandteil der Anwendung ist: was befindet sich zwischen dem Pool und der Datenbank? Bei meiner vorherigen Frage bin ich davon ausgegangen, dass der Pool (wie sonst üblich) der Datenbank und nicht der Anwendung zugeordnet ist.
Kann man das Logging des Pools aufdrehen? Ich vermute, dass eine (aus welchem Grund auch immer) beendete Poolverbindung diese Meldungen im Logfile hervorruft. Viel mehr gute Gründe gibt es nicht mehr.
Ein paar andere Gründe fallen mir schon noch ein, aber die haben nichts mehr mit der Datenbank zu tun.
Zum Netzwerk: die Frage ist darum interessant, weil anscheinend irgendeine Netzwerkkomponente dafür sorgt, dass die Verbindung unterbrochen wird.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Der Pool läuft - ebenso wie die Datenbank - auf der gleichen VM. Dazwischen ist also nur der JDBC-Treiber.
Den Loglevel des Pools kann man erhöhen. Das hatte ich bisher nicht probiert, werde es aber morgen bei der Arbeit ausprobieren.Kann man das Logging des Pools aufdrehen? Ich vermute, dass eine (aus welchem Grund auch immer) beendete Poolverbindung diese Meldungen im Logfile hervorruft. Viel mehr gute Gründe gibt es nicht mehr.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen