4D v16Datenbankmethode On Server Open Connection |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16
Datenbankmethode On Server Open Connection
Datenbankmethode On Server Open Connection
Die Datenbankmethode On Server Open Connection wird einmal auf dem Server-Rechner aufgerufen, wenn sich ein remote 4D anmeldet. Diese Datenbankmethode wird ausschließlich in der 4D Server Umgebung aufgerufen. Die Datenbankmethode On Server Open Connection wird immer aufgerufen, wenn:
Bei den Aktionen mit remote 4D starten verschiedene Prozesse — Einer auf dem Client-Rechner und ein bzw. bei Bedarf zwei weitere auf dem Server-Rechner. Auf dem Client-Rechner führt der Prozess Code aus und sendet Anfragen an 4D Server. Auf dem Server-Rechner verwaltet der 4D Client-Prozess (präemptiver Prozess) die Datenbankumgebung für den Client-Prozess (z.B. aktuelle Auswahl und Datensatz sperren für Benutzerprozesse) und beantwortet Anfragen, die vom Prozess auf dem Client-Rechner gesendet wurden. Der 4D Client Datenbankprozess (kooperativer Prozess) ist für die Überwachung des entsprechenden 4D Client Prozesses zuständig. (*) Ab 4D v13 werden die Server Prozesse (ein präemptiver Prozess für den Zugriff auf die Datenbank-Engine und ein kooperativer Prozess für den Zugriff auf die Programmiersprache) aus Optimierungsgründen nur erstellt, wenn sie beim Ausführen des Code auf Client-Seite notwendig sind. Hier ein Beispiel für eine 4D Code Sequenz, die in einem neuen Client Prozess läuft: // globaler Prozess beginnt ohne einen neuen Prozess auf dem Server, wie ein lokaler Prozess. Wichtig: Web-Verbindungen und SQL-Verbindungen lösen nicht die Datenbankmethode On Server Open Connection aus. Meldet sich ein Web Browser an 4D Server an, startet die Datenbankmethode On Web Authentication - sofern vorhanden, und/oder die Datenbankmethode On Web Connection. Empfängt 4D Server eine SQL Anfrage, wird die Datenbankmethode On SQL Authentication - sofern vorhanden, aufgerufen. Wichtig: Startet eine Serverprozedur, wird NICHT die Datenbankmethode On Server Open Connection ausgelöst. Serverprozeduren sind Server- und keine Client-Prozesse. Sie führen Code auf dem Server-Rechner aus, beantworten jedoch keine Anfragen von remote 4D oder anderen Clients an 4D Server. Die Datenbankmethode On Server Open Connection wird auf dem 4D Server-Rechner innerhalb des 4D Client-Prozesses ausgeführt, der die Anweisung gibt, die Methode aufzurufen. Beispiel: Meldet sich ein remote 4D an eine interpretierte Datenbank auf 4D Server an, starten standardmäßig die Prozesse Benutzer, Design und Registrierung für diesen Client. Die Datenbankmethode On Server Open Connection wird also dreimal ausgeführt — einmal innerhalb des Anwendungsprozesses, ein zweites Mal innerhalb des Client Registrierungsprozesses und ein drittes Mal innerhalb des Prozesses Design. Sind diese Prozesse jeweils der sechste, siebte und achte gestartete Prozess auf dem Server-Rechner und rufen Sie Current process innerhalb der Datenbankmethode On Server Open Connection auf, gibt die Funktion Current process jeweils 6, 7 und 8 zurück. Beachten Sie, dass die Datenbankmethode On Server Open Connection auf dem Server-Rechner ausgeführt wird. Sie läuft im 4D Client Prozess ab, der auf dem Server läuft, unabhängig vom Prozess auf der Client-Seite. Außerdem ist der 4D Client Prozess in dem Moment, wo die Methode ausgelöst wird, noch nicht benannt. (Der Befehl PROCESS PROPERTIES gibt zu diesem Zeitpunkt nicht den Namen des 4D Client Prozesses zurück). Die Datenbankmethode On Server Open Connection hat keinen Zugriff auf die Tabelle Prozessvariablen des Prozesses auf der Client-Seite, da diese Tabelle auf dem Client-Rechner und nicht auf dem Server-Rechner liegt. Greift die Datenbankmethode On Server Open Connection auf eine Prozessvariable zu, läuft sie in einer eigenen und dynamisch erstellten Tabelle Prozessvariablen für den 4D Client Prozess ab. 4D Server übergibt der Datenbankmethode On Server Open Connection drei Parameter vom Typ Lange Ganzzahl und erwartet ein Ergebnis vom Typ Lange Ganzzahl. Die Methode muss deshalb ausdrücklich mit drei Parametern vom Typ Lange Ganzzahl und mit dem Funktionsergebnis vom Typ Lange Ganzzahl deklariert werden: C_LONGINT($0;$1;$2;$3) Geben Sie keinen Wert in $0 zurück, d.h. die Variable ist undefiniert oder gegen Null initialisiert, nimmt 4D Server an, dass die Datenbankmethode die Verbindung akzeptiert. Akzeptieren Sie die Verbindung nicht, geben Sie in $0 einen Wert zurück, der nicht Null ist. Die drei Parameter für die Datenbankmethode geben folgende Informationen zurück:
Diese ID Nummern sind nicht direkt als Informationsquellen einsetzbar, z.B. um sie in einem 4D Befehl als Parameter zu übergeben. Sie ermöglichen jedoch, einen 4D Client Prozess zwischen der Datenbankmethode On Server Open Connection und der Datenbankmethode On Server Close Connection eindeutig zu identifizieren. Die Kombination dieser Werte ist zu jedem Moment einer Server Sitzung einmalig. Ist diese Information in einer Interprozess-Array bzw. Tabelle gespeichert, können beide Datenbankmethoden Informationen austauschen. Im Beispiel am Ende dieses Abschnitts verwenden die beiden Datenbankmethoden diese Information, um Datum und Uhrzeit für Beginn und Ende einer Verbindung zum gleichen Datensatz einer Tabelle zu speichern. Dieses Beispiel zeigt, wie mit der Datenbankmethode On Server Open Connection und der Datenbankmethode On Server Close Connection in der Datenbank ein Logbuch der Verbindung verwaltet wird. Die Tabelle [Server Log] wird zum Auffinden der Verbindungsprozesse verwendet. Die hier gespeicherte Information wird von der Datenbankmethode On Server Open Connection und der Datenbankmethode On Server Close Connection wie folgt verwaltet: ` Datenbankmethode On Server Open Connection Nachfolgend sehen Sie einige Einträge in [Server_Log] mit mehreren remote Anbindungen: Im folgenden Beispiel kann zwischen 2 und 4 Uhr a.m. keine neue Verbindung hergestellt werden: ` Datenbankmethode On Server Open Connection
Siehe auch
|
EIGENSCHAFTEN
Produkt: 4D
GESCHICHTE
Geändert: 4D v13 ARTIKELVERWENDUNG
4D Server Handbuch ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||