Ergebnis 1 bis 23 von 23

Thema: too many connections

  1. #1
    Contao-Nutzer
    Registriert seit
    07.01.2012.
    Beiträge
    96

    Standard too many connections

    Hallo,

    fast täglich habe ich in der error.log derartige Meldung, auch mehrfach:

    HTML-Code:
    [17-Apr-2016 10:32:21 Europe/Berlin] 
    PHP Warning: mysql_connect(): Too many connections in /var/www/webxxx/html/system/modules/core/library/Contao/Database/Mysql.php on line 47
    #0 [internal function]: __error(2, 'mysql_connect()...', '/var/www/webxxx...', 47, Array)
    #1 /var/www/web142/html/system/modules/core/library/Contao/Database/Mysql.php(47): mysql_connect('localhost:3306', 'webxxx', 'xxxxxxx')
    #2 /var/www/web142/html/system/modules/core/library/Contao/Database.php(81): Contao\Database\Mysql->connect()
    #3 /var/www/web142/html/system/modules/core/library/Contao/Database.php(165): Contao\Database->__construct(Array)
    #4 [internal function]: Contao\Database::getInstance()
    #5 /var/www/web142/html/system/modules/core/library/Contao/System.php(140): call_user_func(Array)
    #6 /var/www/web142/html/system/modules/core/library/Contao/User.php(158): Contao\System->import('Database')
    #7 /var/www/web142/html/system/modules/core/classes/FrontendUser.php(62): Contao\User->__construct()
    #8 /var/www/web142/html/system/modules/core/library/Contao/User.php(220): Contao\FrontendUser->__construct()
    #9 [internal function]: Contao\User::getInstance()
    #10 /var/www/web142/html/system/modules/core/library/Contao/System.php(140): call_user_func(Array)
    #11 /var/www/web142/html/system/modules/core/controllers/FrontendIndex.php(31): Contao\System->import('FrontendUser', 'User')
    #12 /var/www/web142/html/index.php(19): Contao\FrontendIndex->__construct()
    #13 {main}
    
    [17-Apr-2016 10:32:21 Europe/Berlin] PHP Fatal error: Uncaught exception 'Exception' with message 'Too many connections' thrown in /var/www/web142/html/system/modules/core/library/Contao/Database/Mysql.php on line 52
    #0 /var/www/web142/html/system/modules/core/library/Contao/Database.php(81): Contao\Database\Mysql->connect()
    #1 /var/www/web142/html/system/modules/core/library/Contao/Database.php(165): Contao\Database->__construct(Array)
    #2 [internal function]: Contao\Database::getInstance()
    #3 /var/www/web142/html/system/modules/core/library/Contao/System.php(140): call_user_func(Array)
    #4 /var/www/web142/html/system/modules/core/library/Contao/User.php(158): Contao\System->import('Database')
    #5 /var/www/web142/html/system/modules/core/classes/FrontendUser.php(62): Contao\User->__construct()
    #6 /var/www/web142/html/system/modules/core/library/Contao/User.php(220): Contao\FrontendUser->__construct()
    #7 [internal function]: Contao\User::getInstance()
    #8 /var/www/web142/html/system/modules/core/library/Contao/System.php(140): call_user_func(Array)
    #9 /var/www/web142/html/system/modules/core/controllers/FrontendIndex.php(31): Contao\System->import('FrontendUser', 'User')
    #10 /var/www/web142/html/index.php(19): Contao\FrontendIndex->__construct()
    #11 {main}
    Bei der Datenbankverbindung steht dauerhafte Verbindung: nein
    Alfahosting.de bietet ausnahmslos 20 Benutzer für die Datenbank.
    Bzgl. der Fehlermeldung teilt der Support mit:

    auffällig ist folgende Datei:

    /html/system/modules/core/library/Contao/Database/Mysql.php

    in den Zeilen 47 bzw. 52. Hier scheinen SQL-Abfragen gestartet zu werden, welche scheinbar aber nicht wieder geschlossen werden.Wie ein mysql_connect() die Verbindung öffnet, sollte nach Abarbeitung der Anfrage die Verbindung mit einem mysql_close() wieder geschlossen werden.

    Nach meiner Auffassung sollte dies aber Sache der Entwickler von Contao sein.
    Gibt es vielleicht einen Hinweis zur Beseitigung des Fehler?

    VG
    kdf

  2. #2
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Meines Wissens werden DB Verbindungen durch PHP automatisch geschlossen wenn die Verarbeitung beendet ist.

    Was heißt 20 Benutzer für die DB? Wenn damit 20 Kunden eine gemeinsame DB haben und alle nur eine gebrauchen würde das ja gut gehen.
    Da Contao niemals mehrere aufbaut, liegt die Ursache nicht an Contao.
    Außerdem, wenn man versuchen würde mit genau den selben Login/Passwort/Host/DB Daten eine weitere Verbindung aufzubauen (innerhalb der selben Anwendung wie Contao), würde PHP die bereits bestehende als Ergebnis-Handle zurückgeben.

    Ich gehe davon aus, das Alfahosting mehr Nutzer die DB nutzen lässt als maximale gleichzeitige Verbindungen definiert sind.
    Vielleicht weil man annimmt, das nicht alle eine DB nutzen wollen...
    Oder man hat nicht beachtet, das ein Nutzer ja mehrere Installationen parallel installiert haben kann, die jede eine DB Verbindung braucht, z.B. Webseite und Blog getrennt. Dann würde das natürlich irgendwann nicht mehr reichen.

    Soll heißen 20 Benutzer können durchaus mehr als 20 Verbindungen erzeugen. Die Anzahl der max. Verbindungen werden definiert in der DB Server Konfiguration.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  3. #3
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.078
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hmm, wie läuft das denn, wenn mehrere Anfragen von unterschiedlichen Clients gleichzeitig bearbeitet werden? Sofern nicht nur eine Datei abgerufen wird, muss Contao für jede Anfrage eine Verbindung zur Datenbank aufbauen (Wie das bei gecacheten Seiten ist, weiss ich nicht). Werden die Datenbankzugriffe da etwa serialisiert? Falls nicht, wird dann wirklich nur eine Verbindung zur Datenbank hergestellt? Es sind ja immerhin mehrere Prozesse.

  4. #4
    Contao-Nutzer
    Registriert seit
    07.01.2012.
    Beiträge
    96

    Standard

    Hallo BugBuster,

    besten dank für ausführliche Erläuterung!
    Damit ich nichts falsches interpretiere hier die Aussage von alfahosting:
    die Begrenzung kann nicht verändert werden und liegt bei 20 pro Benutzer.
    D.heißt wohl, wenn 21 "Leute" auf der Seite sind (nur eine Datenbank ist bei mir vorhanden) bewegt sich nichts mehr,
    wie die Praxis zeigt.

    VG
    kdf
    Geändert von kdf (17.04.2016 um 15:46 Uhr)

  5. #5
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Deswegen sollen ja alle die mit Contao Framework arbeiten ein \Database::getInstance() machen, denn dann erhalten diese die bereits aufgebaute Verbindung.

    Wenn dort mehrere getrennte Clients mit getrennten Frameworks arbeiten, dann geschieht genau das was ich sagte. Es gibt mehrere Verbindungen.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  6. #6
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von kdf Beitrag anzeigen
    D.heißt wohl, wenn 21 "Leute" auf der Seite sind (nur eine Datenbank ist bei mir vorhanden) bewegt sich nichts mehr,
    wie die Praxis zeigt.
    Da komme ich grad ins grübeln. Wenn das so wäre hätten wie alle Probleme denke ich mal.
    Mit statischen Singelton Klassen habe ich oft schon seltsames erlebt. (DB Klasse ist so eine)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  7. #7
    Contao-Nutzer
    Registriert seit
    07.01.2012.
    Beiträge
    96

    Standard

    Hallo BugBuster,

    ich habe das Open Sauce von Rocksolid und das ist meines erachtens ohne contao framework.

    http://www.baerbels-naturfoto.de

    VG
    kdf

  8. #8
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Du hast ein Contao Theme "Open Source" von Rocksolid, also eine ganz normale Contao Seite.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Stelle den Treiber im Install Tool auf "MySQLi" und deaktiviere die Persistent Connections.

  10. #10
    Contao-Nutzer
    Registriert seit
    07.01.2012.
    Beiträge
    96

    Standard

    Hallo Spooky,

    vielen dank für den Tipp!

    MySQLi habe ich jetzt eingestellt. Persistent Connections war schon immer deaktiviert.
    Ich werde die Auswirkungen beobachten und melde mich dazu.

    VG
    kdf

  11. #11
    Contao-Nutzer
    Registriert seit
    07.01.2012.
    Beiträge
    96

    Standard

    Hallo,

    die Einstellung auf MySQLi hat den Fehler leider nicht behoben.
    Innerhalb von Sekunden kamen drei solche Doppelmeldungen wie oben nur auf line 46 und line 5o, was vielleicht mit der MySQLi zusammenhängt.

    VG
    kdf

  12. #12
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo kdf,
    das Problem wirst du so auch nicht los werden. Ich kenne das auch von anderen Hostern. Mittwald zum Beispiel hat die Zugriffe auf 80 beschränkt (bei einem 30,- Euro Paket!). Als die Seite dann anfang letzten Jahres sehr gut besucht wurde hatte ich dann sehr häufig das Vergnügen, das die Seite nicht mehr gelaufen ist. Da kommt dann auch alles zusammen: Redakteure / Seitenbesucher / Bots. Da ist dann schnell mal dicht.
    Einzige Möglichkeit war dann ein Paket zu nehmen, was diese Beschränkung nicht hat. Bei Mittwald war das dann nur ein Mangaged Server. Bei deinem Anbieter könnte das ja schon bei kleineren Paketen der Fall sein ;-)

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  13. #13
    Contao-Nutzer
    Registriert seit
    07.01.2012.
    Beiträge
    96

    Standard

    Hallo MacKP,

    besten Dank für die klare Aussage. Da bin ich ja beruhigt, das es nicht allein mir so geht.
    Bei alfahosting gibts keine Pakete mit mehr als 20 Benutzer.
    Lt. FAQ muss man dann auf einen eigenen Server oder vServer (vServer für 12,99) ausweichen.

    Aber, wie gesagt, ist der der Support der Meinung, das "Skripte die Verbindungen zur Datenbank nicht korrekt beenden".

    VG
    kdf

  14. #14
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.078
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hmm, muss man sich mal die Datenbankgeschichten anschauen im Sourcecode, ob da wirklich kein close aufgerufen wird. Klar, irgendwann wird die Verbindung automatisch geschlossen, aber ich zitiere mal 1&1:

    Zu viele Verbindungen gleichzeitig (18 Verbindungen pro User möglich).Bestehende (nicht geschlossene)Datenbankverbindungen werden nach 60 Sekunden Inaktivität mit einem Timeout beendet. Grundsätzlich empfiehlt es sich jedoch, Scripte so zu schreiben, dass geöffnete Datenbankverbindungen auch wieder geschlossen werden.
    60 Sekunden sind eine Ewigkeit.

  15. #15
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Geclosed wird hier: https://github.com/contao/core/blob/...tabase.php#L97 » https://github.com/contao/core/blob/...Mysqli.php#L62


    Für den Fall dass tatsächlich etwas nicht geclosed wird: @kdf liste mal alle Ordner auf, die sich im Ordner /system/modules befinden. Oder anders gefragt: wird irgendwo eine Datenbankverbindung ohne die \Database Klasse aufgebaut?

  16. #16
    Contao-Nutzer
    Registriert seit
    07.01.2012.
    Beiträge
    96

    Standard

    Hallo tab und Spooky,

    danke für Eure hilfreichen Überlegungen.
    Hier mal die Liste:

    Anhang 17614

    Hier mal einen Blick in die Erweiterungsverwaltung (composer habe ich nicht), falls das hilft:

    Erweiterungsverwaltung.png

    Über die Datenbank-Klassen habe ich zwar das gefunden:

    http://de.contaowiki.org/Datenbank_Klasse_verwenden

    aber Auskunft kann ich da nicht geben.
    Aber wenn es hilft, kann ich ja mal die DB schicken.

    VG
    kdf

  17. #17
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Der Anhang funktioniert nicht. Poste das besser als einfache Aufzählung direkt hier.

  18. #18
    Contao-Nutzer
    Registriert seit
    07.01.2012.
    Beiträge
    96

    Standard

    hier die modules:

    calendar, comments, core, devtools, dlh_geocode, dlh_googlemaps, easyFavicon, easyupdate3, faq, listing, news, newsletter, redirect4ward-master, repository, rocksolid-antispam, rocksolid-columns, rocksolid-custom-elements, rocksolid-frontend-helper, rocksolid-icon-picker, rocksolid-slider, rocksolid-theme-assistant, tivoka, zCearchPro

    VG
    kdf

  19. #19
    Contao-Nutzer
    Registriert seit
    07.01.2012.
    Beiträge
    96

    Standard

    Hallo

    und nochmals Dank allen, die mich bei der Lösung unterstützt haben.

    Der Providerwechsel von alfahsoting zu one.com hat nun das Problem gelöst.

    VG

    kdf

  20. #20
    Contao-Nutzer
    Registriert seit
    05.04.2011.
    Beiträge
    162

    Standard

    Hallo zusammen,
    hier muss ich einmal einhaken.
    Ich habe das gleiche Problem, wie oben beschrieben.
    Eine bisher funktionierende Domain bei Mittwald funktioniert nicht mehr und bringt folgende Fehlermeldung in der error.log.

    Nach euren Erklärungen müsste ich ein größeres Paket buchen. Habe ich das richtig verstanden?
    Ich stehe gerade etwas auf dem Schlauch. Gibt es da keine andere Lösung?

    Hat jemand einen Ansatz für mich?
    Ich bin für jede Hilfe dankbar.

    Liebe Grüße ele

    Code:
    PHP Warning: mysql_connect(): Access denied for user '' system/modules/core/library/Contao/Database/Mysql.php on line 47
    #0 [internal function]: __error(2, 'mysql_connect()...', '/html/contao/co...', 47, Array)
    #1 /html/contao/contao-3.5.9/system/modules/core/library/Contao/Database/Mysql.php(47): mysql_connect('')
    #2 /html/contao/contao-3.5.9/system/modules/core/library/Contao/Database.php(81): Contao\Database\Mysql->connect()
    #3 /html/contao/contao-3.5.9/system/modules/core/library/Contao/Database.php(165): Contao\Database->__construct(Array)
    #4 [internal function]: Contao\Database::getInstance()
    #5 /html/contao/contao-3.5.9/system/modules/core/library/Contao/System.php(140): call_user_func(Array)
    #6 /html/contao/contao-3.5.9/system/modules/core/library/Contao/User.php(158): Contao\System->import('Database')
    #7 /html/contao/contao-3.5.9/system/modules/core/classes/FrontendUser.php(62): Contao\User->__construct()
    #8 /html/contao/contao-3.5.9/system/modules/core/library/Contao/User.php(220): Contao\FrontendUser->__construct()
    #9 [internal function]: Contao\User::getInstance()
    #10 /html/contao/contao-3.5.9/system/modules/core/library/Contao/System.php(140): call_user_func(Array)
    #11 /html/contao/contao-3.5.9/system/modules/core/controllers/FrontendIndex.php(31): Contao\System->import('FrontendUser', 'User')
    #12 /html/contao/contao-3.5.9/index.php(19): Contao\FrontendIndex->__construct()
    #13 {main}

  21. #21
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Oder Hoster wechseln.

    // dein Problem hat nichts mit dem Thread zu tun, deine Datenbank Verbindungsdaten stimmen einfach nicht.
    Geändert von Spooky (11.11.2016 um 15:56 Uhr)

  22. #22
    Contao-Nutzer
    Registriert seit
    05.04.2011.
    Beiträge
    162

    Standard

    Ich fass es nicht, es hat sich aufgeklärt.

    Meine Kundin hat beim Passwort ändern gleich das Datenbankpasswort mit geändert.
    Danke und schönes Wochenende

  23. #23
    Contao-Nutzer Avatar von NetUser
    Registriert seit
    10.11.2016.
    Beiträge
    4

    Standard

    Naja, dann verstehe ich gar nix, voraus das Problem besteht?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •