by Enrico4983 » Wed Nov 12, 2003 8:50 pm
Wir haben eine recht große Applikation. Diese schmiert jedoch aus unerklärlichen Gründen hier und da ab... dann ist es ärgerlich wenn alle Daten weg sind. Nach jeder Seite gleich alles in die DB zu schreiben geht auch nicht, also wäre dann alles weg. Da können gut mal 60 Minuten Arbeit umsonst gewesen sein. Also muss eine Lösung her die Daten irgendwie zwischenzuspeichern --> Cookie! Es muss also alles weggeschrieben werden um die Applikation an der Stelle fortzusetzen an der sie abgebrochen ist --> alle Attribute der Applikationsklasse wegschreiben. Da diese sich ja jederzeit ändern können usw. sollte das ganze so dynamisch sein, dass an der Methode nichts mehr angefasst werden muss. Das Problem dabei stellen vor allem Tabellenattribute dar, da diese oft eine non-characterlike-structure bzw. eine deep-structure enthalten und somit nicht einfach in ein Characterfeld geschreiben werden können! Also werden diese Feld für Feld zerpflückt, entsprechend konvertiert falls nötig und in das Feld des Cookies geschrieben. Im Cookie selbst steht jetzt EINE Tabelle - mehr gehen ja ohnehin nicht - die quasi den Zustand der Applikation enthält! Diese Tablle enthält jeweils Attributname, einen Index und den Inhalt des Attributs bzw. eben einer Tabellenzeile!
Im Endeffekt entsteht eine Tabelle mit ca. 3000-4000 Einträgen die jeweils 1096 Zeichen enthalten Damit diese auch wieder ausgelesen werden, wird zu Beginn ein Cookie auf den Client geschrieben, welches eine eindeutige ID enthält und über das die Verbindung zum Server-Cookie hergestellt wird. Läuft die Applikation ohne Probleme durch werden die Cookies wieder gelöscht. Bricht sie ab, kann über das Client-Cookie die Applikation wieder an der STelle aufgenommen werden, an der sie abgebrochen ist!
Ich hoffe Du hast es jetzt verstanden um was es geht. Ich mache da nichts falsch, die Applikationsklasse hat weit über 100 Attribute, von denen gut und gerne 50 Tabellen sind. Wenn Du ne bessere Lösung hast, kannst Du sie mir gerne sagen. Bin ich dankbar dafür... Die Methode sollte halt auch noch laufen wenn es mal 200 Attribute sind! Außerdem scheinst Du Server mit Client zu verwechseln... Auf dem Server werden die Cookies ja auch nur irgendwo in ner Datenbank abgelegt und da hab ich soviel Platz wie ich will. Wenn wir nur 20 Cookies ablegen könnten, dann wäre unser Server schon lang geplatzt! Und mit 4KB würdest auch nicht weit kommen. Diese Cookies werden auch eingesetzt um Daten von Seite zu Seite weiterzugeben... lass da mal ne größere Tabelle drinstehen, dann bist schnell über 4KB!
Und bevor Du nächstes Mal hier rumpampst informier Dich richtig und les vor allem die Beiträge die schon dastehen, da steht nämlich schon dass ich EINE Tabelle wegschreibe! Aber nix für ungut!
So jetzt zudem was ich wissen sollte. Wenn eben dieses Riesen-Cookie gespeichert wird, hab ich rund 70 Einträge in der SSCOOKIE die sich ALLE auf ein und dasselbe Cookie beziehen! Ich wollte wissen welche Datenmenge je Eintrag möglich ist, denn die Einträge gehören letztendlich alle zusammen. Kann man das womöglich ändern, dass pro Eintrag mehr zu speichern geht?
Gruß
Troopy