Tom: Wie groß darf die Session-Variable sein?

Beitrag lesen

Hello,

Selten gibts Probleme, können die damit zusammenhängen, daß der Anwender 2 Browserfenster offen hat?

Das kann durchaus daran liegen. Ich knabber da auch immer noch an einer vernünftigen Vorgangsverwaltung, die dann natürlich als Modul oder Klasse eingebunden, alles automatisch regeln soll.

Mach Dir mal ein Zeit-Zustands-Diagramm von den Daten und markiere die Formularevents darin (Laden und Absenden). Dann wird es eigentlich ziemlich klar, dass man nicht nur eine Abgrenzung der Clients gegeneinander (Session) benötigt, sondern innerhalb der Session auch noch eine Abgrenzung der Vorgänge zueinander (Formular-ID)

Das Problem dabei ist, dass HTTP verbindungslos und zustandslos ist, also das Script (der Server) nicht merkt, wenn jemand seinen Vorgang einfach abbricht. Sonst könnte man einfach unterbinden, dass eine Doublette eines Vorganges angelegt wird, indem man einfach auf einen offenen Vorgang in der Session prüft. So wird man den User nur warnen können, dass er noch einen offenen Vorgang dieser Klasse hat und ihm ggf. ein Rollback des halben und eine Neueröffnung anbieten.

Ich denke, man kann das beliebig kompliziert gestalten. Ich suche aber noch nach einer einfachen Lösung.

Na, und wenn dann die Session eigentlich der einzige Ort ist, wo man diese Zustände vermerken kann, dann wird der Platz bald knapp. Auslagern der Daten ist auch nicht unbedingt sinnvoll, da sie für die Bearbeitung wieder in den RAM geholt werden müssen.

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen