Alle Betriebssysteme machen so etwas. Damit werden nicht mehr genutzte Ressourcen wieder freigegeben.
Warum sollte PostgreSQL keine Werte über 48 Stunden vertragen, was hat dich zu dieser Aussage veranlasst?
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
Ich hatte beim Neustart der Datenbank im Datenbanklog eine Fehlermeldung erhalten als ich diesem Parameter einen Wert über 48 Std (in Sekundenangabe) zugwiesen habe. Mit einer Wertzuweisung von 12 Std. war das kein Problem.
Um noch mal auf die Frage zurückzukommen: Wie kann ich dieses Problem umgehen? Unsere Anwendung muss dem Kunden 7 Tage in der Woche zur Verfügung stehen und muss darüber hinaus auch nachts laufen, da in dieser Zeit Importe und Berechnungen laufen. Da sind Verbindungsabbrüche natürlich alles andere als gewünscht, und dieses Problem läßt sich ja auch mit einem Erhöhen der Timeout-Werte nicht umgehen.
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Timeouts bedeuten zuallererst einmal, dass da tatsächlich seit 2 Tagen nichts passiert ist. Von 24/7 kann da also keine Rede sein.
Alles andere bedarf einer genaueren Analyse, was die Anwendung macht, können soll, bereitstellen soll, wie auf Fehler reagiert werden kann ect.
Darauf aufbauend kann man dann Lösungen erarbeiten.
Hast du Zeit und Ressourcen für so eine Analyse?
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
@akretschmer
Irgendwie hast du nur gesagt ich soll das Timeout erhöhen.
Das beantwortet jedoch nicht meine Frage und löst auch nicht das Problem. Vielleicht habe ich es aber auch nicht genau verstanden. Jedenfalls müsste ich unabhängig davon doch in meinem Code vor jedem SQl-Statement prüfen, ob die Connection aus dem Pool noch besteht, und wenn nicht eine neue aufbauen....
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Leider nicht. Außerdem ist eine Analyse schwierig, da unsere Software bei mehreren Kunden im Einsatz ist und somit auch individuell auf diese abgestimmt ist. Das bedeutet, dass die Aktivität dementsprechend variabel ist. Es kann aber trotz hoher Aktivität einmal vorkommen, dass uns diese 2 Tage Timeout nicht reichen. Das liegt in der Architektur unserer Connection-Pools begründet: Wenn z.B. ein Prozess unserer Anwendung, der alle paar Minuten läuft, mit Connection A arbeitet, und diese auch immer wieder vom Pool bekommt, kann es trotzdem sein dass Connection B lange im Leerlauf ist. Irgendwann bekommt dann aber ein anderer Prozess nun durch Zufall Connection B zugewiesen, die dann in dem Moment wegen des Timeouts geschlossen wurde. Dadurch kommen dann eben diese Fehler zustande.
Was ist, wenn die Verbindung zwischen beiden Servern - aus welchen Gründen auch immer - nach dem letzten Statement ausgefallen ist?
Nun, in der Regel prüft man nicht die Internetverbindung sondern man fängt generell Fehler ab und handelt entsprechend. Wenn beim Absenden der Anfrage ein Timeout auftrat, gibt das einen Fehler zurück und man kann reagieren. Das ist einer der Aspekte, die ich oben mit meiner Analyse meinte. Da gibt es noch ein paar mehr Fälle, die auftreten können.
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