Social Software powered by Instant Communities
Springe direkt: zur Navigationzum Inhaltzur Sidebar
May06

Symfony Sessions in MySql mit Doctrine

gepostet von Andreas Stephan
Tags: server, php, symfony

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`  );



								
			

Keine Kommentare

Kommentare zu diesem Beitrag als RSS 2.0 feed.

Kommentar abgeben

Folgendes HTML ist erlaubt: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

* Pflichtfelder

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