Skip to content

Sitzungsverwaltung

yallie edited this page May 21, 2018 · 1 revision

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.