Seite 1 von 1

Session läuft voll

Verfasst: 17.06.2006 08:59
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!

Verfasst: 17.06.2006 09:59
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

Verfasst: 17.06.2006 11:08
von cyberdyne
Super! Dank Dir! :grin:

Verfasst: 17.06.2006 14:39
von FCM
Gehts jetzt?

Verfasst: 17.06.2006 16:11
von cyberdyne
Na das wird sich ja erst noch rausstellen. Es ging ja auch vorher immer ein paar Tage, Wochen. Jetzt heisst es abwarten.

Verfasst: 19.06.2006 06:30
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!

Verfasst: 26.06.2006 19:24
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?

Verfasst: 07.11.2006 07:36
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 ?

Verfasst: 15.11.2006 08:34
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