Session läuft voll

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
cyberdyne
Mitglied
Beiträge: 116
Registriert: 12.02.2006 12:08
Kontaktdaten:

Session läuft voll

Beitrag von cyberdyne »

Hallo,

hab schon öffters folgendes Problem gehabt:
Wenn man das Forum besuchen will kommt folgende Meldung
phpBB : Critical Error

Error creating new session

DEBUG MODE

SQL Error : 1114 The table 'MonsterForumII_phpBB2_phpbb_sessions' is full

INSERT INTO MonsterForumII_phpBB2_phpbb_sessions (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin) VALUES ('61711bbd46f848bed35cdb887dcecddc', -1, 1150527412, 1150527412, '54afda4b', 0, 0, 0)

Line : 187
File : sessions.php
Dann leere ich den sessions Eintrag in der Datenbank und dann gehts wieder ne Zeit bis dann wieder der Fehler kommt. Die derzeitige phpBB Version ist 2.0.21 aber das war auch schon bei Versionen davor.
Was kann ich dagegen machen?

Vielen Dank!
Benutzeravatar
derd
Mitglied
Beiträge: 1176
Registriert: 19.04.2004 19:30
Wohnort: Aue
Kontaktdaten:

Beitrag von derd »

Hallo,

das Problem hatte ich auch gehabt. Ich habe es so hinbekommen dank der guten Doku :P

Ich habe dann dies gemacht:
Tabelle automatisch leeren

Dieses Script sollte als erstes probiert werden, da es sogut wie immer funktioniert. Der Dank geht an den Script-Autor Ashe und morpheus2matrix.
Dazu muss die Datei includes/sessions.php geöffnet werden und folgende Codes bearbeitet werden (Zeile 152).

Code: Alles auswählen

message_die(CRITICAL_ERROR, 'Error creating new session', '', __LINE__, __FILE__, $sql);


Dieser Code muss mit folgendem ersetzt werden.

Code: Alles auswählen

$error = TRUE; 
if (SQL_LAYER == "mysql" || SQL_LAYER == "mysql4") 
{ 
    $sql_error = $db->sql_error($result); 
    if ($sql_error["code"] == 1114) 
    { 
        $result = $db->sql_query('SHOW TABLE STATUS LIKE "'.SESSIONS_TABLE.'"'); 
        $row = $db->sql_fetchrow($result); 
        if ($row["Type"] == "HEAP" || $row["Engine"] == "MEMORY") 
        { 
            if ($row["Rows"] > 2500) 
            { 
                $delete_order = (SQL_LAYER=="mysql4") ? " ORDER BY session_time ASC" : ""; 
                $db->sql_query("DELETE QUICK FROM ".SESSIONS_TABLE."$delete_order LIMIT 50"); 
            } 
            else 
            { 
                $db->sql_query("ALTER TABLE ".SESSIONS_TABLE." MAX_ROWS=".($row["Rows"]+50)); 
            } 
            if ($db->sql_query($sql)) 
            { 
                $error = FALSE; 
            } 
        } 
    } 
} 
if ($error) 
{ 
    message_die(CRITICAL_ERROR, "Error creating new session", "", __LINE__, __FILE__, $sql); 
} 
Dieses Script löscht die ältesten 50 Zeilen (die nicht mehr genutzt werden) der Session Tabelle, wenn dort mehr als 2500 Zeilen existieren. Gibt es weniger als 2500 Zeilen in der Tabelle, werden 50 Zeilen den MAX_ROWS hinzugefügt. Das bedeutet im allgemeinen, dass die Kapazität der Tabelle immer größer und größer wird, bis die maximale Anzahl von 2500 Zeilen erreicht ist. Ab dann wird die Kapazität nicht mehr erhöht, sondern die ältesten und ungenutzten 50 Session-Zeilen gelöscht.
Noch mehr Möglichkeiten und auch diese kann man in der Doku nachlesen
cyberdyne
Mitglied
Beiträge: 116
Registriert: 12.02.2006 12:08
Kontaktdaten:

Beitrag von cyberdyne »

Super! Dank Dir! :grin:
FCM
Mitglied
Beiträge: 1863
Registriert: 03.05.2006 14:47
Kontaktdaten:

Beitrag von FCM »

Gehts jetzt?
cyberdyne
Mitglied
Beiträge: 116
Registriert: 12.02.2006 12:08
Kontaktdaten:

Beitrag von cyberdyne »

Na das wird sich ja erst noch rausstellen. Es ging ja auch vorher immer ein paar Tage, Wochen. Jetzt heisst es abwarten.
cyberdyne
Mitglied
Beiträge: 116
Registriert: 12.02.2006 12:08
Kontaktdaten:

Beitrag von cyberdyne »

Leider funktioniert es nicht wie es soll. Heute morgen sieht der Fehler so aus:
phpBB : Critical Error

Error creating new session

DEBUG MODE

INSERT INTO MonsterForumII_phpBB2_phpbb_sessions (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin) VALUES ('a0a85d22ee3c82b67dc74288a3ee69b0', -1, 1150691358, 1150691358, '54afd5b1', 0, 0, 0)

Line : 215
File : sessions.php
Irgendwelche Ideen?

Danke!
dude
Mitglied
Beiträge: 22
Registriert: 30.12.2004 15:56

Beitrag von dude »

ich habe da jetzt nach einem umzug auch probleme mit und zwar funzt bei o.g. script die zeile

Code: Alles auswählen

if ($row["Type"] == "HEAP" || $row["Engine"] == "MEMORY") 
nicht mehr.
und zwar deshalb, weil ein export der struktur der tabelle

Code: Alles auswählen

[...]
 ENGINE=HEAP DEFAULT CHARSET=latin1 MAX_ROWS=2541;
und nicht wie vorher auf dem alten server

Code: Alles auswählen

TYPE=HEAP MAX_ROWS=2541;
hat jemand evtl. ne idee woran das liegt?
lostmail
Mitglied
Beiträge: 18
Registriert: 01.08.2005 07:45

Beitrag von lostmail »

cyberdyne hat geschrieben:Leider funktioniert es nicht wie es soll. Heute morgen sieht der Fehler so aus:
phpBB : Critical Error

Error creating new session

DEBUG MODE

INSERT INTO MonsterForumII_phpBB2_phpbb_sessions (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin) VALUES ('a0a85d22ee3c82b67dc74288a3ee69b0', -1, 1150691358, 1150691358, '54afd5b1', 0, 0, 0)

Line : 215
File : sessions.php
Irgendwelche Ideen?

Danke!
Stimmt - genau dieses Problem hab ich auch kurze Zeit nachdem ich den "Fix" eingebaut hatte.

Was ist daran faul ?
lostmail
Mitglied
Beiträge: 18
Registriert: 01.08.2005 07:45

Beitrag von lostmail »

:cry: hat denn keiner eine Lösung für das Problem ?
Nach Einbau des "Fix" kommt nach 550 Sessions nach wie vor die Mitteilung

Code: Alles auswählen

phpBB : Critical Error

Error creating new session

DEBUG MODE

INSERT INTO forum_phpbb_sessions (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin) VALUES ('a0a85d22ee3c82b67dc74288a3ee69b0', -1, 1150691358, 1150691358, '54afd5b1', 0, 0, 0)

Line : 215
File : sessions.php
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“