SOA-Service (Socket) – Benutzerdaten über mehrere Anfragen verwenden

Wird zum SOA-Service der Betriebsart Socket auf dem eingestellten Port eine Verbindung aufgebaut, bleiben die ermittelten Daten maximal bis zum Verlassen der Prozedur nach der Abarbeitung der Anfrage erhalten. In diesem Artikel erläuterte ich, wie Daten über mehrere Anfragen hinweg bereitgehalten werden können.

Connection sharing

Die Datenbankverbindung der Anfrage kann erhalten bleiben, wenn in der Konfigurationsdatei des SOA-Tasks der Eintrag c16_connection_shared = Y gesetzt ist. Dies ist im produktiven Einsatz sinnvoll um die Anzahl der Verbindungen zu verringern und die Verarbeitungsgeschwindigkeit zu erhöhen. Die höhere Geschwindigkeit resultiert daraus, dass sich nicht für jede Anfrage ein neuer Benutzer in der Datenbank anmelden muss, sondern auf bestehende Benutzer von vorherigen Anfragen (auch anderer Benutzer) zugegriffen werden kann. Die Benutzer-ID wird in den Pool der verfügbaren IDs gelegt. In der Entwicklungs- und Testphase sollte der Eintrag auf N gesetzt werden, da mit dem Abmelden des Benutzers auch der Inhalt des Prozedurcaches geleert wird.

Vergabe der Benutzer-IDs im SOA-Service bei aktiviertem connection sharing
Zu beachten!

Datensatzsperren werden pro Benutzer-ID abgelegt. Ist “connection sharing” aktiv, ist der gesperrte Datensatz bei der nächsten Anfrage unter Umständen einem anderen Client zugeordnet. Ist hingegen “connection sharing” ausgeschaltet, wird der Datensatz beim Verlassen der Prozedur entsperrt. Dies ist in beiden Fällen nicht das gewünschte Ziel.

Bei Selektionen muss für die Mehrbenutzerfähigkeit eine Eindeutigkeit des Selektionsnamens sichergestellt werden. Hier bietet sich beim Windows-Client die Benutzer-ID an. Da hierbei jedoch für den SOA-Service das gleiche Problem wie bei den Datensatzsperren besteht, sollte hier stattdessen die Session-ID als Basis verwendet werden.

Um Probleme in diesen Bereichen feststellen zu können, sollten Tests mit mehreren Benutzern gleichzeitig erfolgen. Dabei sollte der Eintrag c16_connection_shared auch auf den Wert gesetzt werden, den er im produktiven Einsatz haben wird.

Sitzungen

Um die Daten eines Benutzers nun über mehrere Anfragen beizubehalten muss auf so genannte Sitzungen zugegriffen werden. Eine Sitzung wird mit dem Befehl SvcSessionControl(_SvcSessionCreate) erzeugt. Der Befehl gibt die Session-ID zurück. Sie ist auch im Task-Objekt in der Eigenschaft spSvcSessionID enthalten. Die erzeugte Session muss nun bei allen Links in der URI angegeben, oder als Cookie gesetzt werden. Am Ende der laufenden Prozedur werden die vorhandenen globalen Datenbereiche und Deskriptoren unter der Session-ID automatisch gespeichert. Hier ist zu beachten, dass die Deskriptoren von Datensatzpuffern und Oberflächenobjekten gelöscht und nicht gesichert werden.

Mit SvcSessionControl(_SvcSessionLoad, tSessionID) wird die Session wieder aktiviert. Anschließend kann auf die gespeicherten Daten zugegriffen werden. Auch hier werden nach dem Ende der Prozedur die aktuellen Daten wieder gespeichert.

Der Befehl SvcSessionControl(_SvcSessionDelete) löscht die aktive Session der Prozedur. Diese muss zuvor in der gleichen Anfrage mit dem Parameter _SvcSessionCreate angelegt, oder mit _SvcSessionLoad geladen worden sein. Anschließend kann eine neue Sitzung angelegt oder geladen werden.

Pro Prozedur kann nur eine Session zugeordnet werden. Ein weiterer Aufruf von den Parametern _SvcSessionCreate und _SvcSessionLoad führt zu dem Fehler _ErrSvcSessionState.

Beispiele

In der CodeLibrary wird die Verwendung der Sitzungen in den Beispielen “HTTP” und “MobileApp” gezeigt.

Klicken Sie hier, um die Nutzungsbedingungen für unseren Blog zu lesen.

2 Antworten

  1. @Th.Eichele
    In der Konfigurationsdatei des SOA-Tasks kann mit dem Eintrag session_timeout_max definiert werden, nach welcher Zeitspanne nicht mehr verwendete Sessions durch den Task automatisch gelöscht werden. Der Standardwert beträgt 20 Minuten.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Leave the field below empty!

Wünsche, Fragen oder Feedback sind willkommen:

Nutzungsbedingungen der Kommentarfunktion im Blog

1. Allgemeines

Vectorsoft AG („Anbieter“) stellt für Internetnutzer („Nutzer“) auf der Website
vectorsoft.de einen öffentlichen Blog bereit. Der öffentliche Blog dient dem
Informations- und Gedankenaustausch. Die Nutzer, welche sich mit Beiträgen und
Kommentaren beteiligen, verpflichten sich dazu, die Blog-Nutzungsbedingungen
einzuhalten und tragen die Verantwortung für die Richtigkeit und Angemessenheit
sowie Freiheit von Rechtsverletzungen ihrer Beiträge. Mit Nutzung der
Kommentarfunktion in unserem Blog akzeptieren Sie diese Nutzungsbedingungen.

2. Netiquette

Wir bitten Sie von persönlichen Angriffen und Provokationen aufgrund anderer
Meinungen abzusehen. Bitte argumentieren Sie sachlich und bewegen Sie sich auf
der Basis einer konstruktiven Diskussionskultur. Ihr Kommentar sollte stets im
Zusammenhang mit dem jeweiligen Thema sein, um Ausschweifungen in andere
Themenbereiche zu vermeiden. Das mehrmalige Posten desselben Kommentars
oder mehrerer ähnlicher Kommentare ist nicht erlaubt.

3. Verbot rechtswidriger Inhalte

Mit Absenden Ihres Kommentars bestätigen Sie, dass Sie keine Urheberrechte oder andere Rechte Dritter verletzen. Volksverhetzende, rassistische Äußerungen, Anleitungen zu Straftaten und deren Verherrlichung, Gewaltdarstellungen, pornografische Inhalte und Äußerungen, die Persönlichkeitsrechte verletzen sind untersagt.

4. Keine Werbung

Die Nutzung der Kommentarfunktion ist für kommerzielle oder parteipolitische
Zwecke nicht erlaubt. Werbliche Beiträge aller Art werden von uns umgehend
gelöscht.

5. Angaben zum Namen

Bei der Eingabe Ihres Namens achten Sie auf die zuvor genannten Grundsätze.

6. Quellenangaben

Bitte geben Sie bei der beabsichtigten Veröffentlichung von Zitaten oder Beiträgen
Dritter die jeweiligen Quellen an und erläutern dessen Bezug zum Blogbeitrag.

7. Verstoß gegen die Nutzungsbedingungen

Beiträge, die gegen diese Richtlinie verstoßen werden umgehend gelöscht. Sollten
Sie selbst Verstöße bemerken, so senden Sie uns bitte den Link des betreffenden
Kommentars per E-Mail an . Wir weisen ausdrücklich daraufhin, dass wir einzelne Nutzer bei wiederholten oder schweren Verstößen gegen diese
Nutzungsbedingungen ausschließen werden.

Stand: Sept. 2024

Deine Trial Version - jetzt anfordern!

Teste yeet - unverbindlich und kostenfrei

IHRE EVALUIERUNGSLIZENZ - JETZT ANFORDERN!

TESTEN SIE DIE CONZEPT 16 VOLLVERSION - UNVERBINDLICH und KOSTENFREI

Melden Sie sich bei unserem Newsletter an

Anrede*
     
Zustimmung zur Datenverarbeitung gem. DSGVO*



WordPress Cookie-Hinweis von Real Cookie Banner