Springe direkt: zur Navigationzum Inhaltzur Sidebar

Archive für 05 2008

Symfony Sessions in MySql mit Doctrine

06.05.2008

Da wir bei six groups jetzt auf mehre Applikationssever umstellen, müssen wir unsere Sessions in Zukuft in der Datenbank speichern.
Wie das zusamen mit Doctrine funktioniert steht beim Lampjunkie sehr gut beschrieben. Weiterhin haben wir folgendes gelernt:

  1.  Die Session Lifetime muss größer als 0 sein (wir hatten zuvor den Hack fürs Verhindern von Session Timeouts verwendet und erstmal ging daher nicht viel)
  2. In der php.ini müssen bestimmte Werte geändert werden, damit alte Sessions automatisch aus der DB entfernt werden:
    session.gc_probability = 1
    session.gc_divisor     = 100
    session.gc_maxlifetime = Wert in settings.yml
  3. Update: Sehr wichtig ist außerdem, dass man die session_id Spalte mit einem Index versieht, damit das Updaten der Sessions in der DB nicht ewig dauert. Sonst bekommt man schnell Probleme. Bei uns war z.B. bei ca. 80.000 Sessions in der DB Schluss und die kommen relativ schnell zusammen wenn man den session timeout auf einen Tag stellt, denn Crwaler erzeugen ebenfalls Einträge in der Tabelle.  Die Update Queries brauchen dann sehr lange – in unserm Fall bis zu 15 Sekunden! Also sollte die Tabelle session so modifiziert werden:
    ALTER  TABLE  `sessions`  ADD  INDEX (  `sess_id`  );



			

You are currently browsing the t8d blog weblog archives for May, 2008.

Creative Commons License
This work is licensed under a
Creative Commons Attribution-Share Alike 2.5 License.
t8d blogged mit WordPress