Ankündigung

Einklappen
Keine Ankündigung bisher.

Garbage Collector

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Garbage Collector

    Hallo zusammen,

    bin noch recht neu hier, und auch auf die Gefahr hin das die Frage schon beantwortet wurde.
    Anhand welcher Kriterien entscheidet der Garbage Collector ob eine Session abgelaufen ist oder nicht.
    Finde im Netz immer nur das der GC die Session-Dateien aufräumt, jedoch keiner nennt das entsprechende Kiterium.


    Danke schonmal im voraus.

  • #2
    Manual lesen.

    session.gc_maxlifetime integer
    session.gc_maxlifetime specifies the number of seconds after which data will be seen as 'garbage' and cleaned up. Garbage collection occurs during session start.
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      http://www.php.net/manual/en/session...gc-maxlifetime, zweites „Note: ...”
      [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

      Kommentar


      • #4
        Mit PHP < 4.2.3 und FAT ist man aber auch ein echter IT-Dinosaurier
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          Darum ging's mir nicht, sondern um den an dieser Stelle implizit drin steckenden Hinweis, dass die „atime“ im Normalfall das Kriterium ist, anhand dessen entschieden wird, ob eine Sessiondatei ihre „Lebensdauer“ überschritten hat und damit vom GC entsorgt werden darf - das wollte der Frager, so wie ich ihn verstanden habe, ja wissen.
          [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

          Kommentar


          • #6
            Manual ist toll, doch da steht nicht drin wie das Kriterium lautet, wonach der Garbage Collector entscheidet ob er die Session-Datei löscht oder nicht. Das Dateidatum, kann es nicht sein da es bei einem weiteren Request nicht verändert wird.

            Meine Session-Dateien beinhalten nur die Session-Variablen die ich per PHP-Script auch deklariert habe.
            Also woher bezieht der Garbage Collector seine Information zu löschen einer Session-Datei ?????

            Kommentar


            • #7
              Doch, es steht da. Zwar zugegebenermaßen nicht ganz leicht zu finden - aber wenn ich dich schon explizit auf die Stelle hinweise, sollte das wohl reichen.
              [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

              Kommentar


              • #8
                Sorry das ich euch bemüht habe, aber ich glaube ich habe die Lösung selbst gefunden. Das Speicherdatum der Session-Datei wird doch geändert. Dies wäre natürlich ein Kriterium.

                Schade nur das man die Garbage Collection nicht selbst auslösen kann. Mich würde noch interessieren ob man die gc_maxlifetime so verbiegen kann das eine Garbage Collection eigentlich nie ausgeführt wird, so das man dies selbst in die Hand nehmen kann.

                Habe meine gc_maxlifetime auf 20000 gesetzt, und dennoch wurden ienzelne Sessions nach ca. 30 min als abgelaufen deklariert.

                Kommentar


                • #9
                  Das Dateidatum, kann es nicht sein da es bei einem weiteren Request nicht verändert wird.
                  Moderne Dateisysteme kennen drei Dateidatumsangaben - ctime, atime, mtime.
                  [COLOR="#F5F5FF"]--[/COLOR]
                  [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                  [COLOR="#F5F5FF"]
                  --[/COLOR]

                  Kommentar


                  • #10
                    Habe meine gc_maxlifetime auf 20000 gesetzt, und dennoch wurden ienzelne Sessions nach ca. 30 min als abgelaufen deklariert.
                    Da wird wohl die Cookielifetime schuld sein? Oder Du hast 2000 statt 20000 gesetzt (30 × 60 = 1800).
                    [COLOR="#F5F5FF"]--[/COLOR]
                    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                    [COLOR="#F5F5FF"]
                    --[/COLOR]

                    Kommentar


                    • #11
                      Zitat von geotos Beitrag anzeigen
                      Sorry das ich euch bemüht habe, aber ich glaube ich habe die Lösung selbst gefunden. Das Speicherdatum der Session-Datei wird doch geändert.
                      „Speicherdatum“ ist zu unspezifisch.

                      Es gibt explizit (u.a.) atime und mtime.
                      a für accessed, m für modified.

                      Letztere zu verwenden, wäre blöd, weil dann eine Session auch abläuft, wenn der Nutzer weiter auf der Seite surft, aber die Sessiondaten nicht verändert werden.

                      Schade nur das man die Garbage Collection nicht selbst auslösen kann.
                      Zu welchem Zweck?

                      Mich würde noch interessieren ob man die gc_maxlifetime so verbiegen kann das eine Garbage Collection eigentlich nie ausgeführt wird, so das man dies selbst in die Hand nehmen kann.
                      Dazu wäre eher die Aufruf-Wahrscheinlichkeit anzupassen - gc_probability und gc_divisor.

                      Und das funktioniert problemlos - ich hab mal als Experiment einen „Counter“ damit realisiert, indem ich genau eine Session-ID für alle Anfragen fest vorgebe - und dieser Counter zählt fröhlich Aufrufe seit drei oder vier Jahren, und das obwohl die Seite selten besucht wird.
                      Habe meine gc_maxlifetime auf 20000 gesetzt, und dennoch wurden ienzelne Sessions nach ca. 30 min als abgelaufen deklariert.
                      Welche möglicherweise einwirkenden Konkurrenzsituationen bzgl. dieses Wertes zu beachten sind, beschreibt das Manual auch explizit.
                      [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                      Kommentar

                      Lädt...
                      X