Zyan verfügt über eine integrierte und frei anpassbare Sitzungsverwaltung. Sie Sitzungsverwaltung übernimmt folgende Aufgaben:
  • Bereitstellen der Benutzeridentität über die ganze Aufrufkette
  • Zwischenspeichern von Sitzungsvariablen
Mit Zyan werden zwei fertig implementierte Sitzungsverwaltungen ausgeliefert. Beide befinden sich im Namensraum Zyan.Communication.SessionMgmt.

Klassenname Beschreibung
InProcSessionManager (Standard) Sitzungsdaten werden im Arbeitsspeicher des Server-Computers verwaltet. Diese Art der Sitzungsverwaltung ist sehr performant, verhindert aber die Skalierung über mehrerer Applikationsserver für die selbe Anwendung. Für kleine bis mittelgroße Projekte ist es aber trotzdem meistens die beste Wahl
SqlSessionManager Sitzungsdaten werden in einer zentralen SQL Server-Datenbank verwaltet. Dies ermöglicht die gemeinsame Nutzung der Sitzungsdaten von mehereren Applikationsservern zur selben Zeit. Dafür ist der Zugriff etwas langsamer, da die Sitzungsdaten immer von der Datenbank abgefragt werden müssen.

Sie können die gewünschte Sitzungsverwaltung als Parameter an den Konstruktor der Klasse ZyanHost übergeben. Wenn Sie null übergeben, oder eine Überladung des Konstruktors verwenden, die keinen Parameter zur Übergabe der Sitzungsverwaltung enthält, wird automatisch der InProcSessionManager verwendet.

So verwenden Sie den SqlSessionManager für die Sitzungsverwaltung:

TcpBinaryServerProtocolSetup protocol = new TcpBinaryServerProtocolSetup() { TcpPort = 8080 };

// Verbindungszeichenfolge zum SQL Server
string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;";

// SQL-Sitzungsverwaltung erzeugen; Tabellenname für Sitzungstabelle: "Session", für Variablentabelle: "SessionVar", Schema: "dbo"
SqlSessionManager sessionManager = new SqlSessionManager(connectionString, "dbo", "Session", "SessionVar");

// Host mit SQL-Sitzungsverwaltung erstellen
ZyanHost host = new ZyanHost("ExampleHost", protocol, sessionManager);

Sie können auch eine eigene Sitzungsverwaltung schreiben, wenn Sie die ISessionManager-Schnittstelle implementieren.

Last edited Feb 2, 2011 at 10:48 PM by Rainbird, version 5

Comments

No comments yet.