4D Doc Center : 4D Server Handbuch

4D Doc Center : 4D Server Handbuch
4D Server Handbuch
Einleitung
4D Server in 10 Minuten
4D Server verwenden
4D Server Verwaltungsfenster
Datenbankmethoden
Remote 4D verwenden
4D Programmiersprache
Einleitung
Überblick
4D Server Architektur
Überblick
4D Server ist der multi-user, cross-plattform Daten- und Anwendungsserver für 4D.
Mit 4D Server können Sie multi-user Datenbanken und eigene Anwendungen in einer Client/Server-Architektur erstellen und
einsetzen. Die plattformunabhängige Client/Server Architektur verwaltet nahtlos Anwendungen für remote 4D unter Windows und auf
Macintosh. 4D Server bietet professionell ausgerichtete Entwicklungswerkzeuge, volle Skalierbarkeit, Datensicherheit und
Connectivity Optionen für Unternehmenssysteme.
4D Server liefert eine vollständig integrierte Architektur, wobei Client und Server auf dieselbe 4D Applikation zugreifen. 4D Server
befreit Entwickler von der Notwendigkeit, separate front-end und back-end Applikationen einzurichten. Darüberhinaus ist 4D Server
ein “zero admin” Server. Er lässt sich leicht installieren, einsetzen und verwalten und ist äußerst kosteneffektiv.
4D Server füllt die Lücke zwischen low-end File-sharing basierten Systemen und komplexen SQL-basierten RDBMS. Jede 4D
Server Applikation interagiert mühelos mit vorhandenen Unternehmensdatenbanken wie Oracle, Sybase, oder jedem ODBC
kompatiblem Server. 4D Server erfüllt die Ansprüche von Workgroups in Unternehmen jeglicher Größe.
Integrierte Back-end und Front-end Architektur
Mit 4D Server gibt es keinen Unterschied zwischen front-end und back-end Anwendungen. Client Software und Server Anwendung
sind zwei Seiten desselben Produkts, nämlich 4D. Die 4D Server Anwendung selbst ist in zwei Teile gegliedert – 4D Server und 4D
im remote Modus – diese entsprechen den Elementen der Client/Server Architektur.
4D Server, der Motor der Datenbank, liegt auf dem Server-Rechner. Er speichert und verwaltet die Datenbank auf dem Server und
erlaubt Benutzern, von ihren eigenen Rechnern (Clients) aus in der Datenbank zu arbeiten.
Die 4D Anwendung liegt auf jedem Client-Rechner. Sie kann im lokalen oder im remote Modus verwendet werden. Im lokalen
Modus arbeiten Benutzer mit einer Datenbank oder einer 4D Anwendung, die lokal auf Ihrem Rechner gespeichert ist. Im remote
Modus können Benutzer auf die Datenbank auf dem Server zugreifen und verschiedene Operationen ausführen. Sie können Daten
hinzufügen, Berichte erstellen und das Design der Datenbank verändern. Alles, was mit 4D im lokalen Modus möglich ist, kann
genauso mit 4D Server und 4D im remote Modus ausgeführt werden.
Weder zusätzliche Middleware noch weitere Entwicklungsphasen sind für den Einsatz in einer Client/Server-Umgebung
erforderlich. 4D und 4D Server nutzen dieselben Tools für die Benutzeroberfläche, dieselbe Sprache und dasselbe
Datenmanagement-System.
Jede lokale Anwendung, die für eine Plattform (Windows oder Macintosh) erstellt wurde, kann mühelos auf eine Client/ServerLösung für Arbeitsgruppen skaliert werden. Genauso ist umgekehrt die Abwärtsskalierung einer mit 4D Server generierten
Anwendung auf eine eigenständige Anwendung im lokalen Modus möglich.
Wartungsfreier Daten- und Anwendungs-Server
4D Server profitiert von dem hohen Maß an Benutzerfreundlichkeit in 4D. 4D Server ist ein echtes Plug&Play-System (PNP).
4D Server Verwaltungsfenster
Grafisch übersichtlich zusammengefaßte Informationen: Das Verwaltungsfenster von 4D Server zeigt automatisch alle
wichtigen Informationen an: der für 4D Server reservierte Speicher, der Daten-Cache, Anzahl und Name der angemeldeten
Benutzer, Anzahl und Status der laufenden Prozesse, Überwachung von Backups und Anfragen, sowie der gesamten
Serveraktivität.
Automatische Konfigurierung und Skalierbarkeit: 4D Server ist so konzipiert, dass das Hinzufügen neuer Clients und
neuer Plug-Ins sowie für die Anbindung an andere Systeme ohne Neukonfigurierung oder Neuprogrammierung möglich ist.
Automatische und dynamische Aktualisierung sowie Versionskontrolle von Client-Workstations: Alle angemeldeten
4D Rechner werden automatisch und dynamisch aktualisiert, wenn die Datenbank modifiziert oder ein Plug-In bzw. eine
Komponente hinzugefügt, entfernt oder geändert wird. Haben Sie eine eigene Client/Server Anwendung erstellt, können Sie
auch automatisch neue Versionen der ausführbaren Client-Anwendungen laden, wenn die 4D Server Anwendung aktualisiert
wird.
Automatische asynchrone Verbindungen über das Standardprotokoll TCP/IP: 4D Server und 4D kommunizieren über
das TCP/IP Protokoll transparent miteinander, unabhängig auf welcher Plattform Client und Server laufen. Das TCP/IP
Protokoll ist in alle Betriebssysteme integriert, so dass keine zusätzliche Installation notwendig ist.
Simultane Verwaltung von Sitzung und Status der SQL und HTTP Verbindungen: 4D Server erstellt und verwaltet
automatisch eine aktuelle Arbeitsumgebung für jede Tabelle-/Prozess-/Benutzer-Kombination. Diese sitzungsorientierte
Architektur macht es möglich, dass jeder Prozess Daten für jeden einzelnen Benutzer unabhängig und simultan verwalten
kann. Der SQL Server von 4D Server verwaltet automatisch interne oder externe SQL Anfragen. Der HTTP Server in
4D Server antwortet auf HTTP Anfragen und auf SOAP Anfragen, wenn er aktiviert ist.
Automatische Datensatzsperre: 4D Server ermöglicht das automatische Sperren und Freigeben von Datensätzen,
wodurch Probleme vermieden werden, die häufig durch das Ändern gerade verwendeter Objekte entstehen. Das Sperren von
Datensätzen verhindert ebenfalls Probleme, die beim Sperren von Seiten oder Dateien auftreten können.
In der Benutzeroberfläche integriertes Meldungssystem: Die ursprünglich desktop-orientierte 4D Server Software
umfasst sämtliche Aspekte einer Bedienerführung, vereint mit modernen, integrierten Entwicklungsumgebungen. So kann
4D Server Clients über Wartungsarbeiten am Server informieren, etwa über geplante Unterbrechungen, Backups und vieles
mehr.
Automatisierte Start- und Abmeldemethoden: 4D Server löst automatisch fünf Datenbankmethoden aus:
Datenbankmethode On Server Startup, , , und . Die Datenbankmethode On Server Startup kann automatisch alle
Objekte initialisieren und laden, die während der Sitzung benötigt werden.
Ein unschlagbares Leistungsspektrum
Zusätzlich zu den Leistungsmerkmalen von 4D bietet 4D Server folgende Funktionalitäten:
Datenmanagement im Mehrplatzbetrieb: Mehrere Benutzer können gleichzeitig Operationen in der Datenbank ausführen.
Sie können z.B. in Datensätzen, die in der gleichen oder in verschiedenen Dateien liegen, zur gleichen Zeit Datensätze
hinzufügen, ändern, löschen, sortieren oder ausdrucken. Das integrierte System zum Sperren gerade verwendeter
Datensätze sorgt dafür, dass die Datenintegrität gewahrt bleibt.
Enwicklung im Team: Mehrere Entwickler können gleichzeitig eine Datenbank einrichtenund strukturieren. So können z.B.
mehrere Benutzer zur selben Zeit Dateidefinitionen bearbeiten, Layouts, Skripte und Methoden anlegen und verändern. Das
integrierte System zum Sperren gerade verwendeter Objekte und die Versionskontrolle über ein Check-in/Check-out-System
sorgen für die Integrität Ihrer Datenbank.
Plattformunabhängige Client /Server Architektur: 4D Server steuert die Datenbank für Clients unter Windows und auf
Mac OS gleichermaßen. Dazu gehört die simultane und plattformübergreifende Entwicklung im Team ebenso wie eine
transparente Schnittstelle zu allen eingegebenen bzw. geänderten Daten auf den Arbeitsstationen in einer heterogenen
Hardware Umgebung.
4D Plug-In Architektur für Windows und Mac OS : In der Windows und Mac OS Version von 4D Server können Sie sowohl
Plug-Ins für Windows als auch für Mac OS installieren. So lassen sich plattformunabhängige 4D Plug-Ins schnell und
problemlos zwischen 4D Server und 4D aufteilen, unabhängig von der Plattform der Arbeitsstation.
Integrierter HTTP Server: Wie 4D im lokalen Modus enthalten auch 4D Server und 4D im remote Modus eine HTTP Engine,
mit der Sie 4D Datenbanken im Web publizieren können. Sie müssen dafür weder ein Datenbanksystem, noch eine Web
Site entwickeln, noch eine CGI Schnittstelle zwischen beiden einrichten. Ihre Datenbank ist Ihre Web Site. Sie können auch
jede Arbeitsstation in einen Web Server umwandeln. Weitere Informationen dazu finden Sie im Handbuch
4D Programmiersprache im Kapitel Web Server, Überblick.
Sicherheit der Verbindung via SSL (Secured Socket Layer): Sie können 4D Server Verbindungen verschlüsseln. Die
“klassische” Client/Server Architektur kann das SSL Verschlüsselungssystem verwenden. Weitere Informationen dazu finden
Sie im Abschnitt Client/Server Verbindungen verschlüsseln.
Trigger: Ein Trigger ist eine Methode, die einer Tabelle zugewiesen ist. Demzufolge ist es eine Tabelleneigenschaft. Trigger
rufen Sie nicht selbst auf, sie werden automatisch von der 4D Datenbank Engine ausgelöst, wenn Sie Datensätze in der
Tabelle bearbeiten, d.h. Datensätze hinzufügen, ändern und löschen. Mit 4D Server werden Trigger auf dem Server-Rechner
ausgeführt. Die über Trigger festgelegten Regeln für die Datenbank gelten für alle Arbeitsstationen, egal, ob es sich um 4D
oder um eine über ODBC angemeldete Anwendung handelt. Weitere Informationen dazu finden Sie im Handbuch
4D Programmiersprache im Kapitel Trigger.
Serverprozeduren: Sie können 4D Methoden erstellen, die in einem eigenen Prozess lokal auf dem Server-Rechner laufen.
In der Client/Server Terminologie wurde dafür der Begriff “Serverprozedur” eingeführt. 4D Server dagegen bietet eine
Architektur, die weit über das gängige Konzept von Serverprozeduren hinausgeht. Mit 4D Server ist eine Serverprozedur ein
eigener Server Prozess, mit dem Ihr Code asynchron und unabhängig von allen anderen Prozessen auf dem Server- oder
Client-Rechner läuft. In der herkömmlichen Client/Server Architektur führt eine Serverprozedur eine Anweisung aus und gibt
ein Ergebnis synchron oder asynchron zurück. Mit 4D Server können Sie eine Serverprozedur starten, die während einer
ganzen Client/Server Sitzung läuft und Anfragen von Clients beantwortet. Sie können auch genauso eine Serverprozedur
einrichten, die nicht mit Clients interagiert, sondern Daten mit einem SQL-Server oder einem anderen 4D Server abgleicht.
Die Anzahl gleichzeitig ablaufender Serverprozeduren wird nur durch Hardware und Speicher begrenzt. Eine
4D Serverprozedur läuft in ihrem eigenen Prozess und kann so wie jeder andere Benutzerprozess ein individuelles
Datenbankkontext haben, z.B. aktuelle Auswahlen. Die 4D Programmiersprache bietet außerdem Befehle, mit denen ClientProzesse die Prozessvariablen jeder beliebigen Serverprozedur (einschließlich BLOB Variablen) lesen und schreiben
können. Dadurch ist eine ausgeklügelte und flexible Kommunikation zwischen Clients und Serverprozeduren möglich.
Schließlich können Sie mit Serverprozeduren auch neue und eigene Dienste in 4D Server hinzufügen. Weitere Informationen
dazu finden Sie im Abschnitt Serverprozeduren.
Auf Client ausgeführte Serverprozeduren: Mit 4D Server können Sie von einem Server- oder Client-Rechner aus
Serverprozeduren auf einem oder mehreren anderen Client-Rechnern ausführen. So können Sie die Verteilung des
Arbeitsaufkommens optimieren oder Anwendungen erstellen, welche die Kommunikation zwischen den Clients ermöglicht.
Weitere Informationen dazu finden Sie im Abschnitt Serverprozeduren.
Server Pfad: Sie können den Pfad auf eine Serverdatenbank mit einem Benutzerkennwort sichern. Der Benutzer kann sich
durch Doppelklick auf ein 4DLink Dokument an die Serverdatenbank anmelden. Weitere Informationen dazu finden Sie im
Abschnitt Anmeldung an eine 4D Server Datenbank.
Registrieren als Service: 4D Server lässt sich unter Windows und auf Mac OS als Service starten.
Integriertes Backup System: 4D Server enthält ein komplettes Backup-Modul mit automatischer Restore-Funktion. Damit
können Sie eine Datensicherung im laufenden Betrieb ausführen, ohne die Anwendung zu beenden. Backups lassen sich in
regulären Zeitabständen und ohne Einwirken des Benutzers automatisch oder manuell starten. Sie können auch festlegen,
dass die Datenbank im Störfall automatisch wiederhergestellt bzw. neu gestartet wird.
Backup durch logisches Spiegeln: Bei kritschen Anwendungen, die z.B. 24 Stunden laufen müssen, können Sie ein
Backup durch logisches Spiegeln einrichten. Tritt ein Zwischenfall in der laufenden Datenbank ein, können Sie sofort mit dem
Duplikat der Datenbank weiterarbeiten.
Connectivity Plug-Ins: Mit den 4D Connectivity Plug-In (4D ODBC Pro, etc.) können 4D Server und 4D direkt auf andere
Systeme zugreifen, z.B. ORACLE oder andere Datenbankserver, die auf ODBC basieren. Zwischen diesen Datenbanken
lässt sich Information interaktiv gemeinsam nutzen. Darüberhinaus bietet 4D einen ODBC Treiber für 4D Server, über den ein
beliebiger ODBC Client sich an 4D Server anmelden und damit arbeiten kann.
4D Server Architektur
Die 4D Server-Architektur ist leistungsstark, weil sich Arbeitsstationen und Server die Arbeit teilen.
Der Server speichert und verwaltet die Daten. Die Arbeitsstationen schicken dem Server Anfragen und erhalten von diesem die
Ergebnisse.
Um z.B. nach einer Reihe von Datensätzen zu suchen, sendet die Arbeitsstation eine Suchanfrage an den Server. Der Server führt
bei Empfangen der Anfrage die Suchoperation lokal auf dem Server-Rechner aus und sendet nach Beenden der Suche das
Ergebnis, d.h. die gefundenen Datensätze an die Arbeitsstation zurück.
Die Architektur von 4D Server basiert auf dem Client/Server Modell. Schon seit vielen Jahren hat sich diese Architektur gegenüber
dem alten Gegenspieler, der File Sharing Architektur, durchgesetzt und ist zum effizientesten Modell für Anwendungen im
Mehrplatzbetrieb geworden.
4D Server gleicht den Client/Server-Architekturen, die in der Welt der Minicomputer eingesetzt werden. Es gibt jedoch zwei
signifikante Unterschiede:
Die benutzerfreundliche, grafische Oberfläche auf allen Ebenen der Datenbank
Eine integrierte Architektur, die für gesteigerte Leistung und Geschwindigkeit sorgt.
File Sharing Architektur (nicht bei 4D Server)
Vor Einführung der Client-/Server-Architektur verwendeten Systeme im Mehrplatzbetrieb das File Sharing Modell der NetzwerkArchitektur. In diesem Modell nutzen alle Benutzer denselben Datenbestand, die Daten werden jedoch nicht über eine zentrale
Datenbank-Engine verwaltet. Jede Arbeitsstation muss eine Kopie der Datenbankstruktur und -Engine speichern, während der
Server nur die Software steuert, die zum gemeinsamen Nutzen der Dateien auf dem Netzwerk erforderlich ist.
Im File Sharing Modell führt jede Arbeitsstation alle Änderungen an den Daten lokal aus. Das führt zu massivem Datenverkehr im
Netz, da jede Anfrage aus unzähligen Netzwerkübertragungen besteht. Folgendes Beispiel zeigt den Datenverkehr im Netz, wenn
ein Benutzer in der Datenbank nach allen Personen mit dem Nachnamen Müller sucht:
Ein weiterer Nachteil ist, dass die Daten nicht in einem gemeinsamen Cache-Speicher abgelegt werden können, denn dann
könnten vom gleichen Datensatz verschiedene Versionen existieren, was zu Dateninkonsistenz führen würde. Da jede Station einen
eigenen Cache-Speicher verwendet, wissen die Stationen nicht, welcher Teil des Datensatzes sich gerade bei einer Station
befindet. Der Server bleibt passiv, d.h., er speichert die Daten, anstatt sie aktiv zu verwalten. Er unterstützt die Benutzer nicht. Sie
müssen selbst die Daten heranholen und auf der Station bearbeiten. Von daher herrscht im Netz ein ständiger Datenverkehr.
Heterogene Client/Server Architektur
In der Welt der Minicomputer ist die Client/Server Architektur wegen ihrer Leistungsstärke und Geschwindigkeit für umfangreiche
Datenbanksysteme weit verbreitet. In dieser Architektur ist die Arbeit zwischen dem Server-Rechner und den Clients aufgeteilt, was
die Performance entscheidend verbessert.
Der Server enthält die zentrale Datenbank-Engine, welche die Daten speichert und verwaltet. Die Engine ist die einzige Software,
die auf die Daten zugreift, die auf der Festplatte gespeichert sind. Sendet ein Client eine Anfrage an den Server, sendet der Server
das Ergebnis zurück. Das kann ein spezifischer Datensatz sein, den der Client ändert oder eine sortierte Liste von Datensätzen.
Im allgemeinen werden die meisten Client/Server Architekturen auch heterogene Architekturen genannt, da die Front-end
Anwendungen, die auf den Client-Rechnern laufen und die Datenbank-Engine, die auf dem Server-Rechner läuft, zwei vollkommen
unabhängige Einheiten sind. Sie brauchen daher einen Datenbank-Treiber, der als Übersetzer zwischen Arbeitsstation und Server
dient.
Um beispielsweise nach einem Datensatz zu suchen, sendet der Client eine Anfrage an den Server. Da die Datenbank auf dem
Server liegt, führt der Server den Befehl lokal auf dem Server-Rechner aus und sendet das Ergebnis an den Client-Rechner.
Folgende Abbildung zeigt den Datenverkehr im Netz, wenn ein Benutzer den Server beauftragt, nach allen Personen mit dem
Nachnamen Müller zu suchen und anschließend die Datensätze anzuzeigen:
Dieses Beispiel zeigt zwei entscheidende Unterschiede zwischen File Sharing und dem Client/Server Betrieb:
Die Client/Server Architektur arbeitet mit Cache-Speicher: Da nur die Engine real auf die Daten zugreift, kann der Server
einen Cache-Speicher betreiben, der geänderte Datensätze speichert, bis sie auf die Festplatte geschrieben werden. Die
Daten werden von einer zentralen Stelle gesendet, so dass die Arbeitsstationen immer die aktuellste Version des
Datensatzes empfangen. So ist die Datenintegrität gewährleistet. Darüberhinaus werden Operationen in der Datenbank
durch Verwendung des Cache-Speichers beschleunigt, da der Zugriff nicht über die Festplatte, sondern über den Cache läuft.
In File Sharing Architekturen wird immer auf die Festplatte zugegriffen.
Datenbankoperationen im Hintergrund laufen auf dem Server ab: Die Client/Server Architektur bietet deutlich höhere
Geschwindigkeit, da Datenbankoperationen, wie Erstellen eines Index oder Sortieren von Tabellen, auf dem Server Rechner
mit dessen Rechnergeschwindigkeit ausgeführt werden. In File Sharing Architekturen laufen die gleichen Operationen durch
Netzwerkübertragungen und Grenzen der Arbeitsstation viel langsamer ab.
Zusammenarbeit von Arbeitsstation und Server
Bei herkömmlichen Client/Server-Architekturen besitzt der Server keine Informationen über die Umgebung der Arbeitsstation. Die
Daten vom Server sind Rohdaten, die die Arbeitsstation interpretiert, z.B. mit übergebenen Arrays.
Bei 4D Server arbeiten Server und Arbeitsstation mit derselben Datenstruktur. Die Daten, die beide ans Netz senden, sind bereits
strukturiert. Das heißt, Arbeitsstation und Server können sie direkt lesen.
Die Arbeitsstation ist zuständig für:
Anfragen: Der Client sendet Anfragen an den 4D Server. Sie können Anfragen über die integrierten Such- und
Sortiereditoren erstellen, per Programmierung oder via SQL. 4D bietet Editoren zum Erstellen und Ändern von Methoden und
verwaltet Variablen und Arrays.
Antworten: Der Client empfängt Antworten vom 4D Server und aktualisiert die Daten auf der Arbeitsstation. Fragt der Client
z.B. nach allen Datensätzen mit dem Nachnamen "Müller", erhält er diese Datensätze vom Server und zeigt sie in einem
Formular an.
Der Server ist zuständig für:
Zugriffe: 4D Server verwaltet über Multitasking konkurrierende Zugriffe und alle Prozesse, die von Clients erzeugt werden.
Struktur und Datenobjekte: 4D Server speichert und verwaltet sämtliche Objekte der Datenbank, d.h. Daten (Datensätze,
aktuelle Auswahl) bzw. Strukturobjekte (Tabellen, Datenfelder, Formulare, Methoden und Menüs).
Cache: 4D Server unterhält einen Cache, der Datensätze sowie spezifische Datenobjekte enthält, wie z.B. Auswahlen und
Mengen einzelner Clients.
Low-level Datenbankoperationen: 4D Server führt Datenbankoperationen, wie Such- und Sortierläufe nach indizierten
Datensätzen aus.
Beispiel:
Die Arbeitsstation fragt beim Server ein Formular ab. Ein umfangreiches Formular braucht eine bestimmte Zeit im Netz. Der Server
schickt das Formular an die Arbeitsstation. Dort wird es ohne weitere Arbeit für den Server selbständig bearbeitet. Dadurch
reduziert sich die Serveraktivität erheblich. So ist die Auslastungsrate des Servers für 10 Stationen, die gleichzeitig im Benutzerund Änderungsmodus in 10 verschiedenen Formularen mit jeder Menge Bilder arbeiten, relativ gering.
Die gegenseitige Verständigung zwischen Server und Arbeitsstation ist besonders vorteilhaft beim Anzeigen von Listen und
Verwalten der aktuellen Auswahl.
Der Server schickt mehrere Datensätze als Paket an die Arbeitsstation. Dieses enthält im Gegensatz zu einer herkömmlichen,
heterogenen Client/Server-Architektur keinen Code. Die Arbeitsstation kann selbst die Daten zerlegen. Die Anzeigeschnittstelle
wird automatisch verwaltet. Da die Engine der Arbeitsstation mit dem Server kommunizieren kann, überträgt die Arbeitsstation nur
die tatsächlich benutzten Datenfelder.
Die Arbeitsteilung zwischen Arbeitsstation und Server ist eindeutig festgelegt. Sie erfolgt automatisch durch 4D. Sie benötigen
dafür keine besonderen Kenntnisse. Sie kann vielmehr zu neuen Strategien für Ihre Anwendungen beitragen.
4D Server in 10 Minuten
Die Installation prüfen
Eine Server Datenbank erstellen
Ein remote 4D an Server Datenbank anmelden
Die Datenbankstruktur festlegen
Daten mit 4D Server bearbeiten
Eine eigene Menüleiste hinzufügen
Gleichzeitig mit 4D Server arbeiten
Die Installation prüfen
Dieses Kapitel gibt eine kurze Einführung in folgende Bereiche:
Eine Server Datenbank erstellen
Clients an die erstellte Server Datenbank anmelden
Eine Datenbankstruktur einrichten, inkl. Tabellen, Datenfeldern, Formularen und Methoden
Einen zweiten Benutzer anmelden und gleichzeitig arbeiten
Zur Durchführung dieser Schritte benötigen Sie mindestens zwei Rechner:
Einen Rechner, auf dem 4D Server, 4D und ein Web Browser installiert sind
Einen anderen Rechner, auf dem 4D installiert ist
Bevor Sie zum ersten Mal mit 4D Server und 4D im lokalen Modus arbeiten, sollten Sie Ihre Installation prüfen. Lesen Sie dazu die
nachfolgenden Abschnitte.
Installierte Elemente
Dieser Abschnitt beschreibt den Speicherort der Elemente, die bei der Standardinstallation von 4D und 4D Server auf Ihrer
Festplatte installiert werden:
Windows
Die Elemente werden im Ordner Programme/4D/4D v11 SQL release X installiert und erscheinen im Menü Start:
4D Server: Dieser Ordner enthält die 4D Server Anwendung und die dazugehörigen Dateien und Ordner. Um 4D Server zu
starten, doppelklicken Sie auf das Icon 4D Server.exe.
4D: Dieser Ordner enthält die 4D Anwendung und die dazugehörigen Dateien und Ordner. Um 4D zu starten, doppelklicken
Sie auf das Icon 4D.exe.
Mac OS
Die Elemente werden im Ordner Applications:4D:4D v11 SQL release X installiert und erscheinen in den Anwendungen:
4D Server: 4D Server Software Paket. Um 4D Server zu starten, doppelklicken Sie auf dieses Paket.
4D: 4D Software Paket. Um 4D zu starten, doppelklicken Sie auf dieses Paket.
Für diese spezifische Übung müssen Sie 4D noch auf einem anderen Rechner installieren.
Wie geht es weiter?
Ihre Rechner können nur über das Netzwerk miteinander kommunizieren, wenn das Netzwerkprotokoll TCP/IP konfiguriert ist.
Sind 4D Server und 4D korrekt installiert, gehen Sie zum nächsten Abschnitt Eine Server Datenbank erstellen. Fehlen einige der
oben aufgelisteten Ordner, schlagen Sie dazu im 4D Installationshandbuch nach.
Eine Server Datenbank erstellen
Dieser Abschnitt beschreibt, wie Sie eine Server Datenbank erstellen, auf die 4D im remote Modus über das Netzwerk zugreifen
kann. Bevor Sie zum ersten Mal mit 4D Server und 4D arbeiten, sollten Sie Ihre Installation prüfen. Lesen Sie dazu im Abschnitt Die
Installation prüfen nach.
Hinweis: Dieses Beispiel setzt voraus, dass Sie Ihre 4D Server Lizenz bereits aktiviert haben. Für die Verwendung von 4D im
remote Modus ist keine Lizenz auf dem Client-Rechner erforderlich. Die Lizenzen werden auf dem 4D Server Rechner verwaltet.
Weitere Informationen dazu finden Sie im 4D Installationshandbuch.
Um eine 4D Server Datenbank zu öffnen, bzw. eine vorhandene zu erstellen, starten Sie 4D Server.
1. Doppelklicken Sie auf das Icon für 4D Server.
Starten Sie die Anwendung zum ersten Mal, erscheint auf dem Bildschirm das Dialogfenster zum Aktivieren der Anwendung.
Danach erscheint bei jedem Start ein leeres Fenster. Diese Funktionsweise können Sie in den Einstellungen der Anwendung
konfigurieren.
In diesem Beispiel erstellen wir eine leere Datenbank.
2. Wählen Sie im Menü Datei/Ablage von 4D Server den Befehl Neu>Anwendung....
Auf dem Bildschirm erscheint ein Standard-Sichern Dialog, in dem Sie Name und Speicherort der neuen Datenbank angeben.
3. Legen Sie den Speicherort fest und geben dann den Namen der Datenbank ein. Geben Sie "Angestellte" ein und klicken
auf die Schaltfläche Speichern.
4D Server erstellt automatisch die erforderlichen Dateien und Ordner für das Operieren der Datenbank. Dann erscheint das Server
Verwaltungsfenster:
Das Verwaltungsfenster hat mehrere Seiten, die Sie über die Registerkarten am oberen Rand öffnen können. Die Seite Monitor
zeigt dynamische Angaben zur verwendeten Datenbank, sowie Informationen zum System und der 4D Server Anwendung.
Die Seiten Anwender und Prozesse zeigen jeweils die Anzahl der an die Datenbank angemeldeten Benutzer und die aktuell
laufenden Prozesse an. In diesem Stadium sind keine Clients an die Datenbank angemeldet, die Anzahl der Anwender zeigt Null
an. Standardmäßig werden zwölf Prozesse angezeigt. Diese Prozessse werden von der Datenbank-Engine (Kernel) und den in
4D Server integrierten Servern angelegt (Anwendungsserver, HTTP Server, SQL Server).
Wie geht es weiter?
Die Datenbank steht nun über das Netzwerk für die Anbindung von remote Anbindungen unter Windows und/oder auf Macintosh zur
Verfügung. Sie ist jedoch noch nicht für HTTP Anbindungen verfügbar, da diese nicht standardmäßig zugelassen sind.
Weitere Informationen dazu finden Sie im nächsten Abschnitt . Sie lernen zuerst, wie Sie 4D im remote Modus anmelden, wie Sie
die Struktur der Datenbank definieren und einige Datensätze in der Datenbank anlegen.
Ein remote 4D an Server Datenbank anmelden
Dieser Abschnitt beschreibt folgendes:
Ein remote 4D an die erstellte Server Datenbank anmelden.
Eine Datenbankstruktur anlegen. Sie lernen auch, Tabellen und Datenfelder in der Datenbank zu erstellen, neue Datensätze
einzugeben und bestehende Datensätze zu ändern.
Einen zweiten Anwender anmelden.
Gleichzeitig mit zwei remote Clients arbeiten.
Anmelden an die Datenbank
Obwohl Sie die Datenbank mit 4D Server erstellt haben (Siehe Abschnitt Eine Server Datenbank erstellen), werden alle
Änderungen in der Datenbankstruktur sowie der aktuelle Datenbestand auf der Arbeitsstation angezeigt. Dieser Abschnitt
beschreibt, wie Sie eine Arbeitsstation an den Server anmelden und von dort aus die Server Datenbank öffnen.
1. Doppelklicken Sie auf das Icon remote 4D.
Hinweis: Für diesen Lernschritt können Sie 4D auf demselben Rechner wie 4D Server installieren.
Starten Sie das 4D Programm zum ersten Mal oder haben Sie die Startup-Parameter nicht geändert, erscheint auf dem Bildschirm
der Willkommen-Assistent:
2. Klicken Sie auf die Option "An 4D Server anmelden"
ODER
wenn dieser Dialog nicht erscheint, wählen Sie im Menü Datei/Ablage von 4D den Befehl Öffnen>Remote Anwendung
Auf dem Bildschirm erscheint der Anmeldedialog:
3. Klicken Sie auf die Registerkarte Verfügbar, um die Liste der im Netzwerk veröffentlichten
4D Datenbanken anzuzeigen.
In der Liste sollte die Datenbank Angestellte erscheinen:
4. Klicken Sie auf den Eintrag in der Liste.
Die Datenbank wird auf der Arbeitsstation in der Designumgebung geöffnet. Sie können sofort mit der Strukturierung Ihrer
Datenbank beginnen.
Tipps zur Fehlerbehebung
Erscheint nicht der Name der Datenbank, die Sie soeben mit 4D Server erstellt haben, überprüfen Sie folgende Punkte:
Läuft 4D Server noch auf dem anderen Rechner?
Wenn Sie einen zweiten Rechner einsetzen, sind beide Rechner an das Netzwerk angeschlossen?
Sind die TCP/IP Einstellungen auf beiden Rechnern korrekt?
Sind Sie noch nicht vertraut mit diesen Dialogfenstern, lesen Sie den Abschnitt Eine Server Datenbank erstellen.
Server Aktivität
Im Verwaltungsfenster von 4D Server zeigt die Registerkarte in der Leiste am oberen Rand Anwender (1) an. Öffnen Sie die
Seite, erscheinen der Anwendername und weitere Angaben.
Es laufen nun insgesamt sechszehn Prozesse:
Hinweis: Die Prozesse sind für eine bessere Lesbarkeit standardmäßig gruppiert. Sie können am oberen Rand die Option
Prozesse gruppiert anzeigen deaktivieren, um alle Prozesse anzuzeigen.
Die ersten zwölf Prozesse betreffen den Server, sie wurden beim Starten von 4D Server eingerichtet. Die vier neuen Prozesse (in 2
Zeilen gruppiert) betreffen den ersten Benutzer, der sich am Server angemeldet hat:
Der Anwendungsprozess verwaltet das Fenster zur Anzeige der Datensätze und die Anwendungsumgebung.
Der Design-Prozess verwaltet die Designumgebung.
Jeder weitere Benutzer fügt in der Prozessliste mindestens vier Prozesse hinzu.
Über die Schaltflächen Anwender Prozesse, 4D Prozesse und den Suchbereich in der rechten oberen Ecke der Seite können Sie
die Liste der angezeigten Prozesse filtern.
Wie geht es weiter?
Sie sind jetzt angemeldet und können mit der Datenbank arbeiten. Ihnen stehen alle Funktionalitäten von 4D im lokalen Modus zur
Verfügung. Als nächstes definieren Sie die Struktur der Datenbank. Gehen Sie dazu zum Abschnitt Die Datenbankstruktur
festlegen.
Die Datenbankstruktur festlegen
Nachdem Sie an die Server Datenbank anmeldet sind (siehe Abschnitt ), wählen Sie im Menü Design den Befehl
Datenbankstruktur.
Auf dem Bildschirm erscheint das Strukturfenster, es ist standardmäßig leer. Wir erstellen eine einfache Tabelle.
Die Tabelle [Angestellte] erstellen - ein Beispiel
1. Wählen Sie im Menü Datei/Ablage den Befehl Neu>Tabelle oder klicken Sie in der Werkzeugleiste auf das Icon für
Tabellen
ODER
klicken Sie mit der rechten Maustaste in das Strukturfenster und wählen im Kontextmenü den Eintrag Neue Tabelle
ODER
Klicken Sie im Strukturfenster am oberen Rand auf die Schaltfläche Hinzufügen (mit Pluszeichen) und wählen den
Eintrag Tabelle.
Die Tabelle wird angelegt.
2. Klicken Sie in den Titelbereich und geben den Namen "Angestellte" ein.
3. Doppelklicken Sie in den Bereich für Felder, um ein neues Feld anzulegen.
4. Nennen Sie das Feld Vorname und behalten den Typ Alpha (255) bei.
5. Legen Sie in der Tabelle [Angestellte] auf dieselbe Weise folgende Datenfelder an:
Feldname Typ
Vorname
Name
Gehalt
Abteilung
Alphanumerisch (255 Zeichen)
Alphanumerisch (255 Zeichen)
Zahl
Alphanumerisch (255 Zeichen)
Hinweis: Arbeiten andere remote 4D Anwendungen zur gleichen Zeit in der Server-Datenbank, erscheinen die Datenfelder, die Sie
gerade angelegt haben, nach ein paar Sekunden auf diesen Client-Rechnern. Die Änderungen werden in Echtzeit auf den Server
übertragen, erscheinen aber nicht sofort auf den anderen Bildschirmen, um zu häufiges Aktualisieren zu vermeiden.
Fomulare für die Tabelle [Angestellte] erstellen
Nachdem Sie die Tabelle [Angestellte] erstellt haben, benötigen Sie Formulare, um mit den Datensätzen arbeiten zu können. Sie
können dafür den Formularassistenten verwenden und Formulare für Ihren Bedarf erstellen. 4D bietet jedoch praktische
Tastaturkürzel für die rasche Erstellung von Ein- und Ausgabeformularen.
1. Klicken Sie in der Werkzeugleiste von 4D auf die Schaltfläche Tabelle:
ODER
wählen Sie im Menü Datensätze den Befehl Aktuelle Tabelle anzeigen.
Auf dem Bildschirm erscheint das Fenster für Datensätze. 4D stellt fest, dass der Tabelle noch keine Formulare zugeordnet sind
und fragt Sie, ob das Programm diese anlegen soll.
2. Klicken Sie auf die Schaltfläche Ja.
4D erstellt automatisch ein Eingabeformular und ein Ausgabeformular. Im Eingabeformular können Sie Datensätze einzeln
hinzufügen bzw. anzeigen. Im Ausgabeformular können Sie mehrere Datensätze in einer Liste hinzufügen bzw. anzeigen.
Wie geht es weiter?
Sie können nun Daten in der Server-Datenbank eingeben und bearbeiten. Gehen Sie zum nächsten Abschnitt Daten mit 4D
Server bearbeiten.
Daten mit 4D Server bearbeiten
Im Abschnitt Die Datenbankstruktur festlegen haben Sie die Tabelle [Angestellte] und Standardformulare dafür erstellt. Sie
können nun Datensätze eingeben.
Datensätze eingeben
4D bietet im Designmodus eine Reihe von Werkzeugen und Editoren, um Datensätze einzugeben, zu suchen, zu ändern und zu
drucken. Auf diese Weise können Sie nach und nach Ihre eigenen Werkzeuge für die Anwendungsumgebung einrichten.
1. Wählen Sie im Menü Datensätze den Befehl Neuer Datensatz.
Es erscheint ein leeres Eingabeformular.
2. Geben Sie Ihren ersten Datensatz ein.
Wechseln Sie per Mausklick oder mit der Tabulatortaste von einem Feld in das nächste.
3. Klicken Sie am linken Rand auf die Schaltfläche Bestätigen. Der Datensatz wird gesichert.
Auf dem Bildschirm erscheint eine neues Leerformular zur weiteren Eingabe von Datensätzen.
4. Geben Sie fünf weitere Datensätze mit folgenden Werten ein:
Name
Vorname Gehalt Abteilung
Fürst
Klein
Müller
Weiß
Pechmann
Alexander
Thomas
Andrea
Bernhard
Claudia
4500
4000
3450
4500
3400
Vertrieb
Versand
Vertrieb
Technik
Versand
Haben Sie den letzten Datensatz eingegeben, klicken Sie auf Abbrechen (Icon mit Kreuz am linken Rand), um das neue
Leerformular zu annullieren. 4D Server kehrt zum Ausgabeformular zurück.
5. Werden nicht alle sechs Datensätze angezeigt, wählen Sie im Menü Datensätze den Befehl Alle anzeigen und passen
das Fenster bzw. die Spalten bei Bedarf an.
Ihr Bildschirm sollte folgendermaßen aussehen:
Die Datensätze sind nun in der Datenbank auf dem Server-Rechner gespeichert. Meldet sich ein zweites remote 4D auf dem
Server-Rechner an, kann sie die soeben eingegebenen Datensätze anzeigen. Ebenso können Sie von Ihrer Arbeitsstation aus alle
Datensätze anzeigen, die in der Datenbank gespeichert sind, inkl. der Datensätze, die von anderen Arbeitsstationen eingegeben
wurden. Wählen Sie dazu im Menü Datensätze den Befehl Alle anzeigen. Jeder Benutzer hat Zugang zu den Datensätzen, die auf
dem Server gespeichert sind.
Datensätze suchen
Sobald Sie Datensätze in der Tabelle [Angestellte] eingegeben haben, können Sie mit den Datensätzen arbeiten, z.B. Such- oder
Sortierläufe durchführen oder drucken.
Sie können beispielsweise nach den Angestellten einer Abteilung suchen.
1. Klicken Sie in der Menüleiste auf das Icon für Suchen.
Auf dem Bildschirm erscheint der Sucheditor.
2. Klicken Sie im Bereich Verfügbare Felder auf "Abteilung", in der Liste Vergleiche auf “ist gleich” und geben Sie im
darunterliegenden Bereich Wert "Technik" ein.
Der Sucheditor sieht jetzt folgendermaßen aus:
3. Klicken Sie am unteren Rand auf die Schaltfläche Suche.
Die Anfrage wird an den 4D Server gesendet, 4D Server sendet das Ergebnis an den Client zurück. Im Ausgabeformular
erscheinen nur die Angestellten der Abteilung Technik.
4. Wollen Sie wieder alle Datensätze anzeigen, wählen Sie im Menü Datensätze den Befehl Alle anzeigen.
Ein Diagramm erstellen
1. Wählen Sie im Menü Bericht den Befehl Diagramme.
Auf dem Bildschirm erscheint der Diagramm-Assistent:
Sie erstellen ein 2D Säulendiagramm. Diese Art ist standardmäßig ausgewählt.
2. Klicken Sie am unteren Rand auf die Schaltfläche Nächste.
Hier müssen Sie die Daten für Ihr Diagramm auswählen.
3. Ziehen Sie das Datenfeld Name per Drag & Drop in den Bereich Kategorie (X Achse).
4. Ziehen Sie das Datenfeld Gehalt per Drag & Drop in den Bereich Werte (Z Achse).
5. Klicken Sie auf die Schaltfläche OK.
Ihr Diagramm sieht folgendermaßen aus.
Wie geht es weiter?
Sie haben in wenigen Minuten eine Server Datenbank erstellt, eine Tabelle angelegt, Datensätze eingegeben und dann mit diesen
Daten eine Suche ausgeführt und ein Diagramm erzeugt.
Sie lernen nun, eine eigene Menüleiste hinzuzufügen. Gehen Sie zum nächsten Abschnitt Eine eigene Menüleiste hinzufügen.
Eine eigene Menüleiste hinzufügen
In diesem Abschnitt erstellen Sie zwei Methoden und eine eigene Menüleiste, d.h. Sie erstellen Ihre eigene 4D Anwendung.
Zwei Methoden hinzufügen
1. Wählen Sie im Menü Datei/Ablage den Befehl Neu>Methode.
Es erscheint das Dialogfenster Neue Methode.
2. Geben Sie im Bereich Methodenname “M_Hinzufügen” ein und klicken auf die Schaltfläche OK.
Auf dem Bildschirm erscheint das Methodenfenster mit dem Titel “M_Hinzufügen”.
3. Geben Sie folgenden Code ein:
4. Erstellen Sie eine 2. Methode mit Namen “M_Suchen” und geben folgenden Code ein:
Haben Sie beide Methoden erstellt, können Sie eine eigene Menüleiste einrichten und diese Methoden Ihren eigenen
Menübefehlen hinzufügen.
Eine eigene Menüleiste einrichten
1. Wählen Sie im Menü Design den Befehl Toolbox>Menüs.
Auf dem Bildschirm erscheint der Menüeditor mit der Standard Menüleiste.
2. Wählen Sie im mittleren Fenster den Eintrag Menüleiste # 1 und klicken auf das Pluszeichen am unteren Rand.
3. Geben Sie als Menütitel "Angestellte" ein und drücken die Eingabetaste.
4. Klicken Sie mit der rechten Maustaste auf diesen Menütitel, um eine neue Zeile hinzuzufügen.
5. Geben Sie im Textbereich “Hinzufügen” ein und klicken auf die Eingabetaste.
6. Klicken Sie erneut mit der rechten Maustaste auf den Menütitel, um einen zweiten Befehl hinzuzufügen.
7. Geben Sie “Suchen” ein und klicken auf die Eingabetaste.
Ihre Menüleiste sieht folgendermaßen aus:
8. Klicken Sie auf den Menübefehl “Hinzufügen” und wählen im Bereich Methodenname “M_Hinzufügen”.
9. Klicken Sie auf den Menübefehl “Suchen”und wählen im Bereich Methodenname “M_Suchen”.
Ihre Menüleiste sieht nun folgendermaßen aus:
10. Schließen Sie das Fenster Toolbox.
Ihr eigenes Menü ist fertig!
11. Wählen Sie im Menü Start den Befehl Anwendung testen.
Sie verwenden jetzt Ihre eigene Anwendung mit den selbsterstellten Menüs.
Wählen Sie jetzt im Menü Angestellte den Befehl Suchen, erscheint der standardmäßige 4D Sucheditor. Sie können Ihre Suche
definieren, die gefundenen Datensätze anzeigen und ändern.
Sie haben, ohne zu wissen, soeben eine Mehrplatz-Anwendung entwickelt!
Die Erklärung dafür finden Sie im nächsten Abschnitt Gleichzeitig mit 4D Server arbeiten.
Gleichzeitig mit 4D Server arbeiten
Arbeiten Sie das Lernprogramm unter Windows durch, können Sie diese Server-Datenbank ohne Änderungen auf Macintosh
verwenden. Arbeiten Sie das Lernprogramm auf Macintosh durch, können Sie diese Server-Datenbank ebenfalls ohne Änderungen
unter Windows verwenden.
Einen zweiten Benutzer an die Server Datenbank anmelden
Melden Sie für diesen Lernschritt je ein remote 4D für Windows und für Mac OS an. Sobald Sie angemeldet sind, wird im
4D Server Verwaltungsfenster ein zweiter Benutzer eingetragen:
Sie können auf jeder Arbeitsstation sofort alles verwenden, was Sie auf der anderen Plattform eingerichtet haben.
Die Designumgebung des remote Rechners unter Windows sieht folgendermaßen aus:
Alle Datensätze und Methoden stehen zur Verfügung.
Gleichzeitig mit Datensätzen arbeiten
1. Wechseln Sie auf dem ersten remote Rechner in den Modus Anwendung testen und wählen im Menü Angestellte den
Befehl Suchen. Suchen Sie nach den Datensätzen mit dem Kriterium "Firma ist gleich Compu und Soft".
2. Wiederholen Sie denselben Vorgang für den zweiten remote Rechner.
Sie erhalten auf beiden Rechnern dieselbe Liste.
3. Doppelklicken Sie auf dem ersten Rechner auf den Datensatz “Andreas Schwarz”.
4. Wiederholen Sie denselben Vorgang für den zweiten Rechner.
4D Server aktiviert den eingebauten Mechanismus zum Sperren von Datensätzen. Sie erhalten die Meldung, dass der Datensatz
bereits benutzt wird:
Sie können diesen Datensatz aber im Lesemodus öffnen, d.h. Sie können ihn anzeigen, jedoch nicht ändern.
5. Ändern Sie auf dem ersten Rechner den Vornamen um in “Michael” und bestätigen Sie Ihre Änderungen.
Auf dem Bildschirm erscheint die aktualisierte Liste:
6. Annullieren Sie auf dem zweiten Rechner die Anzeige des Datensatzes im Eingabeformular. Auf dem Bildschirm
erscheint ebenfalls die aktualisierte Liste:
Gleichzeitig mit Design Objekten arbeiten
4D Server ist Daten- und Anwendungsserver zugleich. Das bedeutet folgendes:
1. Drücken Sie auf der zweiten Arbeitsstation die Escape-Taste und wählen Sie im Menü Modus den Befehl Zurück zur
Designumgebung.
2. Wiederholen Sie diesen Vorgang auf dem ersten Rechner.
3. Wählen Sie auf der ersten Arbeitsstation im Menü Design den Befehl Explorer>Formular.
Auf dem Bildschirm erscheint das Explorer-Fenster.
4. Wählen Sie das Tabellenformular und erweitern Sie die Tabelle [Angestellte].
5. Doppelklicken Sie auf das Eingabeformular und klicken auf die Schaltfläche Bearbeiten.
Auf dem Bildschirm erscheint folgendes Fenster:
6. Wiederholen Sie diesen Vorgang auf dem zweiten Rechner.
Da dieses Formular bereits auf der ersten Arbeitsstation im Bearbeitungsmodus geöffnet ist, sperrt 4D Server diesen Vorgang. Sie
erhalten folgende Meldung:
Sie können dieses Formular auf der zweiten Arbeitsstation zwar nicht bearbeiten, jedoch Objekte auswählen und in andere
Formulare einsetzen.
Das Schloss in der Ecke oben rechts weist darauf hin, dass Sie keine Änderungen vornehmen können.
7. Wählen Sie auf der ersten Arbeitsstation die Bezeichnung "Name" links neben der Tabelle [Angestellte].
8. Wählen Sie im Menü Objekt>Farbe in der Farbpalette einen roten Farbton, um dieses Objekt rot einzufärben.
9. Wählen Sie im Menü Datei/Ablage den Befehl Speichern Formular [Angestellte]Eingabe.
10. Schließen Sie das Formular auf der zweiten Arbeitsstation und öffnen es wieder, um es neu zu laden.
Auf dem Bildschirm erscheint nun das Formular mit den Änderungen, die Sie auf der ersten Arbeitsstation gemacht haben.
Wie Sie sehen, können mit 4D Server mehrere Benutzer gleichzeitig an derselben Datenbank arbeiten!
Den Server abschalten
4D Server informiert nicht nur die Arbeitsstationen, wenn mehrere Benutzer gleichzeitig auf denselben Datensatz oder dasselbe
Objekt zugreifen wollen, sondern auch wenn der Server abgeschaltet wird.
1. Beide Arbeitsstationen bleiben an die Server-Datenbank angeschlossen. Wählen Sie auf dem Server-Rechner unter
Windows im Menü Datei, auf Mac OS im Menü 4D Server den Befehl Beenden.
Auf dem Bildschirm erscheint folgender Dialog:
2. Klicken Sie auf die Schaltfläche OK.
Die beiden Arbeitsstationen erhalten unmittelbar darauf die Meldung, dass der Server abgeschaltet wird. Legt ein Benutzer gerade
einen neuen Datensatz an, bleibt ihm genügend Zeit, die Eingabe zu beenden und zu sichern.
Sie können beim Abschalten des Servers auch die Option “Warte bis alle Anwender abgemeldet sind" verwenden.
3. Während der Server abschaltet, beenden Sie 4D auf den beiden remote Rechnern.
Zusammenfassung
In nur 10 Minuten – außer Sie hatten eine Kaffeepause – haben Sie gelernt, mit 4D Server zu arbeiten:
Sie haben von Grund auf eine Datenbank erstellt.
Sie haben eine Tabelle eingerichtet und 4D Server angewiesen, dafür Formulare zu erstellen.
Sie haben Datensätze angelegt und damit gearbeitet.
Sie haben Ihre Anwendung mit einer eigenen Menüleiste ausgestattet.
Sie haben die Server Datenbank unter Windows und auf Macintosh eingesetzt.
Sie haben den Server abgeschaltet und erneut gestartet.
Schließlich haben Sie zwei eigene Anwendungen erstellt (Windows und Macintosh), obwohl Sie eigentlich nur eine Anwendung
entwickelt haben. Außerdem können Sie die Datenbank bei Bedarf auch im lokalen Modus einsetzen. Sie müssen die Datenbank
dazu lediglich mit 4D öffnen.
Weitere Informationen zu 4D Server finden Sie in der Einleitung und den nachfolgenden Kapiteln.
Eine vollständige Beschreibung der 4D Umgebung finden Sie in folgenden Handbüchern:
4D Designmodus erläutert die Strukturierung und Verwendung von 4D Anwendungen und Datenbanken.
4D Programmiersprache beschreibt die Befehle der 4D Programmiersprache. Wollen Sie beispielsweise mehr über
4D Server als Web Server erfahren, lesen Sie den Abschnitt .
4D Server verwenden
Neue 4D Server Datenbank erstellen
4D Server beenden
4D Server Menüs
Einstellungen zur Konfiguration
Einstellungen zur Veröffentlichung
Client/Server Verbindungen verschlüsseln
Ordner Resources verwalten
Datenbank als Dienst registrieren
Logischen Spiegel einrichten
Neue 4D Server Datenbank erstellen
Um eine Server Datenbank zu erstellen bzw. eine vorhandene Datenbank zu öffnen, starten Sie 4D Server durch Doppelklick auf
das Programm-Icon für 4D Server.
Über das Menü Datei/Ablage des 4D Server können Sie eine neue Datenbank erstellen oder eine bereits vorhandene öffnen.
Datenbank erstellen
Um eine neue Datenbank zu erstellen, können Sie im Untermenü Neu zwischen drei Optionen wählen:
Struktur erstellt eine leere Datenbank, d.h. sie enthält weder Tabellen, Formulare noch eine vordefinierte Oberfläche. Wählen
Sie diesen Befehl, erscheint ein Standard-Sichern Dialog, in dem Sie Name und Speicherort der Datenbank festlegen
können.
Struktur von Vorlage erstellt eine Datenbank mit einer einsatzbereiten Vorlage, die Sie dann an Ihre eigenen Bedürfnisse
anpassen können. Damit Sie diese Funktion nutzen können, muss die Datenbankvorlage in einem Ordner 4D Templates oder
4D Modelle abgelegt werden, der auf derselben Ebene wie die Datei 4D Server.exe (Windows), bzw. das 4D Server
Software Paket (Mac OS) liegt. Wählen Sie diesen Menübefehl, erscheint ein Dialogfenster mit verschiedenen Vorlagen zur
Auswahl.
Struktur von Strukturdefinition erstellt eine Datenbank, die auf einer Strukturdefinition im XML Format basiert. Die
Definition kann von einer Struktur stammen, die aus 4D oder einer beliebigen Design-Anwendung exportiert wurde. Wählen
Sie diesen Menübefehl, erscheint ein Standard-Öffnen Dialog, in dem Sie die entsprechende XML Datei definieren können.
Weitere Informationen dazu finden Sie im Handbuch 4D Designmodus.
Datenbank öffnen
Um eine vorhandene Datenbank zu öffnen, wählen Sie im Menü Datei/Ablage>Öffnen oder bei einer schon einmal geöffneten
Datenbank im Menü Datei/Ablage>Öffnen zuletzt verwendet. Ist die Datenbank bereits geöffnet, wenn Sie den Befehl Öffnen
wählen, wird sie zuerst geschlossen. Evtl. angemeldete Client-Rechner werden mit der Option "Warte bis alle Anwender
abgemeldet sind" abgemeldet.
Hinweis: Sie können eine vorhandene Datenbank auch direkt öffnen, wenn Sie die interpretierte bzw. kompilierte Strukturdatei
(.4db bzw. .4dc) oder die Datei .4dlink auf das Programm-Icon 4D Server ziehen.
4D Server beenden
Um 4D Server zu beenden, gehen Sie folgendermaßen vor:
1. Wählen Sie unter Windows im Menü Datei von 4D Server, auf Mac OS im Menü 4D Server der Anwendung den Befehl
Beenden.
Auf dem Bildschirm des Server Rechners erscheint folgendes Dialogfenster:
2. Geben Sie entweder die Zeitspanne an, nach der Server beenden soll oder wählen Sie die Option Warte bis alle
Anwender abgemeldet sind.
Sobald Sie eine Option gewählt haben, kann sich am Server kein neuer Client anmelden.
Wählen Sie Abmelden vom Server in ... min, erscheint auf dem Bildschirm folgende Meldung:
Gleichzeitig erhalten alle Arbeitsstationen eine entsprechende Meldung. Der Benutzer kann die noch verbleibende Zeit
weiterarbeiten. Dieses Dialogfenster wird alle 20 Sekunden wiederholt, um die Arbeitsstationen zum Beenden aufzufordern. Ist die
Zeit abgelaufen, beendet der Server, auch wenn noch Client-Rechner angemeldet sind.
Wählen Sie die Option Warte bis alle Anwender abgemeldet sind ohne Angabe einer Meldung, erscheint folgendes
Dialogfenster. Es gibt an, wieviel Clients noch angemeldet sind:
Auf der Arbeitsstation erscheint folgendes Dialogfenster mit der Standardmeldung:
Haben Sie im Abmeldedialog auf dem Server eine eigene Meldung eingegeben, erscheint diese Meldung anstelle der
Standardmeldung. Sie könnte zum Beispiel lauten:
Der Server beendet, sobald alle Arbeitsstationen abgemeldet sind.
Haben Sie die Option "Alle Clients sofort abmelden und beenden" gewählt, beendet 4D Server alle Prozesse und
Verbindungen und beendet nach wenigen Sekunden.
4D Server Menüs
Die Oberfläche von 4D Server enthält folgende Menüs: Datei/Ablage, Bearbeiten, Fenster, Hilfe
Auf Mac OS sind einige Befehle im Menü 4D Server der Anwendung:
Datei/Ablage
Neu
Dieser Befehl hat Untermenüs, um eine Struktur oder eine neue Datendatei auf dem Server Rechner zu erstellen.
Weitere Informationen dazu finden Sie im Abschnitt .
Öffnen/Zuletzt geöffnet
Über diese Befehle können Sie eine Anwendung mit 4D Server öffnen.
Weitere Informationen dazu finden Sie im Abschnitt .
Zuletzt geöffnet
Dieser Befehl zeigt im Untermenü die zuletzt von 4D Server geöffneten Anwendungen. Markieren Sie die gewünschte Anwendung,
um sie zu öffnen. Ist die Datenbank bereits geöffnet, wenn Sie diesen Befehl wählen, wird sie zuerst geschlossen. Evtl.
angemeldete Client-Rechner werden mit der Option "Warte bis alle Anwender abgemeldet sind" abgemeldet.
Um dieses Menü zurückzusetzen, wählen Sie den Befehl Lösche Menü.
Schließe Anwendung
Damit schließen Sie die aktuelle Anwendung, ohne 4D Server zu beenden. Auf dem Bildschirm erscheint dann die Meldung zum
Beenden des Server, um die entsprechende Option zum Abmelden der Clients zu wählen. Weitere Informationen dazu finden Sie im
Abschnitt .
Schließe Fenster
Damit schließen Sie in 4D Server das Fenster im Vordergrund.
Schließe alle Fenster
Damit schließen Sie alle Fenster im Programm 4D Server. Beachten Sie, dass in diesem Fall nur, wenn der Befehl Schließe
Anwendung im Menü Datei/Ablage aktiviert ist, angibt, ob die Anwendung noch veröffentlicht ist.
Als Service registrieren/Registrierung für aktuelle DB aufheben/Alle 4D Server Registrierungen
aufheben
Über diese Befehle können Sie die Registrierung der Anwendung als Service verwalten. Weitere Informationen dazu finden Sie im
Abschnitt Datenbank als Dienst registrieren.
Cache sichern
Dieser Befehl leert den Daten-Cache und schreibt die Daten auf die Festplatte. 4D Server leert den Cache automatisch nach der
Zeitspanne, die in den Einstellungen der Datenbank auf der Seite Datenbank>Datenverwaltung festgelegt wurde.
Backup Mit diesem Befehl können Sie jederzeit ein Backup der Datenbank starten. Auf dem Bildschirm erscheint dann folgendes
Dialogfenster:
Die Schaltfläche Backup startet sofort ein Backup mit den Parametern, die in den Einstellungen der Datenbank definiert
wurden (Dateien für das Backup, Zielverzeichnis, Anzahl der aufbewahrten Backup-Sätze, etc.)
Die Schaltfläche Einstellungen öffnet die Einstellungen unter dem Thema Backup. Hier können Sie die aktuellen
Einstellungen für das Backup ansehen und bei Bedarf verändern.
Die Schaltfläche Abbrechen unterbricht den laufenden Prozess der Datensicherung.
Weitere Informationen zur Backup-Konfiguration finden Sie im Handbuch 4D Designmodus.
Wiederherstellen
Dieser Befehl zeigt den Standard-Öffnen Dialog, um das Backup für die Wiederherstellung auszuwählen.
Beenden
Mit diesem Befehl können Sie 4D Server abschalten. Weitere Informationen dazu finden Sie im Abschnitt .
Hinweis: Auf Mac OS X liegt der Befehl Beenden im Menü 4D Server der Anwendung.
Wählen Sie unter Windows im Menü Datei, auf Mac OS im Menü 4D Server der Anwendung den Befehl Beenden.
Bearbeiten
Das Menü Bearbeiten von 4D Server enthält die Standardbefehle Kopieren/Einfügen, den Befehl Zwischenablage, etc.
Unter Windows enthält dieses Menü auch den Befehl Einstellungen, der das Dialogfenster Einstellungen der Anwendung anzeigt.
Weitere Informationen dazu finden Sie im Handbuch 4D Designmodus. Die spezifischen Einstellungen für 4D Server finden Sie in
den Abschnitten Einstellungen zur Konfiguration und Einstellungen zur Veröffentlichung.
Hinweis: Auf Mac OS liegt der Befehl Einstellungen im Menü 4D Server der Anwendung.
Fenster
Der obere Teil enthält Standardbefehle zum Verwalten der Arbeitsfenster (die Befehle variieren je nach Plattform). Dieses Menü
enthält auch Befehle zum Anzeigen serverspezifischer Fenster.
Administration
Dieser Befehl öffnet das 4D Server Verwaltungsfenster, wenn es geschlossen oder minimiert wurde. Weitere Informationen dazu
finden Sie im Abschnitt .
Runtime Explorer
Dieser Befehl öffnet das Fenster Runtime Explorer von 4D Server.
Mit dem Runtime Explorer können Sie den Status verschiedener Strukturelemente der Datenbank ansehen und prüfen, ob die
verfügbaren Ressourcen korrekt verwaltet werden. Der Runtime Explorer ist besonders hilfreich beim Entwickeln oder Analysieren
einer Datenbank.
Das Fenster enthält am linken Rand vier Schaltflächen, über die Sie auf die Seiten Überwachen, Prozess, Break und Catch
gelangen. Er funktioniert in 4D Server auf dieselbe Art und Weise wie in 4D. Weitere Informationen dazu finden Sie im Handbuch
4D Designmodus.
Hilfe
Maintenance und Security-Center
Dieser Befehl öffnet das Wartungs- und Sicherheits-Center (MSC). Es enthält die Werkzeuge zum Prüfen, Warten, Sichern und
Komprimieren der Daten- und Strukturdateien.
Dieser Befehl ist auch verfügbar, wenn keine Anwendung von 4D Server geöffnet wurde. Dann lässt sich eine Anwendung im
Wartungsmodus öffnen. Der Befehl zeigt den Standard-Öffnen Dialog an, in dem Sie die entsprechende Anwendung öffnen können.
Im Wartungsmodus können Sie beschädigte Anwendungen öffnen oder komprimieren.
Weitere Informationen dazu finden Sie im Handbuch 4D Designmodus.
Lizenz aktualisieren
Dieser Befehl öffnet das Fenster zum Aktivieren zusätzlicher Lizenzen in Ihrer 4D Umgebung. Weitere Informationen dazu finden
Sie im 4D Installationshandbuch.
Über 4D Server
Dieser Befehl zeigt das Fenster Über 4D Server. Es enthält Registerkarten, um verschiedene Seiten mit Informationen zum Server
aufzurufen.
Programm: 4D Server Version und Lizenz
Copyrights: Datenschutzbestimmungen
4D Online: Zusätzliche Ressourcen zu 4D, die online aufrufbar sind
4D: Überblick über das Unternehmen 4D SAS weltweit.
Hinweis: Auf Mac OS liegt der Befehl Über 4D Server im Menü 4D Server der Anwendung.
Einstellungen zur Konfiguration
Sie können in den Datenbank-Eigenschaften auf der Seite Client-Server die Parameter für das Netzwerk und die Client/Server
Kommunikation festlegen. Sie ist für 4D im remote Modus und 4D Server zugänglich.
Netzwerk
Beim Starten veröffentlichen
Mit dieser Option geben Sie an, ob die 4D Server Datenbank im Verbindungsdialog in der Liste der veröffentlichten Datenbanken
erscheint.
Ist diese Option markiert (Standard), wird die Datenbank veröffentlicht und erscheint in der Liste (SeiteTCP/IP).
Ist diese Option nicht markiert, wird die Datenbank nicht veröffentlicht und erscheint nicht in der Liste. Der Benutzer muss, um
sich anzumelden, die Adresse der Datenbank manuell auf der Seite Angepasst eingeben.
Hinweis: Verändern Sie diesen Parameter, müssen Sie die Server Datenbank neu starten, damit die Änderung berücksichtigt
wird.
Anzeigename
Der Name einer Datenbank, die mit 4D Server veröffentlicht wird, lässt sich ändern. Das kann z.B. der Name auf der dynamischen
Veröffentlichungsseite Verfügbar im Verbindungsdialog sein.
4D Server verwendet standardmäßig den Namen der Strukturdatei der Datenbank. Sie können einen beliebigen Namen eingeben.
Hinweis: Dieser Parameter wird bei eigenen Client-/Server-Anwendungen nicht berücksichtigt. Im Prinzip meldet sich die ClientAnwendung direkt an die Server Anwendung an, ohne über den Anmeldedialog zu gehen. Der Dialog erscheint jedoch, wenn ein
Fehler auftritt; in diesem Fall ist der Publikationsname der Server-Anwendung der Name der kompilierten Datenbank.
Port Nummer
Mit dieser Option können Sie die TCP Port Nummer ändern, unter der 4D Server die Datenbank veröffentlicht. Diese Information
wird in der Strukturdatei der Datenbank und auf jedem Client-Rechner gespeichert. 4D Server und 4D im remote Modus verwenden
standardmäßig die Port Nummer 19813.
Hinweis: 4D Server verwendet stets zwei Ports zur Kommunikation mit Clients: den o.a. und den darauf folgenden, also 19814.
Beide Ports müssen in der Firewall geöffnet werden.
Sie müssen diesen Wert anpassen, wenn Sie mehrere 4D Anwendungen auf demselben Rechner mit dem TCP Protokoll
verwenden wollen; in diesem Fall müssen Sie für jede Anwendung eine andere Port Nummer vergeben.
Ändern Sie diesen Wert auf 4D Server bzw. 4D, wird er automatisch auf alle 4D Rechner übertragen, die an die Datenbank
angemeldet sind. Um andere nicht angeschlossene Client-Rechner zu aktualisieren, geben Sie bei der nächsten Anmeldung im
Verbindungsdialog auf der Seite Angepasst die neue Port Nummer ein, getrennt durch Doppelpunkt. Sie wird an die IP-Adresse
des Server-Rechners angehängt, getrennt durch Doppelpunkt. Ist die Nummer z.B. 19888, sieht das Dialogfenster folgendermaßen
aus:
Beispiel: Die Nummer könnte lauten 192.121.122.123:19888 (achten Sie auf den Doppelpunkt!)
Hinweis: Auf der Seite Verfügbar zur dynamischen Veröffentlichung erscheinen nur die Datenbanken, die auf demselben Port, wie
in remote 4D definiert, veröffentlicht werden.
4D Server und Port Nummern
4D Server verwendet drei TCP Port zur Kommunikation zwischen internen Servern und Clients:
SQL Server: standardmäßig 19812 (lässt sich über die Seite "SQL" der Datenbank-Eigenschaften ändern).
Application Server: standardmäßig 19813 (lässt sich in den Einstellungen auf der Seite "Client-Server/Konfiguration"
verändern, siehe unten).
DB4D Server (database server): standardmäßig 19814. Diese Port Nummer lässt sich nicht direkt ändern, sie besteht aber
immer aus der Port Nummer des Application Server + 1.
Meldet sich ein remote 4D an 4D Server an, verwendet es den TCP Port des Application Server (19813 oder den Port, der
im Verbindungsdialog in der IP Adresse nach dem Doppelpunkt ':' angezeigt wird.). Die Anmeldung an andere Server über
ihre entsprechenden Ports ist dann automatisch; sie müssen nicht mehr eigens spezifiziert werden.
Beachten Sie, dass die drei TCP Port bei Zugriff über einen Router oder eine Firewall explizit geöffnet werden müssen.
Client-Server Verbindungs-Timeout
Im Ablaufbalken legen Sie das Timeout fest, d.h. die Dauer an Inaktivität, nach der die Verbindung zwischen 4D Server und den
angeschlossenen Client-Rechnern beendet wird.
Bei Ohne gibt es kein Timeout. In diesem Fall erfolgt keine Kontrolle der Client-Aktivität, d.h ein inaktiver Client bleibt auf
unbestimmte Zeit an den Server angeschlossen.
Ist ein Timeout eingestellt, beendet der Server die Verbindung zu einem Client, wenn er innerhalb der vorgegebenen Zeitspanne
keine Anfragen von diesem Client erhält.
Client-Server Kommunikation
Client beim Starten anmelden
Ist diese Option markiert, können alle Arbeitsstationen, die an die 4D Server Anwendung angemeldet sind, Methoden im remote
Modus ausführen. Weitere Informationen dazu finden Sie im Abschnitt Serverprozeduren auf Client-Rechnern.
Verschlüsselte Client-Server Verbindungen
Damit können Sie den SSL Modus (gesicherter Modus) zur Kommunikation zwischen Server Rechner und remote 4D aktivieren.
Weitere Informationen dazu finden Sie im Abschnitt Client/Server Verbindungen verschlüsseln.
'Resources'-Ordner während einer Session aktualisieren
Mit dieser Einstellung können Sie den Aktualisierungsmodus für den Ordner Resources auf den angeschlossenen Rechnern global
setzen, wenn der Ordner Resources während einer Arbeitssitzung verändert wird. (Beim Öffnen einer neuen Arbeitssitzung wird er
immer automatisch auf dem remote Rechner synchronisiert). Es gibt drei Möglichkeiten:
Nie: Der lokale Ordner Resources wird während der Arbeitssitzung nicht aktualisiert. Die vom Server gesendete Meldung
wird ignoriert. Dieser Ordner lässt sich bei Bedarf manuell über den Menübefehl Lokale Ressourcen aktualisieren
aktualisieren.
Immer: Der lokale Ordner Resources wird während der Arbeitssitzung automatisch synchronisiert, wenn der Server eine
Meldung sendet.
Fragen: Sendet der Server eine Meldung, erscheint auf den Client-Rechnern ein Dialogfenster, das die Änderung meldet.
Der Benutzer kann dann die Synchronisation des lokalen Ordners Resources bestätigen oder abweisen.
Der Ordner Resources bündelt die eigenen Dateien für die Oberfläche der Anwendungen, z.B. Bilder, Übersetzungsdateien. Die
automatische oder manuelle Operation ermöglicht, jeden Client zu informieren, wenn sich der Inhalt dieses Ordners geändert hat.
Weitere Informationen dazu finden Sie im Abschnitt Ordner Resources verwalten.
Hinweis: Diese Einstellmöglichkeit richtet sich an Team-Entwickler, sie ist für Anwender einer Datenbank belanglos.
Öffne Struktur im Modus
Damit definieren Sie den Öffnen-Modus der Datenbankstruktur auf den Client-Rechnern. Standardmäßig ist der Modus
Lesen/Schreiben eingestellt. Sie können aber auch den Modus Nur Lesen wählen, um Änderungen an der Struktur zu verhindern.
Einstellungen zur Veröffentlichung
In den Datenbank-Eigenschaften können Sie auf der Seite Client-Server>IP Konfiguration Parameter zur Sicherheit und zur
Veröffentlichung von Datenbanken durch 4D Server festlegen (zugänglich für 4D remote und 4D Server):
Es gibt folgende Parameter:
Konfiguration Erlauben/Verweigern Tabelle
Mit dieser Tabelle setzen Sie die Regeln für den Zugriff auf die Datenbank. Das richtet sich nach den IP-Adressen des remoteRechners. Das sorgt z.B. bei Anwendungen mit sensiblen Daten für mehr Sicherheit.
Hinweis: Diese Tabelle steuert nicht die Web Verbindungen.
Diese Tabelle funktioniert folgendermaßen:
In der Spalte “Erlauben-Verweigern” wählen Sie im PopUp-Menü die anzuwendende Regel, d.h. Erlauben oder Verweigern.
Um eine Regel hinzuzufügen, klicken Sie auf die Schaltfläche Hinzufügen. In der Tabelle erscheint dann eine neue Zeile.
Über die Schaltfläche Löschen können Sie die aktuelle Zeile entfernen.
In der Spalte “IP Adresse” setzen Sie die IP-Adresse(n), für welche die Regel gelten soll. Dazu klicken Sie in die Spalte und
geben die Adresse in folgender Form ein: 123.45.67.89.
Sie können auch nur den Anfang der Adresse eingeben, gefolgt von einem * (Stern): 192.168.* gibt alle Adressen an, die mit
192.168 beginnen.
Die Anwendung der Regeln richtet sich nach der Reihenfolge der Anzeige in der Tabelle. Bei zwei widersprüchlichen Regeln
hat die zuerst angelegte Regel Priorität.
Durch Ändern der aktuellen Sortierung können Sie die Zeilen neu ordnen (Klicken Sie auf den Kopfteil der Spalte, um die
Sortierrichtung zu wechseln). Sie können die Zeilen auch per Drag&Drop bewegen.
Aus Sicherheitsgründen ist die Anmeldung nur an Adressen möglich, die zu einer Regel passen, d.h. enthält die Tabelle eine
bzw. mehrere Regeln Verweigern, werden alle Adressen abgewiesen, da keine zu mindestens einer Regel passt. Wollen Sie
nur einige Adressen abweisen, andere jedoch zulassen, fügen Sie am Ende der Tabelle die Regel Erlauben * hinzu.
Beispiel:
Verweigere 192.168.* (weist alle Adressen ab, die mit 192.168 beginnen
Erlaube * (lässt jedoch alle anderen Adressen zu)
4D Server verwendet standardmäßig keine Verbindungseinschränkungen, d.h. die erste Zeile der Tabelle enthält die
Bezeichnung Erlaube und das Zeichen * (alle Adressen sind zugelassen).
Client/Server Verbindungen verschlüsseln
Sie können Client/Server-Verbindungen so einstellen, dass die Arbeitsstationen mit remote 4D im gesicherten Modus mit
4D Server kommunizieren. Die gesicherte Client/Server Kommunikation basiert auf dem SSL Protokoll (Secured Socket Layer).
SSL Protokoll und Client/Server Verbindungen
Das SSL Protokoll sichert die Kommunikation zwischen zwei Anwendungen ab, das sind hauptsächlich Web Server und Browser.
Das SSL Protokoll bürgt für die Identität von Sender und Empfänger, sowie für die Vertraulichkeit und Vollständigkeit der
ausgetauschten Informationen. Eine ausführliche Beschreibung des SSL Protokolls finden Sie im Handbuch 4D
Programmiersprache im Abschnitt .
Mit dem SSL Protokoll können 4D Server und remote 4D mit größerer Sicherheit kommunizieren. 4D Server verwaltet die
Operationen zum Erstellen des Schlüssels, der Authentifizierung und der Datenintegrität eigenständig. Der Benutzer muss keine
weiteren Einstellungen vornehmen.
Hinweis: Das Verschlüsseln von Client und Server macht die Verbindung langsamer.
Einstellungen
Das SSL Protokoll wird in den Netzwerkkomponenten integriert und zwar zwischen dem TCP/IP Protokoll (niedere Ebene) und dem
Protokoll auf hoher Ebene.
Um SSL in einer “klassischen” Client/Server-Architektur einzusetzen, achten Sie darauf, dass die Datei 4DSLI.DLL auf dem
4D Server Rechner sowie auf jedem Client Rechner korrekt installiert ist. Das ist die Schnittstelle für die gesicherte Ebene
(Secured Layer Interface) zum Verwalten von SSL. Diese Datei muss an folgender Stelle liegen:
unter Windows: Neben den ausführbaren Dateien der 4D und 4D Server Anwendungen.
auf Mac OS: Im Unterordner [4D Extensions] der Software-Pakete von 4D und 4D Server.
Diese Datei wird standardmäßig installiert.
Dagegen ist die Verschlüsselung der 4D Server Verbindungen standardmäßig deaktiviert. Sie können diese in den DatenbankEigenschaften auf der Seite Client-Server aktivieren. Markieren Sie dazu im Bereich "Client-Server Kommunikation" die Option
Verschlüsselte Client/Server Verbindungen (siehe Einstellungen zur Konfiguration).
Diese Option ist standardmäßig nicht markiert. Markieren Sie diese, wird sie erst nach Beenden und Neustart von 4D Server aktiv.
Alle remote 4D Arbeitstationen melden sich dann im gesicherten Modus an.
4D Client Verbindung im gesicherten Modus
Eine im gesicherten Modus (SSL) veröffentlichte Datenbank ist im Verbindungsdialog auf der Seite Verfügbar mit einem Circumflex
(^) gekennzeichnet:
Hinweis: Erscheint die Datenbank im Verbindungsdialog nicht automatisch, kann der Benutzer auf der Seite Angepasst ihren
Namen eingeben (siehe Abschnitt und Einstellungen zur Veröffentlichung). In diesem Fall muss ein Circumflex (^) vor den
Datenbanknamen gesetzt werden. Andernfalls wird die Verbindung zurückgewiesen.
Ordner Resources verwalten
Der Ordner Resources der Datenbank ermöglicht, eigene Daten auf dem Server-Rechner und allen Client-Rechnern gemeinsam
zu nutzen, z.B. Bilder, Dateien, Unterordner. Auf der Server-Seite muss der Ordner Resources nur neben der Strukturdatei der
Datenbank liegen.
Alle diesem Ordner zugewiesenen Referenzmechanismen werden im Client/Server Modus unterstützt (Ordner .lproj, XLIFF, Bilder,
etc.). Weitere Informationen dazu finden Sie im Handbuch 4D Designmodus.
Jeder Client hat eine lokale Kopie dieses Ordners. Der Inhalt wird, immer wenn sich der Client anmeldet, mit dem Ordner auf dem
Server automatisch abgeglichen.
Darüberhinaus können Client-Rechner während einer Arbeitssitzung automatisch eine Meldung erhalten, wenn ein Entwickler den
Inhalt des Ordners Resources in der Server Datenbank verändert. Die Meldung kann folgendermaßen erfolgen:
Automatisch vom Server, zwei Minuten nach der letzten Änderung durch einen Client. Dieser Zeitversatz verhindert unnötige
Meldungen, wenn z.B. viele Dateien kopiert werden.
Manuell über den Befehl Clients benachrichtigen im Menü Aktion des Ressourcen Explorers auf dem Client-Rechner, von
dem die Änderung ausgeht.
Per Programmierung über den Befehl NOTIFY RESOURCES FOLDER MODIFICATION. Dieser Befehl ist hilfreich, wenn
der Inhalt des Ordners Resources auf dem Server-Rechner über eine Serverprozedur geändert wird.
Auf der Client-Seite richtet sich die Ausgabe der Meldung nach der Option "'Resources-Ordner' während einer Arbeitssitzung
aktualisieren", die in den Einstellungen der Datenbank definiert wurde. Dies lässt sich auch individuell über den Befehl einrichten.
Es gibt drei Möglichkeiten: Nie, immer oder Fragen. Weitere Informationen dazu finden Sie im Abschnitt und in der Beschreibung
zum Befehl . Über den Befehl Lokale Ressourcen aktualisieren im Menü Aktion des Ressourcen Explorer kann jeder Client den
Abgleich mit dem Server auch selbst ausführen. Weitere Informationen dazu finden Sie im Handbuch 4D Designmodus.
Hinweis zur Kompatibilität: In bisherigen Versionen von 4D Server erfolgte die Übertragung eigener Daten über den Ordner
Extras, der neben der Strukturdatei lag. Dieser Ordner ist obsolet und sollte nicht mehr verwendet werden. Zur Wahrung der
Kompatibilität mit vorhandenen Anwendungen unterstützt 4D Server diesen Ordner jedoch weiterhin.
Datenbank als Dienst registrieren
Sie können 4D Server als Dienst unter Windows starten.
Hinweis zur Kompatibilität: Diese Funktion ist ab Version 12 von 4D Server auf Mac OS nicht mehr verfügbar.
Eine 4D Server Anwendung, die als Dienst registriert ist, wird beim Starten des Rechners automatisch mit der aktuellen Datenbank
hochgefahren, und zwar noch vor Öffnen einer Benutzersitzung. Die Anwendung wird nicht geschlossen, wenn der Benutzer die
Sitzung beendet.
Diese Vorgehensweise sorgt dafür, dass die 4D Server Datenbank auch bei einem Zwischenfall verfügbar bleibt, der den Neustart
des Rechners erfordert. Die Wartung kann aus der Ferne erfolgen.
Hinweise:
Auf einer Windows Plattform mit 64 Bit wird eine 4D Server Anwendung, die als Dienst registriert ist, ohne Oberfläche
ausgeführt, d.h. das Server Verwaltungsfenster erscheint nicht.
Weitere Informationen zum Steuern von Services finden Sie in der Dokumentation Ihres Betriebssystems.
Um die 4D Server Datenbank als Service zu registrieren, wählen Sie im 4D Server Menü Datei/Ablage den Befehl Als Service
registrieren. Beim nächsten Hochfahren des Rechners wird 4D Server automatisch gestartet und die aktuelle Datenbank geöffnet.
Sie können beliebig viele Datenbanken registrieren, jedoch immer nur eine Instanz pro Datenbank.
Hinweis: Unter Windows Vista und Windows 7 kann dieser Befehl in Grauschrift sein, wenn der Zugriff auf die Funktionen zur
Service-Verwaltung eingeschränkt ist. Damit Sie diesen Befehl verwenden können, müssen Sie folgendes ausführen:
Starten Sie 4D Server auf Administrator-Ebene. Klicken Sie dazu auf das Programm-Icon und wählen im Kontext-Menü den
Befehl Als Administrator ausführen oder
Deaktivieren Sie in der Systemsteuerung in den Einstellungen für Benutzerkonten "User Account Control (UAC)". Unter
Windows 7 wählen Sie die Option "Nie benachrichtigen"; unter Windows Vista deaktivieren Sie die Option
"Benutzerkontensteuerung verwenden, um zum Schutz des Computers beizutragen").
Wichtig: Stellen Sie sicher, dass Sie beim Öffnen einer Sitzung ein gültiges Benutzerkonto mit Zugriff auf einen Drucker
verwenden, andernfalls erscheint eine Fehlermeldung. Der Zugriff auf Einstellungen von Diensten erfolgt in der Regel über das
Verwaltungsprogramm Dienste in Ihrer Systemsteuerung.
Um die Registrierung einer Datenbank aufzuheben, wählen Sie im Menü Datei/Ablage von 4D Server den Befehl
Registrierung für aktuelle DB aufheben. Dieser Befehl erscheint in Grauschrift, wenn die Datenbank nicht als Dienst
registriert ist.
Um die Registrierung aller Datenbanken aufzuheben, wählen Sie im Menü Datei/Ablage von 4D Server den Befehl Alle
Server Registrierungen aufheben. Dieser Befehl erscheint in Grauschrift, wenn die Datenbank nicht als Dienst registriert
ist.
Startet die Anwendung beim Öffnen als Dienst, können Sie diesen Status nicht in 4D Server ändern; die drei Menübefehle sind
inaktiv. Um den Dienst zu stoppen, rufen Sie über das Verwaltungsprogramm Dienste in Ihrer Systemsteuerung auf.
Logischen Spiegel einrichten
4D Server enthält eine integrierte Lösung, um ein Backup-System durch logisches Spiegeln einzurichten. Dafür gibt es die beiden
Routinen New log file und INTEGRATE LOG FILE.
Was ist ein logischer Spiegel?
Ein logischer Spiegel ist ein ausgeklügeltes Backup-System, das besonders für kritische Datenbanken oder solche im 24-Stunden
Betrieb sinnvoll ist.
Bei einem logisches Spiegel läuft die Datenbank auf einem Rechner. Eine Kopie dieser Datenbank wird auf einem 2. Rechner
gehalten und in bestimmten Zeitabständen aktualisiert. Beide Rechner kommunizieren über das Netzwerk miteinander. Der
Rechner im laufenden Betrieb überträgt über das Logbuch alle Änderungen in der Datenbank an den Spiegelrechner.
So kann bei einem Zwischenfall die Spiegeldatenbank zum raschen Wiederherstellen von Daten und Operationen dienen, ohne
dass Daten verloren gehen. Außerdem wird die laufende Datenbank nie durch Backup-Operationen blockiert.
Warum Backup durch logisches Spiegeln?
Die Verwendung eines logischen Spiegels ist nur für spezifische Situationen sinnvoll. In den meisten Fällen reicht die
standardmäßige Strategie aus, d.h. die periodische Sicherung und das Mitlaufen eines Logbuchs. Das ist eine einfache,
zuverlässige und kostengünstige Lösung. Die Datenbank wird regelmäßig gesichert, im allgemeinen alle 24 Stunden. Während
dem Backup steht die Datenbank im Nur-Lesen Modus zur Verfügung. Diese Einschränkung ist jedoch nur von kurzer Dauer. Sie
dauert selbst bei umfangreichen Datenbanken mit mehr als 2 GB gerade mal 5 Minuten. Das Backup lässt sich auch so
programmieren, dass es außerhalb der normalen Betriebszeiten der Datenbank durchgeführt wird.
Für bestimmte Bereiche, z.B. Krankenhäuser, ist als Sicherungsmethode jedoch ein logischer Spiegel angebracht. Denn hier
müssen kritische Datenbanken im 24-Stunden Betrieb laufen. Sie können nicht im Nur-Lesen Modus sein, nicht einmal für eine
kurze Zeitspanne.
Hinweis: Die Spiegeldatenbank gibt nur Änderungen an den Daten wieder. Sie ist für Datenbanken in der Entwicklungsphase
nicht geeignet. Der Spiegel wäre aufgrund häufiger Änderungen an der Struktur schnell überholt. Die Struktur der Spiegeldatenbank
müsste laufend aktualisiert werden.
Funktionsweise
Das Sicherungssystem für logisches Spiegeln wird mit den beiden Routinen New log file und INTEGRATE LOG FILE verwaltet.
Weitere Informationen dazu finden Sie im Handbuch 4D Programmiersprache im Kapitel .
Es funktioniert folgendermaßen:
Die Datenbank für den laufenden Betrieb wird auf dem 4D Server Hauptrechner eingerichtet, ein Duplikat der Datenbank wird
auf dem Spiegelrechner installiert.
Über einen Test beim Starten des Programms, z.B. Suchen nach einer bestimmten Datei im Ordner 4D Extensions, wird
zwischen den beiden Versionen unterschieden (in Betrieb und Spiegel), um die jeweils passenden Operationen auszuführen.
Auf dem 4D Server Rechner in Betrieb wird das Logbuch über die Funktion New log file in regelmäßigen Abständen
“segmentiert”. Da auf dem Hauptrechner kein Backup ausgeführt wird, bleibt die Datenbank ununterbrochen im LesenSchreiben Modus verfügbar.
Jedes “Segment” des Logbuchs wird an den Spiegelserver gesendet und über den Befehl INTEGRATE LOG FILE in die
Spiegeldatenbank integriert.
Für dieses System ist spezifischer Programmiercode erforderlich. Folgendes wird benötigt:
Ein Timer auf dem Hauptserver, der die Ausführungsphasen der Funktion New log file verwaltet,
Ein Übertragungssystem für die “Segmente” des Logbuchs zwischen dem laufenden Rechner und dem Spiegelrechner. Das
können 4D Internet Befehle für die Übertragung via FTP oder E-Mail, Web-Services, o.ä. sein.
Ein Prozess auf dem Spiegelserver, der das Eintreffen neuer Segmente des Logbuchs überwacht und diese über den Befehl
INTEGRATE LOG FILE integriert,
Ein System zur Kommunikation und Fehlerverwaltung zwischen dem Hauptserver und dem Spiegelserver.
Warnung: Das Backup durch logisches Spiegeln ist nicht mit den anderen Backup-Arten kompatibel, da die gleichzeitige
Verwendung von zwei Systemen zu einer Desynchronisierung der laufenden und der Spiegeldatenbank führen würde. Sie müssen
also sicherstellen, dass auf dem Hauptrechner keine Backups ausgeführt werden, sei es automatisch oder manuell. Es ist jedoch
möglich, ein Backup von der Spiegeldatenbank zu erstellen (siehe nächser Absatz).
Backup einer Spiegeldatenbank
Über 4D Server lassen sich Backups der Datenbank auf dem Spiegelrechner ausführen.
Auf dem Spiegelrechner sind alle gängigen Verfahren möglich: manuelle Backups über den Befehl im Menü Datei/Ablage,
geplante Backups in den Einstellungen der Datenbank oder programmierte Backups über Befehle der 4D Programmiersprache.
Um eine mögliche Desynchronisation mit dem Hauptrechner zu vermeiden, sperrt 4D automatisch den Spiegelrechner bei einer
der beiden Grundoperationen: Integration des Logbuchs aus dem Hauptrechner und Backup des Spiegelrechners.
Wird gerade ein Logbuch integriert, lässt sich kein Backup ausführen. Wird der Befehl BACKUP verwendet, wird der Fehler
1417 erzeugt (siehe Abschnitt ).
Läuft gerade ein Backup, werden alle Prozesse eingefroren und es ist unmöglich, die Integration eines Logbuchs zu starten.
Ablauf beim logischen Spiegeln
Nachfolgende Übersicht zeigt den Ablauf beim Einrichten des Backup-Systems logisches Spiegeln für beide 4D Server Rechner:
4D Server Verwaltungsfenster
Seite Monitor
Seite Anwender
Seite Prozesse
Seite Wartung
Seite Anwendungsserver
Seite SQL Server
Seite HTTP Server
Seite Monitor
4D Server enthält ein Verwaltungsfenster, das leicht verständlich und benutzerfreundlich ist. Es bietet verschiedene Werkzeuge zum
Analysieren und Steuern von veröffentlichten Anwendungen. Es besteht aus mehreren Seiten, die Sie über die Schaltflächen am
oberen Rand aufrufen können:
Jede Seite wird in diesem Kapitel in einem eigenen Abschnitt beschrieben.
Hinweis: Auch remote 4D Rechner können auf das Verwaltungsfenster zugreifen. Weitere Iinformationen dazu finden Sie im
Abschnitt Administration über Remote Rechner.
Die Seite Monitor zeigt dynamische Angaben zur verwendeten Datenbank, sowie Informationen zum System und der 4D Server
Anwendung:
Hinweis: Unter Windows richtet sich die Anzeige nach den Zugriffsrechten des Benutzers, der die Arbeitssitzung geöffnet hat.
Weitere Informationen dazu finden Sie im Abschnitt “Anzeige der Monitor Information (Windows)”.
Grafische Darstellung
Hier sehen Sie in Echtzeit das Ablaufen der Parameter CPU Nutzung, Netzwerkverkehr und Speicher. Über das DropDown-Menü in
der Mitte des Fensters können Sie den jeweiligen Parameter auswählen:
CPU Nutzung: Hier sehen Sie in Echtzeit das Ablaufen der Parameter CPU Nutzung, Netzwerkverkehr und Speicher. Über
das DropDown-Menü in der Mitte des Fensters können Sie den jeweiligen Parameter auswählen.
Netzwerk: Anzahl Bytes, die pro Sekunde von 4D Server empfangen werden.
Die von 4D Server gesendete Anzahl Bytes erscheint im Bereich "Netzwerk".
Speicher: Anteil des RAM Speichers, den 4D Server auf dem Rechner nutzt.
Die genaue Übersicht des verwendeten Speichers erscheint im Bereich "Speicher".
Überblick
Dieser Bereich enthält Informationen zum System, zur Version und zu den Lizenzen, die auf dem 4D Server Rechner installiert sind.
Details
Der Bereich "Details" wiederholt einige Angaben aus dem grafischen Teil und zeigt zusätzliche Informationen.
Festplatte: Gesamte Kapazität der Festplatte und Anteile, die die Daten der Datenbank (Datendatei + Datenindex) und
andere Dateien benutzen, sowie verfügbarer freier Speicherplatz.
Speicher: RAM Speicher des Rechners und Anteile, die 4D Server bzw. andere Programme nutzen, sowie freier Platz.
Der von 4D Server genutzte Speicherplatz lässt sich im grafischen Bereich auch dynamisch anzeigen.
Prozessoren: Anteile, die 4D Server und andere Programme momentan für Prozessoren auf dem Rechner belegen. Diese
Rate wird laufend neu berechnet.
Die von 4D Server genutzte Auslastung lässt sich im grafischen Bereich auch dynamisch anzeigen.
Netzwerk: Anzahl Bytes, die 4D Server momentan vom Netzwerk erhält und Anzahl Bytes, die das Programm versendet.
Dieser Wert wird laufend aktualisiert.
Die von 4D Server empfangenen Bytes lassen sich im grafischen Bereich auch dynamisch anzeigen.
Anzeige der Monitor Information (Windows)
Einige Systeminformationen von der Seite Monitor lassen sich auch über das Werkzeug "Leistung" der Windows-Verwaltung
anzeigen. Es steht jedoch nur zur Verfügung, wenn der Benutzer, der die Arbeitssitzung auf 4D Server geöffnet hat, die
entsprechende Berechtigung hat. Er muss:
entweder zur Gruppe "Administratoren" gehören,
unter Windows Vista zur Gruppe "Hauptbenutzer" gehören (für einen Benutzer, der nicht Administrator ist)
Um einen Benutzer, der nicht Administrator ist, unter Windows Vista in die Gruppe "Hauptbenutzer" aufzunehmen:
1. Gehen Sie in den Bereich Systemsteuerung und öffnen die Option "Benutzerkonten".
2. Klicken Sie auf die Registerkarte "Erweitert", dann im Bereich "Erweiterte Benutzerverwaltung" auf die Schaltfläche
3.
4.
5.
6.
7.
"Erweitert".
Die Option "Lokale Benutzer und Gruppen" wird aktiviert.
Doppelklicken Sie auf den Ordner "Gruppen".
Doppelklicken Sie auf den Ordner "Hauptbenutzer".
Auf dem Bildschirm erscheint das Fenster "Eigenschaften von Hauptbenutzern"
Klicken Sie auf die Schaltfläche Hinzufügen, um einen Benutzer hinzuzufügen.
Geben Sie im Textbereich "Geben Sie die zu verwendenden Objektnamen ein" die Benutzernamen ein, die Sie authorisieren
möchten.
Klicken Sie in den Dialogfenstern jeweils auf die Schaltfläche OK (zweimal).
Schließen Sie das Dialogfenster "Lokale Benutzer und Gruppen", dann das Fenster "Benutzerkonten.
Seite Anwender
Die Seite Anwender zeigt die Liste der 4D Benutzer, die an die Datenbank angemeldet sind:
Die Schaltfläche "Anwender" zeigt in Klammern die Gesamtanzahl der Benutzer, die an die Datenbank angemeldet sind. Diese
Nummer berücksichtigt keine Anzeigefilter, die auf das Fenster angewendet werden.
Diese Seite enthält auch einen dynamischen Suchbereich und Schaltflächen zum Steuern.
Sie können die Anordnung der Spalten durch Markieren und Ziehen des Titelbereichs verändern. Sie können auch die Werte in den
Spalten durch Klicken in den Titelbereich sortieren:
Klicken Sie mehrmals, um aufsteigend/absteigend zu sortieren
Liste der Anwender
Für jeden angemeldeten Benutzer erscheinen folgende Informationen:
System: Typ des Client Rechners (Mac OS oder Windows) als Icon.
4D Anwender: Name der 4D Anwender. Sind keine Kennwörter aktiviert, haben alle Benutzer den Namen "Designer."
Rechner: Name des Client Rechners.
Session-Name: Name der Arbeitssitzung, die auf dem Client Rechner geöffnet wird.
IP Adresse : IP Adresse des Client Rechners.
Anmeldedatum: Anmeldedatum und -uhrzeit des Client Rechners.
CPU Zeit: CPU Zeit, die der Anwender seit der Anmeldung verbraucht hat.
Aktivität: Zeitspanne, die 4D Server diesem Benutzer widmet (dynami-sche Anzeige).
Bereich Suchen/Filtern
Hier können Sie die angezeigten Zeilen in der Liste auf den im Suchbereich eingegebenen Text beschränken. Er gibt die Spalten
an, in denen Suchen/Filtern ausgeführt wird. Das sind auf der Seite Anwender die Spalten Anwender; Rechner und Session.
Die Liste wird unmittelbar aktualisiert, wenn Sie Text im Bereich eingeben.
Sie können auch mehrere Werte, getrennt durch Strichpunkt, eingeben. Dann wird zum Filtern der Operator ODER verwendet.
Geben Sie z.B. "Hans;Susi;Petra," ein, werden in den Zielspalten nur Zeilen mit Hans ODER Susi ODER Petra beibehalten.
Schaltflächen zum Verwalten
Der untere Bereich enthält drei Schaltflächen. Sie sind aktiv, wenn mindestens eine Zeile ausgewählt ist. Mit gedrückter
Großschreibtaste können Sie zusammenhängende Zeilen, mit gedrückter Strg-Taste unter Windows, Befehlstaste auf Mac OS
nicht-zusammenhängende Zeilen auswählen.
Nachricht senden: Damit senden Sie eine Meldung an die in der Liste ausgewählten 4D Benutzer. Ist kein Benutzer
markiert, ist diese Schaltfläche nicht aktiv.
Klicken Sie auf diese Schaltfläche, erscheint ein Dialogfenster zum Eingeben der Meldung.
Es zeigt die Anzahl der Benutzer an, die diese Meldung erhalten werden:
Auf den Client Rechnern erscheint folgende Meldung am unteren Rand:
Prozesse überwachen:
Damit können Sie direkt die Prozesse der gewählten Benutzer auf der Seite Prozesse im Verwaltungsfenster anzeigen.
Klicken Sie auf diese Schaltfläche, wechselt 4D Server auf die Seite Prozesse und gibt die ausgewählten Benutzernamen im
Bereich Suchen/Filtern dieser Seite ein. Weitere Informationen dazu finden Sie im nächsten Abschnitt.
Anwender abmelden: Damit können Sie den/die ausgewählten Benutzer direkt abmelden.
Klicken Sie auf diese Schaltfläche, erscheint eine Meldung, um die Operation zu bestätigen oder abzubrechen.
Hinweis: Sie können den/die gewählten Benutzer auch direkt abmelden, d.h. ohne Dialog zum Bestätigen. Klicken Sie dazu unter
Windows mit gedrückter Alt-Taste, auf Mac OS mit gedrückter Wahltaste auf diese Schaltfläche.
Seite Prozesse
Die Seite Prozesse listet alle Prozesse in Betrieb auf:
Die Schaltfläche "Prozesse" gibt in Klammern die Gesamtanzahl der in der Datenbank laufenden Prozesse an. Diese Nummer
berücksichtigt weder Anzeigefilter, die auf das Fenster angewandt werden, noch den Status der Option Prozesse gruppiert
anzeigen.
Sie können die Anordnung der Spalten durch Markieren und Ziehen des Titelbereichs verändern. Sie können auch die Werte in den
Spalten durch Klicken in den Titelbereich sortieren.
Diese Seite enthält, wie die Seite Anwender, einen dynamischen Bereich zum Suchen/Filtern. Hier können Sie die angezeigten
Zeilen in der Liste auf den im Suchbereich eingegebenen Text beschränken. Er gibt die Spalten an, in denen Suchen/Filtern
ausgeführt wird. Das sind auf der Seite Prozesse die Spalten Session und Prozessname.
Darunter gibt es auch drei Schaltflächen, um die Anzeige der Prozesstypen zu filtern:
Anwender Prozesse: Prozesse, die durch und für Benutzersitzungen erzeugt werden. Sie sind mit dem Icon
gekennzeichnet.
4D Prozesse: Prozesse, die von der 4D Server Engine erzeugt werden. Sie sind mit dem Icon .
Reserve Prozesse: Inaktive Prozesse, die temporär beibehalten werden und jederzeit wieder verwendbar sind. Das
optimiert die Reaktionszeit von 4D Server. Sie sind mit dem jeweiligen Icon in Grau gekennzeichnet.
Mit der Option Prozesse gruppiert anzeigen können Sie die internen Prozesse von 4D Server und die Client-Prozesse für eine
bessere Lesbar-keit gruppieren. Markieren Sie diese Option, passiert folgendes:
Die 4D Client „Zwillingsprozesse“ (4D Client Hauptprozess und 4D Client Datenbank-Prozess - siehe Abschnitt
“Prozesstypen”) werden zu einem Prozess gruppiert,
Eine Gruppe „Task Managers“ wird angelegt; sie enthält die internen Prozesse, die die einzelnen Tasks aufteilen (Shared
balancer, Net session manager, Exclusive pool worker),
Eine Gruppe „Client Managers“ wird angelegt; sie enthält verschiedene interne Client Prozesse.
Der untere Bereich stellt die Aktivität des/der gewählten Prozesse in grafischer Form dar:
Hinweis: Sie können auch mehrere Zeilen auswählen. Mit gedrückter Großschreibtaste wählen Sie zusammenhängende Zeilen,
mit gedrückter Strg-Taste unter Windows, Befehlstaste auf Mac OS nicht-zusammenhängende Zeilen aus.
Die Aktivität des Prozesses ist die Zeit in Prozent, die 4D Server diesem Prozess widmet (ratio).
Das Fenster zeigt, wie in bisherigen Versionen von 4D Server, für jeden Prozess folgende Informationen:
Prozesstyp (siehe unten),
Session (bei einem 4D Prozess leer, zeigt bei einem Anwenderprozess den Namen des 4D Benutzers),
Prozessname,
Prozessnummer (z.B. von der Funktion New process zurückgegeben) Prozessnummer ist die Nummer, die auf dem Server
zugewiesen wird. Bei einem globalen Prozess kann diese Nummer anders sein, als die Nummer, welche auf dem ClientRechner zugewiesen ist.
Aktueller Status des Prozesses,
Laufzeit des Prozesses (in Sekunden) seit seiner Erstellung,
Zeit in Prozent, die 4D Server diesem Prozess widmet (ratio).
Prozesstypen
Jedem Prozess ist ein Icon zugeordnet, seine Farbe und Form kennzeichnen die Art des Prozesses
Anwendungsserver
SQL Server
DB4D Server (Datenbank-Engine)
Web Server
SOAP Server
Sperrender 4D Client Prozess (Prozess bei der Entwicklung über ein angemeldetes 4D)
4D Client Prozess (globaler Prozess eines angemeldeten 4D), Spiegelprozess eines 4D Client am Server
4D Client Datenbank-Prozess (Prozess existiert parallel zu einem 4D Client Prozess. Präemptiver Prozess zur Kontrolle des
jeweiligen 4D Client Hauptprozesses)
Reserve Prozess (wiederverwendbarer ehemaliger 4D Client Prozess)
4D Client Prozess (Prozess, der auf dem angemeldeten 4D läuft)
Serverprozedur (Prozess, der von einem angemeldeten 4D gestartet wurde und auf dem Server läuft)
Web Client Prozess (z.B. mit 4DACTION gestartet)
SOAP Client Prozess (über einen Web Dienst gestartet)
SQL Client Prozess (über eine SQL Anfrage gestartet)
Hinweis: Jeder 4D Client Hauptprozess und sein „Zwilling“ 4D Client Datenbank-Prozess werden zusammengelegt, wenn die
Option Prozesse gruppiert anzeigen markiert ist.
Schaltflächen zum Verwalten
Der untere Bereich enthält fünf Schaltflächen, die bei ausgewählten Prozessen aktiv werden. Beachten Sie jedoch, dass sie nur für
Anwen-derprozesse gelten.
Prozess löschen: Damit können Sie den/die gewählten Prozesse löschen. Klicken Sie auf die Schaltfläche, erscheint ein
Dialogfenster mit einer Meldung, um die Operation zu bestätigen oder zu annullieren.
Hinweis: Sie können den/die gewählten Prozesse auch direkt löschen, d.h. ohne Dialog zum Bestätigen. Klicken Sie dazu
unter Windows mit gedrückter Alt-Taste, auf Mac OS mit gedrückter Wahltaste auf diese Schaltfläche.
Prozess anhalten: Damit können Sie den/die gewählten Prozesse anhalten.
Prozess fortsetzen: Damit können Sie den/die gewählten Prozesse wieder aktivieren. Dazu muss der Prozess zuvor
angehalten worden sein, entweder über die Schaltfläche oder per Programmierung. Sonst hat die Schaltfläche keine
Auswirkung.
Prozess debuggen: Damit können Sie auf dem Server Rechner ein oder mehrere Debugger Fenster für den/die gewählten
Prozesse öffnen. Klicken Sie auf die Schaltfläche, erscheint ein Dialogfenster, um die Operation zu bestätigen oder zu
annullieren.
Das Debugger Fenster wird nur angezeigt, wenn der 4D Code gerade auf dem Server Rechner ausgeführt wird, z.B. im
Rahmen eines Triggers oder beim Ausführen einer Methode mit dem Attribut "Auf Server ausführen".
Hinweis: Sie können einen Prozess auch direkt debuggen, d.h. ohne das Dialogfenster zum Bestätigen anzuzeigen. Klicken
Sie dazu unter Windows mit gedrückter Alt-Taste, auf Mac OS mit gedrückter Wahltaste auf die Schaltfläche.
Anwender beobachten: Damit können Sie auf der Anwenderseite alle Prozesse des/der gewählten Benutzer anzeigen.
Diese Schaltfläche ist aktiv, wenn mindestens ein Anwenderprozess ausgewählt wurde.
Seite Wartung
Die Seite Wartung zeigt Informationen zur aktuellen Operation der Datenbank und bietet Zugriff auf die wichtigsten
Wartungsfunktionen:
Letzte Prüfung: Dieser Bereich zeigt Datum, Uhrzeit und Status der zuletzt ausgeführten Überprüfung der Anwendung.
Weitere Informationen dazu finden Sie im Handbuch 4D Designmodus.Über die Schaltfläche Prüfe Datensätze und Indizes
können Sie die Überprüfung direkt starten, ohne den Server zu unterbrechen. Bedenken Sie jedoch, dass dies u.U. den
Server-Betrieb signifikant verlangsamen kann.
Alle Datensätze und alle Indizes der Datenbank werden überprüft. Für eine gezielte Überprüfung oder weitere Optionen
müssen Sie das Maintenance- und Security-Center (MSC) aufrufen
Nach der Prüfung wird auf dem Server im Ordner Logs (neben der Strukturdatei der Anwendung) ein Bericht im Format XML
und HTML angelegt. Über die Schaltfläche Zeige Logbuch können Sie den Bericht in Ihrem Browser anzeigen. Wird die
Operation auf einem Client Rechner ausgeführt, lautet sie Logbuch laden.
Letzte Komprimierung: Dieser Bereich zeigt Datum, Uhrzeit und Status der zuletzt ausgeführten Komprimierung der
Anwendung. Weitere Informationen dazu finden Sie im Handbuch 4D Designmodus.
Über die Schaltfläche Komprimiere Daten können Sie die Komprimierung der Daten direkt starten. Für diese Operation
muss der Server jedoch beendet werden. Klicken Sie auf diese Schaltfläche, erscheint das Dialogfenster zum Abmelden, wo
Sie festlegen können, wie der Server-Betrieb beendet wird:
Weitere Informationen zu diesem Dialogfenster finden Sie im Abschnitt 4D Server beenden.
Wurde die Anwendung unterbrochen, führt 4D Server eine standardmäßige Komprimierung der Daten aus. Für weitere Optionen
müssen Sie das Maintenance- und Security-Center (MSC) aufrufen.
Nach dem Komprimieren startet 4D Server die Anwendung automatisch neu. Die 4D Anwender können dann wieder
angeschlossen werden.
Hinweis: Wurde die Anfrage zur Komprimierung von einem Remote 4D Client Rechner ausgeführt, meldet 4D Server diesen
Rechner automatisch wieder an.
Auf dem Server wird im Ordner Logs (neben der Strukturdatei der Anwendung) ein Bericht im Format XML und HTML angelegt.
Über die Schaltfläche Zeige Logbuch können Sie den Bericht in Ihrem Browser anzeigen. Wird die Operation auf einem Client
Rechner ausgeführt, lautet sie Logbuch laden.
Uptime: Dieser Bereich zeigt die Dauer des Server-Betriebs seit dem letzten Start in Tagen, Stunden und Minuten.
Über die Schaltfläche Server neu starten können Sie den Server sofort neu starten. Klicken Sie auf diese Schaltfläche,
erscheint das Dialogfenster zum Abmelden, wo Sie festlegen können, wie der Server-Betrieb unterbrochen wird
Nach dem Neustart startet 4D Server die Anwendung automatisch neu. Die 4D Anwender können dann wieder
angeschlossen werden.
Hinweis: Wurde die Anfrage zum Neustart von einem Remote Client Rechner ausgeführt, meldet 4D Server diesen Rechner
automatisch wieder an.
Letztes Backup: Dieser Bereich zeigt Datum und Uhrzeit des letzten automatischen Backup der Anwendung und meldet,
wann das nächste Backup geplant ist. Automatische Backups richten Sie in den Einstel-lungen der Anwendung auf der Seite
Backup>Planer ein.
- Nächstes Backup: Datum und Uhrzeit des nächsten automatischen Backup.
- Benötigter Platz: Geschätzter Platz, der für das Backup benötigt wird. Die aktuelle Größe der Backup-Datei kann je nach
den Einstellungen (Komprimierung, etc.) und den Veränderungen der Datendatei unterschiedlich sein.
- Verfügbarer Platz: Platz, der auf dem Backup Volume verfügbar ist
Über die Schaltfläche Starte Backup können Sie sofort ein Backup der Anwendung mit den aktuellen Backup Einstellungen
(Backup-Inhalt, Zielverzeichnis, etc.) durchführen. Um die Einstellungen anzusehen, klicken Sie auf die Schaltfläche
Voreinstellungen. Während dem Backup auf dem Server werden die Client-Rechner blockiert, aber nicht abgekoppelt.
Neue Clients können sich in dieser Zeit nicht anmelden.
Request-Logbuch: Dieser Bereich zeigt die Dauer der Protokollierung von Anfragen, die der Server empfängt (ohne Web
Anfragen). Das Request-Logbuch speichert Zeit, Prozessnummer, Anwender, Größe der Anfrage, Prozesszeit, etc.. Diese
Daten dienen zur Analyse der Server- Operationen. Das Logbuch hat den Namen 4DRequestsLog_X, wobei X die
fortlaufende Nummer der Datei ist, und wird im Ordner Logs der Anwendung abgelegt. Bei einer Größe von 10 MB wird es
geschlossen und ein neues Logbuch mit der nächsthöheren Nummer angelegt.
Über die Schaltfläche Starte Request-Logbuch können Sie eine neue Datei erstellen und das Speichern der Anfragen
aktivieren. Da dies die Server-Leistung entscheidend beeinträchtigen kann, sollte die Operation nur in der
Entwicklungsphase der Anwendung ausgeführt werden. Ist das Request-Logbuch aktiviert, wechselt die Schaltfläche in Stopp
Request-Logbuch, so dass sich das Speichern der Anfragen jederzeit stoppen lässt. Bedenken Sie jedoch, dass erneutes
Starten des Request-Logbuchs die vorige Datei überschreibt.
Hinweis: Mit dem Befehl lässt sich das Request-Logbuch per Programmierung starten und stoppen.
Über die Schaltfläche Logbuch anzeigen können Sie ein Systemfenster öffnen, das diese Datei anzeigt. Wird die
Operation auf einem Client-Rechner ausgeführt, lautet die Schaltfläche Logbuch laden.
Seite Anwendungsserver
Die Seite Anwendungsserver enthält Informationen über die von 4D Server veröffentlichte Anwendung und ermöglicht, dies zu
steuern:
Status Information
Der obere Teil zeigt Informationen über den aktuellen Status des Anwendungsserver von 4D Server.
Status: Gestartet oder gestoppt.
Startzeit: Datum und Uhrzeit, zu der die Server-Anwendung gestartet wurde. Dieser Zeitpunkt entspricht dem Öffnen der
Anwendung durch 4D Server.
Uptime: Zeitspanne seit dem letzten Öffnen der Anwendung.
Schaltfläche Anmelden erlauben/verweigern
Diese Schaltfläche wechselt zwischen Anmeldung erlauben und Anmeldung verweigern. Damit wird der Zugriff neuer Client
Rechner auf den Anwendungsserver verwaltet.
Wird die Anwendung veröffentlicht, gilt standardmäßig folgendes:
Die Schaltfläche lautet "Anmelden verweigern."
Neue Clients können sich frei anmelden, soweit die erworbene Lizenz dies zulässt.
Der Datenbankname wird im Anmeldedialog angezeigt. Dazu muss in den Einstellungen der Anwendung auf der Seite
Anwendung>Optionen die Option "4D Server Verbindungsdialog anzeigen" ausgewählt sein.
Klicken Sie auf die Schaltfläche Anmelden verweigern:
Die Schaltfläche wechselt in "Anmelden erlauben".
Es kann sich kein neuer Client anmelden.
Der Name der Anwendung erscheint nicht mehr im Anmeldedialog.
Bereits angemeldete Clients werden nicht abgekoppelt und können normal weiterarbeiten.
Klicken Sie auf die Schaltfläche Anmelden erlauben, kehrt die Anwendung in den standardmäßigen Status zurück.
Diese Funktionalität ermöglicht dem Administrator z.B. verschiedene Wartungsoperationen, wie Überprüfen, Komprimieren, o.ä.,
direkt nach Starten des Servers auszuführen. Bei Verwendung einer Client-Verbindung kann er sicher sein, dass er der einzige ist,
der Daten verändert.
Er kann diese Funktionalität auch zur Vorbereitung von Wartungsarbeiten verwenden, für die kein Client Rechner angemeldet sein
darf.
Konfiguration
Dieser Bereich zeigt Informationen über die vom Server veröffentlichte 4D Anwendung: Name und Speicherort der Strukturdatei,
der Datendatei und des Logbuchs. Sie können auf den Namen der Strukturdatei oder Datendatei klicken, um den vollständigen
Pfadnamen zu sehen:
Der Bereich Modus zeigt den aktuellen Ausführungsmodus an, d.h. ob die Datenbank interpretiert oder kompiliert läuft.
Der untere Bereich zeigt die Parameter der Server-Konfiguration: Als Dienst gestartet, IP Adresse und Port und ermöglicht SSL für
Client/Server-Verbindungen (gilt weder für SQL noch Web Verbindungen).
Speicher
Dieser Bereich zeigt den Wert für Gesamter Cache-Speicher (definiert in den Einstellungen der Anwendung) und den Wert für
Benutzter Cache-Speicher (dynamische Zuweisung durch 4D Server nach Bedarf).
Maximale Verbindungen
Maximal zugelassene Anzahl gleichzeitig angemeldeter Clients. Dies richtet sich nach der Lizenz, die auf dem Server Rechner
installiert ist.
Seite SQL Server
Die Seite SQL Server enthält Informationen über den in 4D Server integrierten SQL Server und eine Schaltfläche zum Steuern der
Aktivierung:
Status Information
Der obere Teil zeigt Informationen über den aktuellen Status des SQL Server von 4D Server.
Status: Gestarted oder gestoppt
Startzeit: Datum und Uhrzeit, zu der der SQL Server gestartet wurde. Diese Angaben können sich vom Startzeitpunkt des
Anwendungsserver unterscheiden, wenn der SQL Server nicht gleichzeitig mitgestartet wird.
Uptime: Zeitspanne seit dem letzten Start des SQL Server.
Schaltfläche Start / Stop SQL Server
Diese Schaltfläche wechselt. Damit steuern Sie die Aktivierung des SQL Server von 4D Server.
Ist der Status des SQL Server "Gestartet", lautet die Schaltfläche Stop SQL Server. Klicken Sie auf die Schaltfläche, wird
der SQL Server von 4D Server sofort gestoppt; er antwortet nicht mehr auf externe SQL Anfragen, die auf dem angegebenen
TCP Port empfangen werden.
Ist der Status des SQL Server "Gestoppt," lautet die Schaltfläche Start SQL Server. Klicken Sie auf die Schaltfläche, wird
der SQL Server von 4D Server sofort gestartet; er antwortet auf externe SQL Anfragen, die auf dem angegebenen TCP Port
empfangen werden. Beachten Sie, dass Sie zum Nutzen des 4D SQL Server eine passende Lizenz benötigen.
Hinweis: Der SQL Server lässt sich auch automatisch beim Starten der Anwendung (Option in den Einstellungen der Anwendung)
oder per Program-mierung starten.
Konfiguration
Dieser Bereich zeigt Informationen über die Parameter des SQL Server: Automatisches Hochfahren beim Start, aktive IP Adresse,
TCP Port (standardmäßig 19812) und ermöglicht SSL für SQL-Verbindungen (gilt weder für 4D noch Web Verbindungen).
Diese Parameter lassen sich in den 4D Einstellungen der Anwendung verändern.
Verbindungen
Anzahl der aktuell auf 4D Server geöffneten SQL Verbindungen.
Maximale Verbindungen
Maximal zugelassene Anzahl gleichzeitiger SQL Verbindungen. Dies richtet sich nach der Lizenz, die auf dem Server Rechner
installiert ist.
Seite HTTP Server
Die Seite HTTP Server enthält Informationen über den Web Server und den SOAP Server von 4D Server und Schaltflächen zum
Steuern ihrer Aktivierung.
Der Web Server ermöglicht, Web Inhalt wie HTML Seiten oder Bilder für Web Browser zu veröffentlichen. Der SOAP Server steuert
das Veröffentlichen von Web Services. Beide Server gehören zum internen HTTP Server von 4D Server:
Status Information
Der obere Teil zeigt Informationen über den aktuellen Status des HTTP Server von 4D Server.
Status: Gestartet oder gestoppt
Startzeit: Datum und Uhrzeit, zu der der HTTP Server gestartet wurde. Diese Angaben können sich vom Startzeitpunkt des
Anwendungsserver unterscheiden, wenn der HTTP Server nicht gleichzeitig mitgestartet wird.
Uptime: Zeitspanne seit dem letzten Start des HTTP Server
HTTP Hit Gesamt: Anzahl der HTTP Hits (low level), die seit dem Start des HTTP Server empfangen wurden.
Schaltfläche Start / Stop HTTP Server
Diese Schaltfläche wechselt. Damit steuern Sie die Aktivierung des HTTP Server von 4D Server.
Ist der Status des HTTP Server "Gestartet", lautet die Schaltfläche Stop HTTP Server. Klicken Sie auf die Schaltfläche, wird
der HTTP Server von 4D Server sofort gestoppt; Web Server und SOAP Server akzeptieren keine Anfragen mehr.
Ist der Status des HTTP Server "Gestoppt," lautet die Schaltfläche Start HTTP Server. Klicken Sie auf die Schaltfläche, wird
der HTTP Server von 4D Server sofort gestartet; Web und SOAP Anfragen werden akzeptiert. Sie können den SOAP Server
auch separat stoppen. Weitere Informatio-nen dazu finden Sie im übernächsten Abschnitt “SOAP Information“.
Hinweise:
Beachten Sie, dass Sie zum Starten des HTTP Server eine passende Lizenz benötigen.
Der HTTP Server lässt sich auch automatisch beim Starten der Anwendung (Option in den Voreinstellungen) oder per
Programmie-rung starten.
Web Information
Dieser Bereich enthält spezifische Angaben zum Web Server von 4D Server.
Web Anfragen : Angenommen oder Verweigert. Diese Information zeigt, ob der Web Server aktiviert ist. Da der Web Server
direkt mit dem HTTP Server verbunden ist, werden Web Anfragen angenommen, wenn der HTTP Server gestartet ist und
verweigert, wenn er gestoppt ist.
Maximale Verbindungen: Maximale Anzahl der zugelassenen Web Verbindungen. Dieser Wert richtet sich nach der Lizenz,
die auf dem Ser-ver Rechner installiert ist.
SOAP Information
Dieser Bereich enthält spezifische Angaben zum SOAP Server von 4D Server sowie eine Schaltfläche zum Steuern der SOAP
Anfragen.
SOAP Anfragen : Angenommen oder Verweigert. Diese Information zeigt, ob der SOAP Server aktiviert ist. Damit SOAP
Anfragen angenommen werden, muss der SOAP Server gestartet sein und die Anfragen müssen explizit angenommen
werden (siehe Schaltfläche SOAP Anfra-gen annehmen/ablehnen).
Maximale Verbindungen: Maximale Anzahl der zugelassenen SOAP Verbindungen. Dieser Wert richtet sich nach der
Lizenz, die auf dem Server Rechner installiert ist.
SOAP Anfragen annehmen/ablehnen : Diese Schaltfläche wechselt. Damit steuern Sie die Aktivierung des SOAP Server
von 4D Server. Diese Schaltfläche ändert den Wert der Option Web Service Abfragen erlauben auf der Seite "Web
Services>SOAP" in den Einstellungen der Anwendung (und umgekehrt).
Klicken Sie auf die Schaltfläche SOAP Anfragen annehmen und wird der HTTP Server gestoppt, startet 4D ihn
automatisch.
HTTP Server Konfiguration
Dieser Bereich zeigt Informationen über die Konfiguration und Operation des HTTP Server:
Automatischer Start: Dies wird in den Voreinstellungen von 4D Server festgelegt.
HTTP Server Prozesse (benutzt/gesamt): Anzahl der HTTP Prozesse, die auf dem Server erstellt werden (aktuelle Anzahl
und gesamte Anzahl aller erstellten Prozesse).
Cache-Speicher: Größe des Cache Speichers des HTTP Server, wenn er aktiviert ist. (Der aktuell vom Cache verwendete
Platz und die Gesamtgröße werden in der Regel in den Voreinstellungen zugewiesen.).
Aktiv auf IP, TCP Port (standardmäßig 80), SSL aktiv für HTTP Verbindungen (nicht 4D oder SQL Verbindungen) und
verwendeter HTTPS Port: Aktuelle Konfigurationsparameter des HTTP Server, der in den Voreinstellungen auf der Seite
"Web>Konfiguration" angegeben ist. Weitere Informationen dazu finden Sie im Abschnitt .
Logbuch Information: Speicherort, Format und Datum des nächsten automatischen Logbuch Backup des HTTP Server
(Datei logweb.txt
Datenbankmethoden
Datenbankmethode On Server Startup
Datenbankmethode On Server Shutdown
Datenbankmethode On Server Open Connection
Datenbankmethode On Server Close Connection
Datenbankmethode On Server Startup
Die Datenbankmethode On Server Startup wird einmal auf dem Server-Rechner aufgerufen, wenn Sie eine Datenbank mit
4D Server öffnen. Die Datenbankmethode On Server Startup wird ausschließlich in der 4D Server Umgebung aufgerufen.
Die Datenbankmethode On Server Startup ist der richtige Ort, um:
Interprozessvariablen zu initialisieren, die Sie während der gesamten 4D Server Sitzung verwenden.
Serverprozeduren automatisch beim Öffnen der Datenbank zu starten.
Voreinstellungen bzw. Einstellungen, die während der letzten 4D Server Sitzung gesichert wurden, zu laden.
Durch explizites Aufrufen von QUIT 4D das Öffnen der Datenbank nicht zuzulassen, wenn eine Bedingung nicht erfüllt ist (z.B.
fehlende System-Ressourcen)
Weitere Aktionen auszuführen, die bei jedem Öffnen der Datenbank automatisch ablaufen sollen.
Um Code automatisch auf einem Client-Rechner auszuführen, wenn sich ein remote 4D am Server anmeldet, verwenden Sie die
Datenbankmethode On Server Startup.
Hinweis: Die Datenbankmethode On Server Startup wird automatisch ausgeführt, d.h. ein remote 4D kann sich erst anmelden,
wenn die Ausführung der Methode abgeschlossen ist.
Datenbankmethode On Server Shutdown
Die Datenbankmethode On Server Shutdown wird einmal auf dem Server-Rechner aufgerufen, wenn die aktuelle Datenbank
auf dem Server beendet wird. Diese Datenbankmethode wird ausschließlich in der 4D Server Umgebung aufgerufen.
Um die aktuelle Datenbank auf dem Server zu schließen, können Sie auf dem Server den Menübefehl Schließe Anwendung oder
Beenden wählenoder in einer Serverprozedur, die auf dem Server ausgeführt wird, den Befehls QUIT 4D aufrufen.
Beim Verlassen der Datenbank führt 4D folgende Aktionen durch:
Ist keine Datenbankmethode On Server Shutdown vorhanden, beendet 4D Server ohne Unterscheidung der Reihe nach
jeden Prozess.
Ist eine Datenbankmethode On Server Shutdown vorhanden, führt 4D Server diese Methode in einem neu angelegten
lokalen Prozess durch. Sie können so via Interprozesskommunikation anderen Prozessen mitteilen, die Ausführung zu
beenden. Beachten Sie, dass 4D Server evtl. beendet wird – die Datenbankmethode On Server Shutdown kann zwar alle
gewünschten Operationen zum Aufräumen oder Schließen durchführen, aber nicht das Beenden ansich verweigern, und so an
einem gewissen Punkt enden.
Die Datenbankmethode On Server Shutdown ist der richtige Ort, um:
Serverprozeduren zu beenden, die beim Öffnen der Datenbank automatisch starten.
Voreinstellungen bzw. Einstellungen (lokal oder auf Festplatte) zu speichern, um sie beim Starten der nächsten Sitzung in der
Datenbankmethode On Server Startup wiederzuverwenden.
Andere Aktionen auszuführen,
Andere Aktionen auszuführen, die bei jedem Beenden der Datenbank automatisch ablaufen sollen.
Wichtig: Beachten Sie beim Schließen von Serverprozeduren über die , dass der Server abschaltet, wenn die Ausführung dieser
Datenbankmethode (und nicht der Serverprozeduren) beendet ist. Noch laufende Serverprozeduren werden abgebrochen.
Wollen Sie sicherstellen, dass die Serverprozeduren vollständig ausgeführt sind, bevor der Server abschaltet, muss diese
Datenbankmethode eine Anweisung zum Beenden geben, z.B. über Testen einer Interprozessvariablen und die Zeit zum Beenden
gewähren. Dazu können Sie eine Schleife von n-Sekunden oder einen Test durch eine andere Interprozessvariable einrichten.
Um Code automatisch auf einem Client-Rechner auszuführen, wenn sich ein remote 4D am Server abmeldet, verwenden Sie die
Datenbankmethode On Exit.
Datenbankmethode On Server Open Connection
Wann wird die Datenbankmethode On Server Open Connection aufgerufen?
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:
Ein remote 4D sich anmeldet (weil der Prozess Anwendung startet)
Ein remote 4D die Designumgebung öffnet (weil der Prozess Design startet)
Ein remote 4D über die Funktion New Process, über einen Menübefehl oder das Dialogfenster Methode ausführen einen
nicht-lokalen Prozess startet.
Bei den Aktionen mit remote 4D starten drei Prozesse — Einer auf dem Client-Rechner und 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 ClientProzess 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 ist für die
Überwachung des entsprechenden 4D Client Prozesses zuständig.
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 - sofern vorhanden, und/oder die . Empfängt 4D Server eine SQL
Anfrage, wird die - sofern vorhanden, aufgerufen. Weitere Informationen dazu finden Sie im Handbuch 4D Programmiersprache im
Kapitel .
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.
Wie wird die Datenbankmethode On Server Open Connection aufgerufen?
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:
Parameter Beschreibung
$1
$2
$3
ID Nummer für Benutzer, die 4D Server intern zur Identifikation von Benutzern verwendet.
ID Nummer für Verbindung, die 4D Server intern zur Identifikation einer Verbindung verwendet.
Obsolet: Gibt immer 0 zurück, muss aber deklariert werden.
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.
Beispiel 1
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
C_LONGINT($0;$1;$2;$3)
` Erstelle eine Datensatz [Logbuch]
CREATE RECORD([Server_Log])
[Server_Log]Log_Nr:=Sequence number([Server_Log])
` Sichere Anmeldedatum und Anmeldezeit
[Server_Log]Anmeldedatum:=Current date
[Server_Log]Anmeldezeit:=Current time
` Sichere die Verbindungsinformation
[Server_Log]Benutzer_Nr:=$1
[Server_Log]Verbindung_Nr:=$2
SAVE RECORD([Server_Log])
` Gibt keinen Fehler zurück, so dass die Verbindung weiterlaufen kann
$0:=0
` Datenbankmethode On Server Close Connection
C_LONGINT($1;$2;$3)
` Finde wieder Datensatz [Server_Log]
QUERY([Server_Log];[Server_Log]Benutzer_Nr=$1;*)
QUERY([Server_Log];&;[Server_Log]Verbindung_Nr=$2;*)
QUERY([Server_Log];&;[Server_Log]Prozess_Nr=0)
` Sichere Abmeldedatum und -zeit
[Server_Log]Abmeldedatum:=Current date
[Server_Log]Abmeldezeit:=Current time
` Sichere die Prozessinformation
[Server_Log]Prozess_Nr:=Current process
PROCESS PROPERTIES([Server_Log]Prozess_Nr;$vsProzName;$vlProzStatus;$vlProzZeit)
[Server_Log]Prozessname:=$vsProzName
SAVE RECORD([Server_Log])
Nachfolgend sehen Sie einige Einträge in [Server_Log] mit mehreren remote Anbindungen:
Beispiel 2
Im folgenden Beispiel kann zwischen 2 und 4 Uhr a.m. keine neue Verbindung hergestellt werden:
` Datenbankmethode On Server Open Connection
C_LONGINT($0;$1;$2;$3)
If((?02:00:00?<=Current time)&(Current time<?04:00:00?))
$0:=22000
Else
$0:=0
End if
Datenbankmethode On Server Close Connection
Die Datenbankmethode On Server Close Connection wird jedes Mal auf dem Server-Rechner aufgerufen, wenn ein 4D Client
Prozess endet.
Analog zur Datenbankmethode On Server Open Connection übergibt 4D Server in der Datenbankmethode On Server
Close Connection drei Parameter vom Typ Lange Ganzzahl, er erwartet jedoch kein Ergebnis.
Die Methode muss deshalb ausdrücklich mit drei Parametern vom Typ Lange Ganzzahl definiert werden:
C_LONGINT($1;$2;$3)
Die drei Parameter für die Datenbankmethode geben folgende Informationen zurück:
Parameter Beschreibung
$1
$2
$3
ID Nummer für Benutzer, die 4D Server intern zur Identifikation des Benutzers verwendet.
ID Nummer für Verbindung, die 4D Server intern zur Identifikation einer Verbindung verwendet.
Obsolet: Gibt immer 0 zurück, muss aber deklariert werden
Die Datenbankmethode On Server Close Connection ist das exakte Gegenstück zur Datenbankmethode On Server Open
Connection. Weitere Informationen und eine Beschreibung der 4D Client Prozesse finden Sie in der Beschreibung dieser
Datenbankmethode.
Beispiel
Siehe erstes Beispiel für die Datenbankmethode On Server Open Connection.
Remote 4D verwenden
Anmeldung an eine 4D Server Datenbank
Administration über Remote Rechner
Kompilieren über Remote Rechner
Anmeldung an eine 4D Server Datenbank
Es gibt drei Wege, sich über remote 4D an eine 4D Server Datenbank anzumelden:
Über den Anmeldedialog
Über den Befehl Öffnen zuletzt verwendet
Über eine Verknüpfungsdatei 4D Link mit den Zugriffparametern für die Datenbank.
Über den Anmeldedialog
Um den Anmeldedialog für 4D Server anzuzeigen, starten Sie zuerst die 4D Anwendung.
Über das Menü Datei/Ablage>Öffnen bzw. die entsprechende Schaltfläche in der 4D Toolbar können Sie die Art zum Öffnen der
4D Anwendung auswählen:
Wählen Sie den Befehl Öffnen>Remote Anwendung .
Auf dem Bildschirm erscheint der Anmeldedialog für 4D Server. Er enthält 3 Registerkarten, über die Sie auf folgende Seiten
zugreifen können: Favoriten, Verfügbar und Angepasst.
Markieren Sie die Option Diesen Dialog beim nächsten Starten anzeigen, erscheint das Fenster automatisch beim Starten der
4D Anwendung.
Hinweis: Sie können dieses Dialogfenster auch öffnen, wenn Sie im 4D Willkommen-Assistent auf den Link Anmelden an
4D Server klicken.
Seite Favoriten
Die Seite Favoriten zeigt die Liste der zuletzt verwendeten 4D Server in alphabetischer Reihenfolge. Um sich an einen Server in
der Liste anzumelden, doppelklicken Sie auf seinen Namen oder markieren ihn und klicken auf die Schaltfläche OK.
Seite Verfügbar
4D Server enthält ein integriertes TCP/IP System, das standardmäßig die Namen der 4D Server Datenbanken veröffentlicht, die
über das Netzwerk verfügbar sind. Die Namen erscheinen im Anmeldedialog auf der Seite Verfügbar.
Die Liste ist in der Reihenfolge der Veröffentlichung sortiert und wird dynamisch aktualisiert. Wollen Sie sich über diese Liste an
einen Server anmelden, doppelklicken Sie auf seinen Namen oder markieren ihn und klicken auf die Schaltfläche OK.
Hinweise:
Ein Circumflex (^) vor dem Namen der Datenbanken gibt an, dass sie verschlüsselt publiziert werden. Weitere Informationen
dazu finden Sie im Abschnitt Client/Server Verbindungen verschlüsseln.
Es ist möglich, die dynamische Veröffentlichtung des Datenbanknamen im Netzwerk zu unterbinden. In diesem Fall lässt sich
die Verbindung nur manuell über die Seite "Angepasst" herstellen. Weitere Informationen dazu finden Sie im Abschnitt
Einstellungen zur Veröffentlichung.
Seite Angepasst
Auf dieser Seite können Sie einen im Netzwerk veröffentlichten Server über seine IP Adresse zuweisen und einen eigenen Namen
vergeben:
Sie können das TCP/IP Übertragungssystem von 4D Server so anpassen, dass die Namen der Datenbanken nicht automatisch
über das Netzwerk publiziert werden. In diesem Fall erscheinen die Namen nicht auf der Seite Verfügbar. Kennen Sie jedoch die
IP-Adresse einer nicht angezeigten Server-Datenbank, können Sie die Adresse manuell eingeben.
Anwendungsname: Hier definieren Sie den Namen der 4D Server Datenbank. Dieser Name wird auf der Seite Favoriten
verwendet, wenn Sie Bezug auf die Datenbank nehmen.
Netzwerk-Adresse: Hier geben Sie die IP-Adresse des Rechners an, auf dem der 4D Server gestartet wurde. Laufen auf
einem Rechner zwei Server gleichzeitig, müssen an die IP Adresse ein Doppelpunkt und eine Port-Nummer angehängt
werden, zum Beispiel 192.168.92.104:19814.
Der Port zum Veröffentlichen eines Servers ist standardmäßig 19813. Diese Nummer lässt sich in den Einstellungen der
Anwendung verändern. Weitere Informationen dazu finden Sie im Abschnitt Einstellungen zur Konfiguration.
Hinweis: Haben Sie auf den Seiten Favoriten oder Verfügbar eine Datenbank ausgewählt und klicken auf die Registerkarte
Angepasst, enthalten die beiden Felder die entsprechende Information.
Sobald diese Seite einen Server zuweist, können Sie auf die Schaltfläche OK klicken, um sich an den Server anzumelden. Der
Server erscheint dann auf der Seite Favoriten.
Hinweis: Wird die Datenbank verschlüsselt veröffentlicht, müssen Sie vor den Namen ein Circumflex (^) setzen. Andernfalls wird
die Anmeldung zurückgewiesen. Weitere Informationen dazu finden Sie im Abschnitt Client/Server Verbindungen
verschlüsseln.
Aktualisieren der lokalen Ressourcen erzwingen
Ist diese Option markiert, werden die lokalen Ressourcen auf dem Client-Rechner beim Anmelden systematisch aktualisiert. Das
sind Informationen zur Struktur der Datenbank, die auf jedem Client-Rechner gespeichert sind.
In der Regel werden die lokalen Ressourcen auf dem remote Rechner automatisch bei jeder Anmeldung aktualisiert, wenn die
Struktur der Datenbank geändert wurde. In den meisten Fällen ist diese Option nicht erforderlich. In bestimmten Fällen kann es
jedoch erforderlich sein, die Aktualisierung zu erzwingen.
Über den Befehl Öffnen zuletzt verwendet
Über das Menü Datei/Ablage>Öffnen zuletzt verwendet können Sie sich direkt an eine 4D Server Datenbank anmelden, die sie
zuvor schon verwendet haben.
Verwenden Sie die 4D Anwendung zum Öffnen lokaler und zum Anmelden an remote Anwendungen, zeigt das Untermenü beide
Arten an. Die remote Anwendungen erscheinen im unteren Teil:
[#picture id="68619"/ width="50%"]
Die IP-Adresse des Server erscheint neben dem Namen der Anwendung.
Über den Befehl Lösche Menü können Sie die Einträge entfernen.
Über die Verknüpfungsdatei 4DLink
Sie können Zugriffsdateien für Datenbanken anlegen. Sie enthalten Parameter, um das Öffnen oder Anmelden an 4D Datenbanken
zu automatisieren und zu vereinfachen. Eine Zugriffsdatei kann in der Regel die Adresse einer remote Anwendung sowie die
Anmelde-Identifikation sichern, wodurch für den Benutzer mehrere Operationen wegfallen.
Über diese Zugriffsdateien können Sie entweder eine lokale Datenbank öffnen oder sich an eine von 4D Server veröffentlichte
Datenbank anmelden.
Zugriffsdatei einrichten
Die Zugriffsdateien von 4D Anwendungen sind XML Dateien mit der Endung ".4DLink". 4D erstellt und verwendet diesen Dateityp
zum Einrichten des Untermenüs Zuletzt verwendet: 4D erstellt automatisch die Datei .4DLink, wenn eine Datenbank zum ersten
Mal auf dem Rechner geöffnet wird oder beim ersten Anmelden an den Server.
Die automatisch angelegten Dateien .4DLink werden im lokalen Ordner Preferences des Benutzers abgelegt. Es werden zwei
Verzeichnisse angelegt: Local und Remote. Der Ordner Local enthält die Dateien ".4DLink" zum Anmelden an Datenbanken auf
dem Rechner, der Ordner Remote die Dateien "4DLink" zum Anmelden an remote Datenbanken.
Die lokalen Ordner Preferences liegen an folgender Stelle:
Windows 7 und Vista: C:\Users\UserName\AppData\Roaming\4D\Favorites v12\
Windows XP: C:\Dokumente und Einstellungen\Benutzername\
Anwendungsdaten\4D\Favorites v12\
Mac OS: Users/UserName/Library/Preferences/4D/Favorites v12/
4D zeigt die hier gefundenen Dateien im Menü Datei/Ablage im Untermenü Öffnen zuletzt verwendet an:
Die Dateien ".4DLink" lassen sich auch mit einem XML Editor erstellen. Sie können auch angepasste Information, wie die
Anmelde-Identifikation oder den Öffnungsmodus der Datenbank enthalten.
4D liefert ein DTD mit der Beschreibung der XML Keys, mit der Sie eine ".4DLink" Datei einrichten können. Die DTD lautet
database_link.dtd und liegt im Unterordner \Resources\DTD\ des 4D Programms.
Dateien verwenden
Über eine Zugriffsdatei .4DLink können Sie das 4D Programm starten und die 4D Zieldatenbank öffnen. Es gibt folgende
Möglichkeiten:
Doppelklick oder Drag&Drop auf das 4D Programm,
Über das Untermenü Zuletzt verwendet (Datei im lokalen Ordner Preferences).
Eine Datei .4DLink vom Typ "remote Anwendung" können Sie kopieren und auf verschiedenen Rechnern verwenden.
Hinweis: Sie können eine Datei .4DLink auch im Öffnen-Dialog von 4D und 4D Server auswählen (nur beim Öffnen lokaler
Anwendungen).
Administration über Remote Rechner
Sie können den 4D Server Rechner über ein remote 4D, d.h. über einen Client Rechner verwalten. Dazu müssen Sie nur das
4D Server Verwaltungsfenster auf dem Client-Rechner öffnen (siehe Abschnitt Seite Wartung).
Das Verwaltungsfenster auf einem remote 4D Rechner öffnen
Um den 4D Server Rechner über ein remote 4D zu verwalten, müssen Sie in der remote Anwendung als Designer oder
Administrator angemeldet sein. Andernfalls erscheint der Fehler -9991 - Keine Zugriffsrechte.
Zum Öffnen gibt es folgende Möglichkeiten:
Wählen Sie im Menü Hilfe den Befehl Administrationsfenster oder klicken Sie in der 4D Werkzeugleiste auf die
entsprechende Schaltfläche:
Führen Sie den Befehl OPEN ADMINISTRATION WINDOW aus.
Auf dem Bildschirm des Client-Rechners erscheint das Server Verwaltungsfenster:
Besonderheiten beim Verwalten über einen Client
Ein Client-Rechner, der dieses Fenster anzeigt, hat Zugriff auf alle verfügbaren Informationen. Er kann auf die Prozesse einwirken
und die verschiedenen Server starten bzw. stoppen. Es gibt jedoch ein paar Einschränkungen und spezifische Vorgehensweisen:
Auf der Seite Prozesse lässt sich ein Benutzerprozess nicht debuggen, da das Debugger-Fenster auf den Server-Rechner
angezeigt wird.
Auf der Seite Wartung lassen sich Aktionen, wie Komprimieren und Neustart ausführen, die alle Clients abkoppeln und den
Server neu starten. In diesem Fall wird der ausführende Client bei Neustart automatisch wieder angeschlossen.
Auf der Seite Wartung lauten die Schaltflächen Logbuch anzeigen nach Ausführen einer Wartungsoperation Logbuch
laden. Diese Dateien werden in den Anwendungsordner des Client-Rechners geladen, bevor sie angezeigt werden.
Kompilieren über Remote Rechner
Eine 4D Anwendung lässt sich über eine remote Verbindung kompilieren, also über einen Client-Rechner. Das war vor 4D Server
v11 SQL nur mit der 4D Einzelplatz-Version möglich.
Hinweis: Über eine remote Verbindung lässt sich jedoch keine eigene 4D Anwendung (Einzelplatz oder Client/Server) erstellen.
Der Application Builder ist in dieser Umgebung nicht verfügbar, der Menübefehl erscheint in Grauschrift.
Die Oberfläche und Vorgehensweise zum Kompilieren auf der Client-Seite sind dieselben wie im Einzelplatz. Der Compiler lässt
sich über das Menü Design oder das entsprechende Icon in der Werkzeugleiste aufrufen:
Hinweis: Damit die Client-Rechner die Funktionen zum Kompilieren nutzen können, ist auf 4D Server eine "4D Team Server"
Lizenz erforderlich.
Es kann immer nur ein Client-Rechner kompilieren. Die Aktion ist dann für andere Client-Rechner gesperrt. Versucht ein anderer
Client Rechner, zur gleichen Zeit zu kompilieren, erhält er eine Meldung.
Während die Kompilierung auf einem Client-Rechner läuft, können die anderen Clients weiterarbeiten und Methoden oder andere
Strukturelemente ändern. Kompilierter und interpretierter Code sind dann unterschiedlich, d.h. die Anwendung muss erneut
kompiliert werden.
Der kompilierte Code wird während der Aktion schrittweise an die Datei .4DB auf dem Server gesendet.
Nach Abschluss der Aktion lässt sich der Server auf dem Client im interpretierten oder kompilierten Modus starten. Wählen Sie
dazu im Menü Start den entsprechenden Befehl. Auf dem Bildschirm erscheint das Abmeldefenster des Server, um eine Wartezeit
einzugeben oder eine Meldung an die anderen Clients zu senden. Wurde der Server neu gestartet, wird der Client, der die Aktion
auslöst, automatisch wieder angemeldet.
Auf dem Server muss zum Neustart im kompilierten/interpretierten Modus der Standard-Öffnen Dialog verwendet werden (PopUpMenü zur Schaltfläche Öffnen).
Hinweis: Zur Wahrung der Performance ist die Kompilierung des WAN Netzwerks nicht zu empfehlen, besonders bei
Anwendungen mit zahlreichen Methoden. Denn das würde zu umfangreichem Netzwerkverkehr führen.
4D Programmiersprache
Einführung
4D Server, Mengen und temporäre Auswahlen
Serverprozeduren
Serverprozeduren auf Client-Rechnern
Import mit Serverprozeduren (Beispiel)
Service mit Serverprozeduren (Beispiel)
Attribut Auf Server ausführen
Einführung
4D Server bietet vier Möglichkeiten, den 4D Code auf dem Server-Rechner auszuführen:
Trigger
Serverprozeduren
Methoden mit dem Attribut "Auf Server ausführen"
Datenbankmethoden
Trigger
Trigger sind Tabellenereignisse, die ablaufen, wenn bestimmte Ereignisse auftreten, die das Sichern, Löschen und Laden von
Datensätzen betreffen. Sie unterbinden unzulässige Operationen in den Datensätzen und schützen vor unabsichtlichem Löschen. In
einem Rechnungssystem kann ein Trigger zum Beispiel dafür sorgen, dass eine Rechnung erst dann vollständig ist, wenn auch der
dazugehörige Kunde eingetragen wurde.
Trigger werden auf dem Rechner ausgeführt, der die Datenbank-Engine enthält. Auf 4D Server werden Trigger im Kontext von
Prozessen ausgeführt, die auf dem Server-Rechner laufen, und nicht auf dem Client-Rechner. Sie werden insbesondere im Kontext
der "Zwillingsprozesse" von Benutzerprozessen ausgeführt, welche die Datenbankoperation aufrufen. Diese Zwillingsprozesse
nutzen den Datenbankkontext gemeinsam mit dem Benutzerprozess auf dem Client-Rechner (im einzelnen den Status von
Transaktionen und das Sperren von Datensätzen), sie nutzen dagegen nicht gemeinsam den Programmiersprachekontext
(Variablen, Prozesse, Mengen, aktuelle Auswahlen) Beachten Sie jedoch, dass der aktuelle Datensatz der Tabelle des Trigger in
allen Kontexten gleich ist.
Weitere Informationen dazu finden Sie im Handbuch 4D Programmiersprache im Kapitel .
Serverprozeduren
4D Serverprozeduren sind Projektmethoden, die Methoden in Prozessen ausführen, die auf dem Server-Rechner oder auf jedem
Client-Rechner laufen, anstatt auf dem Client-Rechner, der die Methode gestartet hat. Weitere Informationen dazu finden Sie im
Abschnitt .
Methoden mit dem Attribut "Auf Server ausführen"
Projektmethoden mit dem Attribut "Auf Server ausführen" werden ebenfalls auf dem Server ausgeführt. Sie werden jedoch im
Gegensatz zu Serverprozeduren im Zwillingsprozess des Client-Prozesses ausgeführt und nutzen so, wie Trigger, dessen
Datenbankkontext. Weitere Informationen dazu finden Sie im Abschnitt .
Datenbankmethoden
Vier Datenbankmethoden werden nur auf dem Server-Rechner ausgeführt:
Datenbankmethode On Server Startup
Datenbankmethode On Server Shutdown
Datenbankmethode On Server Open Connection
Fünf weitere Datenbankmethoden lassen sich sowohl auf dem Server-Rechner als auch auf dem Client-Rechner ausführen:
Drei Datenbankmethoden lassen sich nur auf dem Client-Rechner ausführen:
Weitere Informationen dazu finden Sie in den folgenden Abschnitten und im Handbuch 4D Programmiersprache im Kapitel .
4D Server und Variablen
4D Server verwaltet eine Tabelle Interprozessvariablen. Diese Variablen liegen auf dem Server-Rechner. Bei einer kompilierten
Datenbank ist die Tabellendefinition für Interprozessvariablen für Server und alle Client-Rechner gleich, jeder Rechner hat jedoch
einen eigenen Variableninhalt.
Analog zu Prozessen haben auch jede Serverprozedur, Datenbankmethode und Trigger eine eigene Tabelle Prozessvariablen.
Diese Prozessvariablen lassen sich in jeder Ausführungsphase erstellen und dynamisch verwenden.
4D Server, Mengen und temporäre Auswahlen
Mit 4D Server richtet sich die Sichtbarkeit von Mengen und temporären Auswahlen danach, wo sie erstellt wurden (Server-Prozess
oder Client-Prozess) und nach der Art dieser Objekte (lokal, Prozess oder Interprozess). Weitere Informationen dazu finden Sie im
Abschnitt .
4D Server, Mengen und temporäre Auswahlen
Sie können mit Interprozess-, Prozess- und lokalen Mengen sowie temporären Auswahlen arbeiten. Weitere Informationen dazu
finden Sie im Handbuch 4D Programmiersprache im Kapitel .
Prozessmengen/temporäre Auswahlen : Auf ein Prozessobjekt lässt sich nur über den Prozess zugreifen, der es erzeugt
hat. Wurde es in einem Client Prozess erstellt, kann nur der auf dem Server angelegte Zwillingsprozess darauf zugreifen.
Prozessmengen werden gelöscht, sobald die Prozessmethode beendet ist. Prozessobjekte benötigen keine spezifische
Vorsilbe im Namen.
Interprozessmengen/temporäre Auswahlen : Ein Interprozessobjekt ist für alle Prozesse auf dem Rechner (Server oder
Client) sichtbar, der sie erzeugt hat. Eine Menge oder temporäre Auswahl ist ein Interprozessobjekt, wenn das Zeichen <> (
“kleiner als” gefolgt von “größer als”) vorangestellt ist.
Hinweis: Diese Schreibweise gilt für Windows und Macintosh. Auf Macintosh können Sie auch das Zeichen ¸ benutzen.
Tippen Sie dazu bei gedrückter Umschalt- und Wahltaste den Buchstaben v ein.
Lokale Mengen/Client Mengen/temporäre Auswahlen : Ein lokales/Client Objekt ist nur in dem Prozess sichtbar, der es
angelegt hat. Der Name von lokalen bzw. Client Objekten beginnt mit dem Dollarzeichen ($). Auch die Systemmenge UserSet
gehört zu den lokalen bzw. Client Mengen, obwohl sie nicht mit einem Dollarzeichen $ beginnt.
Nachfolgende Tabelle zeigt, wie temporäre Auswahlen sichtbar sind, je nachdem, wo sie erstellt wurden. Die Tabelle ist für beide
Objektarten gleich:
x = sichtbar
Sie müssen die Sichtbarkeit von Prozessen je nach der Art der Operationen, die Sie ausführen wollen, berücksichtigen. Wollen Sie
z.B. eine Operation vom Typ DIFFERENCE; INTERSECTION oder UNION ausführen, stellen Sie sicher, dass alle Mengen auf
dem Rechner sichtbar sind, der diese Operation ausführt.
Zur Optimierung sollten Sie den Erstellungsort und die Reichweite der Objekte jeweils nach der erforderlichen Sichtbarkeit wählen.
Serverprozeduren
Was ist eine SQL Serverprozedur?
Der Ausdruck Serverprozedur stammt aus der Server-Welt, die auf SQL basiert. Sendet eine Arbeitsstation eine Anfrage an einen
SQL Server, sendet sie die Anfrage als Volltext in SQL Sprache an diesen Server. Die Anfrage wird vor der Ausführung auf dem
SQL Server analysiert und interpretiert. Ist der Quellcode umfangreich und wird die Anfrage während einer Sitzung mehrere Male
gesendet, beansprucht das natürlich viel Zeit für die Übertragung über das Netzwerk und die stets neue Analyse und Interpretation.
Deshalb sollte ein Weg gefunden werden, diese Anfrage zuerst über das Netzwerk zu senden, zu analysieren und zu interpretieren
und nur noch auszuführen, wenn sie von der Arbeitsstation gesendet wird. Die Lösung war, den Quellcode der Anfrage (mit anderen
Worten eine Prozedur) auf der Server-Seite zu lassen; die Arbeitsstation sendet dann als Anfrage nur den Namen dieser Prozedur.
Da diese Prozedur auf dem Server gespeichert wird, nennen wir solche Prozeduren "Serverprozeduren".
Beachten Sie, dass eine Serverprozedur, die auf SQL basiert, Parameter von einer Arbeitsstation empfangen kann, die damit
verbundenen Tasks synchron oder asynchron ausführt und evtl. ein Ergebnis an die Arbeitsstation zurückgibt. Löst eine
Arbeitsstation die Ausführung einer Serverprozedur aus, überlässt die Station die Ausführung von Code bis zu einem gewissen
Maß dem Server-Rechner.
Was ist eine 4D Server Serverprozedur?
Selbst wenn wir den üblichen Namen benutzen, bieten Serverprozeduren unter 4D Server weit mehr als reguläre Serverprozeduren.
Mit 4D im lokalen Modus können Sie beim Verwenden einer Routine, z.B. einen Benutzerprozess starten, in dem eine Methode
abläuft. Diese Methode heißt Prozessmethode.Weitere Informationen dazu finden Sie im Handbuch 4D Programmiersprache im
Abschnitt .
Dasselbe können Sie mit 4D Server auf einer Arbeitsstation durchführen. Sie können zusätzlich mit der Funktion auf dem ServerRechner einen Benutzerprozess starten, in dem eine Methode abläuft. In beiden Fällen heißt die Methode Serverprozedur.
Der Prozess, der auf dem Server-Rechner oder einem anderen Client gestartet wird, heißt ebenfalls Serverprozedur.
Wichtig: Der Hauptunterschied zwischen einer Serverprozedur, die auf SQL-basiert und einer Serverprozedur unter 4D Server ist,
dass im ersten Fall eine SQL Prozedur, im zweiten Fall ein eigenständiger 4D Prozess abläuft.
Architektur der 4D Serverprozeduren
Eine Serverprozedur hat wie ein normaler Prozess eine eigene Umgebung:
Aktuelle Auswahl pro Tabelle : Jede Serverprozedur hat eine eigene aktuelle Auswahl. Eine Tabelle kann in verschiedenen
Serverprozeduren auch verschiedene Auswahlen haben.
Aktueller Datensatz pro Tabelle: Jede Tabelle kann in jeder Serverprozedur einen anderen aktuellen Datensatz haben.
Variablen: Jede Serverprozedur hat ihre eigenen Prozessvariablen. Prozessvariablen werden nur im Bereich der jeweiligen
Serverprozedur erkannt.
Standardtabelle: Jede Serverprozedur hat eine eigene Standardtabelle.
Prozessmengen: Jede Serverprozedur hat ihre eigenen Prozessmengen.
On Error Call: Jede Serverprozedur hat ihre eigene Methode On Error Call.
Debugger Fenster: Jede Serverprozedur kann ein eigenes Debugger Fenster haben.
Eine Serverprozedur kann in der Benutzeroberfläche Fenster öffnen und Daten anzeigen (z.B. ). Sie kann jedoch im Gegensatz zu
Benutzerprozessen auf der Arbeitsstation keine Dateneingabe auslösen (z.B. ), da es keinen Eingabe-Kernel auf dem ServerRechner gibt.
Sie können soviele Serverprozeduren starten wie es Hardware und Speicher des Systems zulassen. Im Grunde genommen
antwortet der 4D Server-Rechner nicht nur auf Anfragen der Arbeitsstation und von Web Browsern, er führt auch Prozesse aus, die
mit anderen Prozessen interagieren, die auf dem Server-Rechner und remote 4D Rechnern laufen.
Ebenso wie 4D eine Multi-Tasking Umgebung für Benutzerprozesse auf einer Arbeitsstation bietet, bietet 4D Server eine MultiTasking Umgebung für Serverprozeduren. 4D Server verwaltet zum Beispiel eine Tabelle mit Interprozessvariablen, die
Serverprozeduren für die Interprozesskommunikation benutzen können.
Hinweis: Die Methodeneigenschaft "Auf Server ausführen" lässt sich für eine Methode anwenden, die in einem Prozess auf dem
Server ausgeführt wird. Die Methode verwendet dann jedoch einen Zwillingsprozess des Client-Prozesses, d.h. sie kann die
Umgebung dieses Client Prozesses nutzen. Es handelt sich dann nicht um eine 4D Serverprozedur. Weitere Informationen dazu
finden Sie im Abschnitt Attribut Auf Server ausführen .
Was macht eine Serverprozedur?
Fast alles, was im Handbuch 4D Programmiersprache über die Funktionsweise von Prozessen und Befehlen beschrieben wird, gilt
auch für Serverprozeduren. Davon ausgenommen ist die Dateneingabe.
Eine Serverprozedur kann Datensätze hinzufügen, suchen, sortieren, aktualisieren und löschen. Sie kann Mengen und Auswahlen
verwenden, auf Dokumente auf der Festplatte zugreifen, mit BLOBs arbeiten, Datensätze drucken, u.v.m. Stellen Sie sich einfach
vor, dass etwas nicht auf dem lokalen 4D Rechner, sondern auf dem Server-Rechner bzw. auf einer oder mehreren Arbeitsstationen
ausgeführt wird.
ausgeführt wird.
Ein offensichtlicher Vorteil ist, dass eine Serverprozedur lokal auf dem Server-Rechner ausgeführt wird, also dort, wo auch die
Datenbank-Engine liegt. So ist z.B. der Befehl APPLY TO SELECTION innerhalb einer Serverprozedur effizienter als über das
Netzwerk. Das Beispiel im Abschnitt Import mit Serverprozeduren (Beispiel) zeigt, wie stark sich die Leistung über clever
eingesetzte Serverprozeduren optimieren lässt.
Serverprozeduren, die auf einer oder mehreren Arbeitsstationen ausgeführt werden, ermöglichen, Aufgaben und Kommunikation
afu mehrere Client Rechner zu verteilen. Ein Beispiel dazu finden Sie im Handbuch 4D Programmiersprache unter dem Befehl
REGISTER CLIENT.
Der wichtigste Vorteil von Serverprozeduren sind jedoch die zusätzlichen Möglichkeiten für 4D Server. Mit Serverprozeduren
können Sie Ihre eigenen 4D Server Dienste einrichten. Ihrer Phantasie sind keine Grenzen gesetzt. Das Beispiel im Abschnitt
Service mit Serverprozeduren (Beispiel) zeigt eine Serverprozedur, die Clients mit Information über 4D Server bzw. den ServerRechner ausstattet. Sie können z.B. die Volumes des Server-Rechners auflisten. Dieses Beispiel lässt sich leicht erweitern, so
dass ein Client auch Information über ein Verzeichnis oder ein Dokument erhält.
Was sollte eine Server Prozedur nicht machen?
Generell sollten Serverprozeduren, die auf dem Server ausgeführt werden, nicht mit Oberflächenelementen arbeiten, wie z.B.
Menüs, Fenster, Formulare, etc. Die Oberfläche wird ja auch nicht auf der Server-Seite verwaltet. Befehle, die Dialogfenster auf
dem Server anzeigen, sowie Dialogfenster zur Dateneingabe, sollten vermieden werden.
Es folgt die Liste der Befehle, die Sie NICHT in Serverprozeduren verwenden sollten, die auf dem Server ausgeführt werden. Sie ist
in drei Gruppen gegliedert:
Auf dem Server nicht zulässige Befehle
Enthält eine Serverprozedur einen dieser Befehle, erscheint eine Meldung, dass der Befehl nicht auf 4D Server ausgeführt werden
kann. Der Fehler #67 wird zurückgegeben. Sie können ihn mit dem Befehl ON ERR CALL verwalten.
ACCUMULATE
ADD SUBRECORD
APPEND MENU ITEM
BREAK LEVEL
CALL PROCESS
CHANGE LICENSES
Count menu items
Count menus
CREATE DATA FILE
DELETE MENU ITEM
DISABLE MENU ITEM
DISPLAY SELECTION
EDIT ACCESS
ENABLE MENU ITEM
FILTER EVENT
Get menu item
Get menu item key
Get menu item mark
Get menu item style
Get menu title
GRAPH TABLE
INSERT MENU ITEM
Level
Menu selected
MODIFY RECORD
MODIFY SELECTION
MODIFY SUBRECORD
ON EVENT CALL
OPEN DATA FILE
Open external window
PAGE BREAK
PAGE SETUP
PRINT SETTINGS
Printing page
QR REPORT
REMOVE PICTURE FROM LIBRARY
SET MENU ITEM
SET MENU ITEM SHORTCUT
SET MENU ITEM MARK
SET MENU ITEM STYLE
SET PICTURE TO LIBRARY
SHOW MENU BAR
Subtotal
Auf dem Server ungeeignete Befehle
Wir raten dringend, die folgenden Befehle nicht in Serverprozeduren zu verwenden, da sie für Methoden, die auf dem Server
ausgeführt werden, ungeeignet sind. Sie können den Server blockieren und Fehler erzeugen und werden in jedem Fall nicht korrekt
ausgeführt. Es erscheint keine explizite Fehlermeldung.
ACCEPT
Activated
ADD DATA SEGMENT
After
APPEND DATA TO PASTEBOARD
APPEND TO LIST
Before
BLOB TO DOCUMENT
BLOB to list
BRING TO FRONT
C_GRAPH
CANCEL
CHANGE CURRENT USER
CHANGE PASSWORD
CLEAR LIST
CLEAR PASTEBOARD
Copy list
Count list items
Count screens
Create document(1)
Create resource file(1)
Current form table
Current user
Deactivated
DELETE FROM LIST
DELETE USER
DIALOG
DISABLE BUTTON
DRAG AND DROP PROPERTIES
DRAG WINDOW
Drop position
During
ENABLE BUTTON
ERASE WINDOW
EXPORT DATA(1)
FILTER KEYSTROKE
Find window
Focus object
FONT LIST
Font name
Font number
Form event
FORM FIRST PAGE
FORM Get current page
FORM GET PROPERTIES
FORM GOTO PAGE
FORM LAST PAGE
FORM NEXT PAGE
FORM PREVIOUS PAGE
FORM SET INPUT
FORM SET OUTPUT
Frontmost process
Frontmost window
Get edited text
GET GROUP LIST
GET GROUP PROPERTIES
GET HIGHLIGHT
GET LIST ITEM
GET LIST ITEM PROPERTIES
GET LIST PROPERTIES
GET MOUSE
GET PASTEBOARD DATA
GET PICTURE FROM PASTEBOARD
Get text from pasteboard
GET USER LIST
GET USER PROPERTIES
GET WINDOW RECT
Get window title
GOTO OBJECT
GRAPH SETTINGS
HIDE PROCESS
HIDE TOOL BAR
HIDE WINDOW
HIGHLIGHT RECORDS
HIGHLIGHT TEXT
IMPORT DATA(1)
In break
In footer
In header
INSERT IN LIST
INVERT BACKGROUND
Is a list
Is user deleted
Keystroke
List item parent
List item position
LIST TO BLOB
Load list
MAXIMIZE WINDOW
Menu bar height
Menu bar screen
MINIMIZE WINDOW
Modified
New list
Next window
OBJECT GET COORDINATES
OBJECT MOVE
OBJECT SET CHOICE LIST NAME
OBJECT SET COLOR
OBJECT SET ENTERABLE
OBJECT SET FILTER
OBJECT SET FORMAT
OBJECT SET RGB COLORS
OBJECT SET TITLE
OBJECT SET VISIBLE
Old
Open document(1)
Open resource file(1)
ORDER BY(2)
Outside call
Pasteboard data size
Pop up menu
POST CLICK
POST EVENT
POST KEY
QUERY BY FORMULA(2)
QUERY(2)
REDRAW
REDRAW LIST
REDRAW WINDOW
REGISTER CLIENT
REJECT
SAVE LIST
SCREEN COORDINATES
SCREEN DEPTH
Screen height
Screen width
Select folder
SELECT LIST ITEMS BY POSITION
SELECT LIST ITEMS BY REFERENCE
SELECT LOG FILE
Selected list items
Self
SET CURSOR
SET FIELD TITLES
Set group properties
SET LIST ITEM
SET LIST ITEM PROPERTIES
SET LIST PROPERTIES
SET PICTURE TO PASTEBOARD
SET SCREEN DEPTH
SET TABLE TITLES
SET TEXT TO PASTEBOARD
SET TIMER
Set user properties
SET WINDOW RECT
Shift down
SHOW PROCESS
SHOW WINDOW
SORT LIST
User in group
Validate password
Window kind
WINDOW LIST
Window process
(1) Nur wenn der erste Parameter ein leerer String ist.
(2) Nur wenn die Syntax die Anzeige eines Dialogfensters auslöst, z.B. SORT ([Tabelle]).
Befehle ohne Auswirkung auf dem Server
Diese Befehle haben keine Auswirkung, wenn sie in Serverprozeduren auf dem Server ausgeführt werden. Es erscheint keine
explizite Fehlermeldung.
GRAPH
MESSAGES OFF
MESSAGES ON
SET MENU BARSHOW TOOL BAR
How to Start a Stored Procedure
Von 4D aus können Sie eine Serverprozedur im Dialogfenster Methode ausführen manuell starten:
Sie können sie auf dem 4D Server- oder einem Client-Rechner ausführen. Beachten Sie, dass nur die Client-Rechner in der Liste
erscheinen, welche Sie zuvor registriert haben. Weitere Informationen dazu finden Sie im Abschnitt Serverprozeduren auf ClientRechnern registrieren und unter dem Befehl REGISTER CLIENT.
Sie können in 4D eine Serverprozedur auch per Programmierung starten: Verwenden Sie dazu die Routinen oder EXECUTE
ON CLIENT.
Hinweis: Sie können von remote 4D aus keine Befehle zur Prozessverwaltung für Serverprozeduren auf dem Server verwenden.
Das sind die Befehle DELAY PROCESS, PAUSE PROCESS und RESUME PROCESS.
Sie können eine Serverprozedur über eine Methode aufrufen, die auf 4D Server ausgeführt wird (Server Datenbankmethode,
Methode mit dem Attribut Auf Server ausführen oder Serverprozedur): Verwenden Sie dazu die Funktionen , New process
oder EXECUTE ON CLIENT.
More About Interprocess Communication Between Stored Procedures and User Processes
Serverprozeduren können miteinander kommunizieren durch:
Interprozessvariablen
lokale oder globale Semaphoren
Datensätze
Interprozessmengen und temporäre Auswahlen auf Interprozessebene
die Befehle GET PROCESS VARIABLE, SET PROCESS VARIABLE und VARIABLE TO VARIABLE
Weitere Informationen dazu finden Sie im Handbuch 4D Programmiersprache in den entsprechenden Abschnitten. Nochmal zur
Erinnerung: Denken Sie daran, dass die 4D Befehle im Bereich des Server-Rechners genauso arbeiten wie im Bereich eines
Client-Rechners.
Hinweis: Die Befehle CALL PROCESS und Outside call haben auf dem Server-Rechner keine Bedeutung, da Serverprozeduren
keine Benutzeroberfläche mit Dateneingabe haben.
Es gibt jedoch ein anderes wichtiges Feature: Benutzerprozesse, die auf dem Client-Rechner laufen, können mit den Befehlen GET
PROCESS VARIABLE, SET PROCESS VARIABLE und VARIABLE TO VARIABLE Prozessvariablen (*) von einer
Serverprozedur lesen und schreiben.
(*) ebenso wie die Interprozessvariable auf dem Server-Rechner.
Wichtig: Die Prozesskommunikation zwischen mehreren Rechnern über die Befehle GET PROCESS VARIABLE, SET
PROCESS VARIABLE und VARIABLE TO VARIABLE ist nur vom Client zum Server möglich. Es ist immer ein Client-Prozess,
der die Variablen einer Serverprozedur liest oder schreibt.
Serverprozeduren auf Client-Rechnern
Sie können Serverprozeduren auf einem oder mehreren Client-Rechnern ausführen. Sie arbeiten wie die Serverprozeduren auf
dem Server. Der einzige Unterschied ist, dass die Serverprozedur auf einemClient ´auch die Dateneingabe zulässt. Weitere
Informationen dazu finden Sie im Abschnitt Serverprozeduren.
Jede Arbeitsstation, die auf Anfrage des Servers oder eines anderen Clients Serverprozeduren ausführen soll, muss explizit für die
Arbeitssitzung registriert sein. Dafür gibt es zwei Möglichkeiten: Jeden Client automatisch beim Anmelden oder per
Programmierung registrieren.
Jeden Client-Rechner automatisch beim Anmelden an 4D Server registrieren
Wählen Sie dazu in den Einstellungen der Datenbank unter dem Thema Client-Server >Konfiguration die Option "Client beim
Starten anmelden":
Ist diese Option markiert, gilt jeder Client-Rechner, der sich an die Datenbank anmeldet, in 4D Server als Client, der
Serverprozeduren ausführen kann. Auf dem Server wird ein Prozess mit dem Namen des Client Rechners angelegt. Ein
entsprechender Prozess wird auch auf jedem Client-Rechner erstellt.
Client per Programmierung registrieren
Sie können auch einen oder mehrere Client-Rechner per Programmierung registrieren. Auf diese Weise können Sie die
Arbeitsstationen, die Sie registrieren wollen, selbst auswählen und eigene Namen vergeben. Verwenden Sie dazu den Befehl
REGISTER CLIENT.
Registrierung von Client aufheben
Unabhängig von der Art der Registrierung können Sie jede Registrierung der Arbeitsstation für die aktuelle Sitzung wieder
aufheben. Rufen Sie dazu für die entsprechende Arbeitsstation den Befehl UNREGISTER CLIENT auf. Der Registrierungsprozess
– er hat den Namen des Client – wird dann auf dem Server aus der Gruppe Benutzerprozesse und auf dem Client entfernt.
Hinweis: Mit dem Befehl GET REGISTERED CLIENTS erhalten Sie die Liste der für die Sitzung registrierten Clients und ihr
jeweiliges Arbeitsaufkommen, d.h. die Anzahl der noch auszuführenden Methoden.
Weitere Informationen zu diesen Befehlen finden Sie im Handbuch 4D Programmiersprache im Kapitel .
Import mit Serverprozeduren (Beispiel)
Folgendes Beispiel zeigt, wie sich der Datenimport im Client/Server-Betrieb enorm beschleunigen lässt. Mit der Methode
Reguläre Projektmethode Import können Sie testen, wie lange es dauert, mit dem Befehl Datensätze auf der Arbeitsstation zu
importieren:
` Reguläre Projektmethode Import
$vhDocRef:=Open document("")
If(OK=1)
CLOSE DOCUMENT($vhDocRef)
INPUT FORM([Table1];"Import")
$vhStartTime:=Current time
IMPORT TEXT([Table1];Document)
$vhEndTime:=Current time
ALERT("Es dauerte "+String(0+($vhEndTime-$vhStartTime))+" Sekunden.")
End if
Mit dieser Methode analysiert 4D die Textdatei, erstellt dann für jeden Datensatz einen neuen Datensatz, füllt die Datenfelder mit
den importierten Daten und sendet den Datensatz zum Server-Rechner, damit er der Datenbank hinzugefügt wird. Demzufolge
laufen viele Anfragen über das Netzwerk. Diese Operation lässt sich mit einer Serverprozedur optimieren, da sie dann lokal auf
dem Server-Rechner ausgeführt wird. Der Client-Rechner lädt das Dokument in ein BLOB, startet dann eine Serverprozedur, die
das BLOB als Parameter übergibt. Die Serverprozedur speichert das BLOB in einem Dokument auf der Festplatte des ServerRechners und importiert dann das Dokument lokal. Der Datenimport wird demnach lokal ausgeführt (mit einer Geschwindigkeit, die
mit 4D im lokalen Modus vergleichbar ist), da die meisten Anfragen über das Netzwerk eliminiert wurden.
Es folgt die Projektmethode CLIENT IMPORT. Sie wird auf dem Client-Rechner ausgeführt und ruft die Serverprozedur SERVER
IMPORT auf:
` Projektmethode CLIENT IMPORT
` CLIENT IMPORT ( Pointer ; Text)
` CLIENT IMPORT ( -> [Table] ; Input form )
C_POINTER($1)
C_TEXT($2)
C_TIME($vhDocRef)
C_BLOB($vxData)
C_LONGINT(spErrCode)
` Wähle das zu importierende Dokument
$vhDocRef:=Open document("")
If(OK=1)
` Wurde ein Dokument ausgewählt, schließe es
CLOSE DOCUMENT($vhDocRef)
$vhStartTime:=Current time
` Versuche, es in den Speicher zu laden
DOCUMENT TO BLOB(Document;$vxData)
If(OK=1)
` Konnte das Dokument in das BLOB geladen werden,
` Starte die Serverprozedur, die die Daten auf dem Server-Rechner importiert.
$spProcessID:=Execute on server("SERVER IMPORT";32*1024;
"Server Import Services";Table($1);$2;$vxData)
` Wir benötigen das BLOB nicht länger in diesem Prozess
CLEAR VARIABLE($vxData)
` Warte bis die Operation durch die Serverprozedur vollständig ausgeführt ist
Repeat
DELAY PROCESS(Current process;300)
GET PROCESS VARIABLE($spProcessID;spErrCode;spErrCode)
If(Undefined(spErrCode))
` Hinweis: Hat die Serverprozedur nicht ihre eigene Instanz der Variablen spErrCode
` initialisiert, wird evtl. eine undefinierte Variable zurückgegeben
spErrCode:=1
End if
Until(spErrCode<=0)
` Teile derServerprozedur mit, dass wir bestätigen
spErrCode:=1
SET PROCESS VARIABLE($spProcessID;spErrCode;spErrCode)
$vhEndTime:=Current time
ALERT("Es dauerte "+String(0+($vhEndTime-$vhStartTime))+" Sekunden.")
Else
ALERT("Es gibt nicht genügend Speicher, um das Dokument zu laden.")
End if
End if
Es folgt die Projektmethode SERVER IMPORT, ausgeführt als Serverprozedur:
` Projektmethode SERVER IMPORT
` SERVER IMPORT (Long; Text; BLOB)
` SERVER IMPORT (Table Number; Input form; Import Data)
C_LONGINT($1)
C_TEXT($2)
C_BLOB($3)
C_LONGINT(spErrCode)
` Operation ist noch nicht beendet, setze spErrCode auf 1.
spErrCode:=1
$vpTable:=Table($1)
INPUT FORM($vpTable->;$2)
$vsDocName:="Import File "+String(1+Random)
If(On Windows)
$vsDocName:=$vsDocName+".txt" ` Auf Windows ist die Dateiendung zwingend
End if
DELETE DOCUMENT($vsDocName)
BLOB TO DOCUMENT($vsDocName;$3)
IMPORT TEXT($vpTable->;$vsDocName)
DELETE DOCUMENT($vsDocName)
` Operation ist beendet, setze spErrCode auf 0.
spErrCode:=0
` Warte, bis der anfragende Client das Ergebnis erhalten hat.
Repeat
DELAY PROCESS(Current process;1)
Until(spErrCode>0)
Hinweis: Die Projektmethode On Windows finden Sie im Handbuch 4D Programmiersprache im Kapitel .
Sind diese beiden Projektmethoden in einer Datenbank integriert, können Sie den Import über eine Serverprozedur ausführen,
wenn Sie beispielsweise schreiben:
CLIENT IMPORT(->[Table1];"Import")
Bei einigen Benchmarks werden Sie feststellen, dass der Import von Datensätzen mit dieser Methode bis zu 60 mal schneller läuft
als über den regulären Import.
Service mit Serverprozeduren (Beispiel)
Im Beispiel aus dem vorigen Abschnitt Import mit Serverprozeduren (Beispiel) startet oder endet eine Serverprozedur immer,
wenn ein Datenimport angefordert wird. In diesem Beispiel startet eine Serverprozedur automatisch beim Starten der
Serverdatenbank und kann von jedem remote 4D, der sich an die Datenbank anmeldet, beliebig beendet oder wieder gestartet
werden. Sobald die Serverprozedur läuft, kann sie asynchron auf die verschiedenen Anfragen antworten, welche die an die
Datenbank angeschlossenen Clients senden.
Der vorige Abschnitt zeigt, wie Sie einen in 4D Server bestehenden Service zur Optimierung von Operationen integrieren können.
Dieser Abschnitt erläutert, wie Sie neue Services integrieren können, die für alle angemeldeten Client-Rechner verfügbar sind. Sie
können das Beispiel auch als Vorlage zum Einrichten eigener Services verwenden.
Automatisches Starten der Serverprozedur
Die Serverprozedur wird automatisch gestartet mit der Datenbankmethode On Server Startup:
` Datenbankmethode On Server Startup
START SP SERVICES
Da die Datenbankmethode On Server Startup die Projektmethode SP SERVICES als Serverprozedur startet, läuft SP
SERVICES, sobald die Datenbank mit 4D Server gestartet wird, unabhängig davon, ob derzeit Clients an die Server-Datenbank
angemeldet sind. Das hier abgebildete Verwaltungsfenster von 4D Server zeigt die aktive Serverprozedur, ohne dass ein Client
angemeldet ist.
Serverprozeduren individuell starten und beenden
Die Projektmethode START SP SERVICES sieht folgendermaßen aus:
` Projektmethode START SP SERVICES
◊vlSPServices:=Execute on server("SP SERVICES";32*1024;"SP SERVICES";*)
Da die Funktion wie arbeitet, wenn sie auf dem Server-Rechner aufgerufen wird, kann auf dem Server-Rechner bzw. auf jedem
Client-Rechner dieselbe Methode (START SP SERVICES ) verwendet werden, um die Methode SP SERVICES als
Serverprozedur auf dem Server-Rechner aufzurufen.
Die Projektmethode STOP SP SERVICES stoppt die Projektmethode SP SERVICES
` Projektmethode STOP SP SERVICES
SET PROCESS VARIABLE(◊vlSPServices;vbStopSPServices;True)
Startet die Projektmethode SP SERVICES , setzt sie die Prozessvariable vbStopSPServices auf Falsch und durchläuft die
Schleife, bis diese Variable vom Typ Boolean den Wert Wahr annimmt. Mit dem Befehl lässt sich in jedem Benutzerprozess auf
dem Server-Rechner bzw. auf jedem Client-Rechner der Wert der Variablen vbStopSPServices verändern und so die
Serverprozedur nach eigenen Wünschen stoppen.
Mit Serverprozeduren kommunizieren
Die Serverprozedur muss Anfragen des Clients jederzeit und in beliebiger Reihenfolge asynchron empfangen und beantworten
können. Das ist am einfachsten mit einer Tabelle möglich.
Die Tabelle [SP Anfragen] enthält folgende Datenfelder:
[SP Anfragen]Anf_Nr arbeitet mit der Funktion Sequence number. Sie dient nur zum Identifizieren der Anfragen.
[SP Anfragen]Anf_Typ beschreibt die Art der Anfrage.
[SP Anfragen]Anf_Status kann folgende Werte annehmen:
Wert Beschreibung
1
0
<0
Die Anfrage wurde gesendet, jedoch noch nicht bearbeitet
Die Anfrage wurde erfolgreich bearbeitet.
Die Anfrage wurde bearbeitet, es ist jedoch ein Fehler aufgetreten.
Hinweis: Die Werte wurden willkürlich für dieses Beispiel gewählt, sie sind nicht von 4D vorgegeben.
[SP Anfragen]Anf_Daten ist ein BLOB mit den Daten der Anfrage. Sie kann sowohl Daten enthalten, die der Anfrager sendet
als auch Daten, die die Serverprozedur an den Anfrager zurückgibt.
[SP Anfragen]Anf_Parameter enthält optional Parameterwerte, die der Anfrager an die Serverprozedur sendet.
Warum eine Tabelle verwenden?
Die Kommunikation zwischen einem Client-Prozess und einer Serverprozedur lässt sich mit den Befehlen GET PROCESS
VARIABLE, SET PROCESS VARIABLE und VARIABLE TO VARIABLE herstellen. Diese Befehle werden z. B. im Abschnitt
Import mit Serverprozeduren (Beispiel) und in der Projektmethode STOP SP SERVICES verwendet.
Hier muss das System jedoch zulassen, dass die Serverprozedur variable Datenmengen empfängt und zurücksendet. Sie könnten
zwar auch Arrays, einschließlich Arrays vom Typ Text und Bild verwenden, zwei Gründe sprechen jedoch für die Verwendung einer
Tabelle:
Der Algorithmus zum Bearbeiten von Anfragen via Datensätzen lässt sich einfacher einrichten. Wollen Sie eine Anfrage von
einem Client-Rechner aus senden, müssen Sie in der Tabelle lediglich eine Anfrage hinzufügen. Wird die Anfrage von der
Serverprozedur aus beantwortet, muss diese Anfrage lediglich geändert werden.
Anfragen in einer Tabelle werden auch auf der Festplatte gespeichert. Von daher ist die Größe einer umfangreichen Anfrage
kein Problem, da sie aus dem Speicher entfernt werden kann (im Gegensatz zu Daten, die in Arrays gespeichert sind).
Eine Anfrage vom Client-Rechner senden
Die Projektmethode Client post request ist eine generische Methode zum Senden einer Anfrage:
` Projektmethode Client post request
` Client post request ( String { ; Text } ) -> Long
` Client post request (Anfrage_Typ { ; Parameter } ) -> Anfrage_Nr
CREATE RECORD([SP Anfragen])
[SP Anfragen]Anf_Nr:=Sequence number([SP Anfragen])
[SP Anfragen]Anf_Typ:=$1
[SP Anfragen]Anf_Status:=1
If(Count parameters>=2)
[SP Anfragen]Anf_Parameter:=$2
End if
SAVE RECORD([SP Anfragen])
$0:=[SP Anfragen]Anf_Nr
Die Methode gibt die Nummer der Anfrage zurück. Die Funktion Sequence number stellt ihre Einzigartigkeit sicher. Wurde der
Datensatz in der Datenbank [SP Anfragen] hinzugefügt, kann der Client das Datenfeld [SP Anfragen]Anf_Status befragen und
abwarten, bis die Serverprozedur die Anfragen vollständig bearbeitet hat.
Den Status der Anfrage abfragen und das Ergebnis auf dem Client-Rechner erhalten
Die Projektmethode Client get result ist eine generische Methode zum Abfragen des Status der Anfrage. Wie bereits erwähnt,
weiss der Client, sobald das Datenfeld [SP Anfragen]Anf_Status einen anderen Wert als 1 hat, dass die Serverprozedur die
Anfrage bearbeitet hat (erfolgreich oder nicht erfolgreich).
` Projektmethode Client get result
` Client get result ( Long ; ->BLOB {; Long } ) -> Long
` Client get result ( Anfrage-Nr; ->Daten {; Delay } ) -> Error Code
C_LONGINT($0;$1;$vlDelay)
$0:=1
$vlDelay:=0
If(Count parameters>=3)
$vlDelay:=$3
End if
READ ONLY([SP Anfragen])
Repeat
QUERY([SP Anfragen];[SP Anfragen]AnfID=$1)
If(Records in selection([SP Anfragen])>0)
If([SP Anfragen]Anf_Status&NBSP;#&NBSP;1)
$2->:=[SP Anfragen]Anf_Daten
READ WRITE([SP Anfragen])
While(Locked([SP Anfragen]))
WAITING LOOP($vlDelay)
LOAD RECORD([SP Anfragen])
End while
DELETE RECORD([SP Anfragen])
$0:=[SP Anfragen]Anf_Status
End if
Else
` Datensatz für die Anfrage ging verloren!
` Das sollte zwar nicht passieren. Setze trotzdem den Fehler auf -2 (willkürlicher Wert)
$0:=-2
End if
` Die Anfrage wurde noch nicht bearbeitet
If($0=1)
WAITING LOOP($vlDelay)
End if
Until($0&NBSP;#&NBSP;1)
READ ONLY([SP Anfragen])
Hat die Serverprozedur die Anfrage erfolgreich bearbeitet, kopiert die Methode das Ergebnis (falls vorhanden) aus dem Datensatz
in das BLOB, dessen Zeiger als Parameter übergeben wurde. Die aufrufende Methode analysiert und verwendet dann die BLOB
Daten je nach Art der Anfrage. Beachten Sie, dass der Client für das Löschen des Datensatzes [SP Anfragen] zuständig ist, sobald
die Anfrage vollständig bearbeitet ist.
Die kleine Projektmethode WAITING LOOP durchläuft die Schleife, bis eine Anzahl Ticks vergangen ist:
`Projektmethode WAITING LOOP
` WAITING LOOP ( Long )
` WAITING LOOP ( Delay in ticks )
C_LONGINT($1)
$vlStartTicks:=Tickcount
Repeat
IDLE
Until(((Tickcount-$vlStartTicks)>=$1)|Process aborted)
Zu Erinnerung: Der Befehl hat im Anwendungsprozess keine Auswirkung. Mit der Projektmethode WAITING LOOP wartet der
Zu Erinnerung: Der Befehl hat im Anwendungsprozess keine Auswirkung. Mit der Projektmethode
wartet der
Prozess die erforderliche Zeitspanne ab, selbst wenn die Anfrage von einem Benutzerprozess auf einem Client-Rechner ausging.
Serverprozeduren und dazugehörige Unterroutinen
Die Projektmethode SP SERVICES läuft als Serverprozedur auf dem Server-Rechner. Der gesamte Aufbau dieser Methode, hier
gezeigt in Pseudocode, ist denkbar einfach:
Initialisiere eine Variable “stop”
Wiederhole
Suche nach Anfragen mit dem Wert des Datenfeldes [SP Anfragen]Anf_Status ist gleich 1
Für jede Anfrage
Rufe je nach Art der Anfrage eine Unterroutine auf
die das Ergebnis im Datenfeld [SP Anfragen]Anf_Daten speichert
Ändere den Status der Anfrage, so dass der Client weiß, was passiert ist
Ende für
“Schlafe” ein wenig vor erneutem Starten
Bis die Variable “stop” den Wert wahr hat.
Hier ist der echte Source Code:
` Projektmethode SP SERVICES
` Die Serverprozedur startet
vbStopSPServices:=False
` Die Serverprozedur benötigt auf Tabellen etc. keinen Zugriff im Lese/Schreibmodus
READ ONLY(*)
` ...außer der Tabelle [SP Anfragen]
READ WRITE([SP Anfragen])
Repeat
` Suche nach noch nicht bearbeiteten Anfragen
QUERY([SP Anfragen];[SP Anfragen]Anf_Status=1)
` Bearbeite diese Anfragen eine nach der anderen
For($vlRecord;1;Records in selection([SP Anfragen]))
` Ist der Datensatz Anfrage gesperrt, warte bis er freigegeben wird
While(Locked([SP Anfragen]))
` Warte eine Sekunde vor erneutem Versuch
DELAY PROCESS(Current process;60)
` Versuche, Zugriff im Lese/Schreibmodus zu erhalten
LOAD RECORD([SP Anfragen])
End while
` Nimm an, dass die Anfrage erfolgreich bearbeitet wird
[SP Anfragen]Anf_Status:=0
Case of
:([SP Anfragen]Anf_Typ="Server Information")
SP DO SERVER INFORMATION
:([SP Anfragen]Anf_Typ="Volume List")
SP DO VOLUME LIST
:([SP Anfragen]Anf_Typ="Browse Directory")
SP DO BROWSE DIRECTORY([SP Anfragen]Anf_Parameter)
` ...
` HIER KÖNNEN ANDERE ANFRAGETYPEN HINZUGEFÜGT WERDEN!
` ...
Else
` Der Anfragetyp ist unbekannt, gibt Fehler -1 zurück (willkürlicher Wert)
[SP Anfragen]Anf_Status:=-1
End case
` Sorge dafür,dass der Anfragestatus ungleich 1 ist
` (falls eine Unterroutine ihn auf 1 setzt)
If([SP Anfragen]Anf_Status=1)
[SP Anfragen]Anf_Status:=-3
End if
` Aktualisiere den Datensatz Anfrage
SAVE RECORD([SP Anfragen])
` Gehe zur nächsten unbearbeiteten Anfrage
NEXT RECORD([SP Anfragen])
End for
` Gib den zuletzt bearbeiteten Datensatz Anfrage frei
UNLOAD RECORD([SP Anfragen])
` Warte eine Sekunde vor erneutem Starten der Antwort auf die Anfrage
DELAY PROCESS(Current process;60)
` Bleibe in der Schleife, bis die SP angewiesen wird, die Ausführung zu stoppen
Until(vbStopSPServices)
Die Projektmethode SP SERVICES kann als Vorlage zur Integration neuer Services in einer Datenbank dienen. In diesem
Abschnitt betrachten wir näher die Unterroutinen SP DO SERVER INFORMATION und SP DO VOLUME LIST. Die Unterroutine
SP DO BROWSE DIRECTORY, die den Parameter übernimmt, den der Client im Datenfeld [SP Anfragen]Anf_Parameter
übersendet, wird hier nicht erläutert.
Die Projektmethode SP SERVICES ruft je nach Anfragetyp eine Unterrroutine auf, welche die resultierenden Daten im Datenfeld
[SP Anfragen]Anf_Daten speichert. SP SERVICES sichert den Datensatz und ändert den Status der Anfrage.
Hier folgt die Unterroutine SP DO SERVER INFORMATION. Sie speichert die server-bezogene Information im BLOB. Eine
andere Projektmethode entnimmt die BLOB Daten entsprechend auf dem Client-Rechner.
` Projektmethode SP DO SERVER INFORMATION
TEXT TO BLOB(Application version(*);[SP Anfragen]Anf_Daten;UTF8 C string)
TEXT TO BLOB(Structure file;[SP Anfragen]Anf_Daten;UTF8 C string;*)
TEXT TO BLOB(Data file;[SP Anfragen]Anf_Daten;UTF8 C string;*)
PLATFORM PROPERTIES($vlPlatform;$vlSystem;$vlMachine)
VARIABLE TO BLOB($vlPlatform;[SP Anfragen]Anf_Daten;*)
VARIABLE TO BLOB($vlSystem;[SP Anfragen]Anf_Daten;*)
VARIABLE TO BLOB($vlMachine;[SP Anfragen]Anf_Daten;*)
Hier folgt die Unterroutine SP DO VOLUME LIST. Sie speichert die volume-bezogene Information im BLOB. Eine andere
Projektmethode entnimmt die BLOB Daten entsprechend auf dem Client-Rechner.
` Projektmethode SP DO VOLUME LIST
VOLUME LIST($asVName)
$vlSize:=Size of array($asVName)
ARRAY REAL($arVSize;$vlSize)
ARRAY REAL($arVUsedSpace;$vlSize)
ARRAY REAL($arVFreeSpace;$vlSize)
For($vlElem;1;$vlSize)
VOLUME ATTRIBUTES($asVName{$vlElem};$arVSize{$vlElem};$arVUsedSpace{$vlElem}
;$arVFreeSpace{$vlELem})
End for
VARIABLE TO BLOB($asVName;[SP Anfragen]Anf_Daten)
VARIABLE TO BLOB($arVSize;[SP Anfragen]Anf_Daten;*)
VARIABLE TO BLOB($arVUsedSpace;[SP Anfragen]Anf_Daten;*)
VARIABLE TO BLOB($arVFreeSpace;[SP Anfragen]Anf_Daten;*)
Die Server Information auf einem Client-Rechner zeigen
Mit den generischen Projektmethoden Client post request und Client get result zeigt die Projektmethode
M_SERVER_INFORMATION die Serverinformation an, die die Serverprozedur auf dem Client-Rechner zurückgibt. Diese
Methode kann einem Menübefehl zugeordnet werden oder z.B. über eine Objektmethode für eine Schaltfläche aufgerufen werden:
` M_SERVER_INFORMATION
C_BLOB(vxData)
C_LONGINT($vlAnf_Nr;$vlErrCode;$vlOffset)
` Stelle die Anfrage
$vlAnfID:=Client post request("Server Information")
` Frage den Anfragestatus ab und erhalte das Ergebnis
$vlErrCode:=Client get result($vlAnfID;->vxDaten;60)
` Ist die Anfrage erfolgreich abgeschlossen, zeige das Ergebnis an
If($vlErrCode=0)
` Entnehme die Information aus dem BLOB
$vlOffset:=0
vsServerVersion:=BLOB to text(vxDaten;UTF8 C string;$vlOffset)
vsStructureFile:=BLOB to text(vxDaten;UTF8 C string;$vlOffset)
vsDataFile:=BLOB to text(vxDaten;UTF8 C string;$vlOffset)
BLOB TO VARIABLE(vxDaten;$vlPlatform;$vlOffset)
BLOB TO VARIABLE(vxDaten;$vlSystem;$vlOffset)
BLOB TO VARIABLE(vxDaten;$vlMachine;$vlOffset)
` Analysiere die Plattform Eigenschaften
vs4DPlatform:="Unbekannte 4D Server Version"
vsSystem:="Unbekannte System Version"
vsMachine:="Unbekannter Rechner"
`...
` Hier ist der Code (nicht aufgelistet) der $vlSystem und $vlMachine analysiert
` (siehe Beispiel für den Befehl PLATFORM PROPERTIES)
` ...
` Zeige das Ergebnis
DIALOG([SP Anfragen];"SERVER INFORMATION")
Else
ALERT("Anfrage error "+String($vlErrCode))
End if
` BLOB wird nicht länger benötigt
CLEAR VARIABLE(vxDaten)
Hier ist das Formular [SP Anfragen];"SERVER INFORMATION" in der Ausführung:
Laufwerke des Server-Rechners auf einem Client-Rechner anzeigen
Mit den generischen Projektmethoden Client post request und Client get result zeigt die Projektmethode
M_SERVER_VOLUMES auf dem Client-Rechner die Laufwerke des Server-Rechners an, die die Serverprozedur zurückgibt.
Diese Methode kann einem Menübefehl zugeordnet werden oder z.B. über eine Objektmethode für eine Schaltfläche aufgerufen
werden:
` M_SERVER_VOLUMES
C_BLOB(vxDaten)
` Stelle die Anfrage
$vlReqID:=Client post request("LAUFWERK")
` Frage den Anfragestatus ab und erhalte das Ergebnis
$vlErrCode:=Client get result($vlAnf_Nr;->vxDaten;120)
` Ist die Anfrage erfolgreich abgeschlossen, zeige das Ergebnis an
If($vlErrCode=0)
` Entnehme die Information aus dem BLOB
$vlOffset:=0
BLOB TO VARIABLE(vxDaten;asVName;$vlOffset)
BLOB TO VARIABLE(vxDaten;arVSize;$vlOffset)
BLOB TO VARIABLE(vxDaten;arVUsedSpace;$vlOffset)
BLOB TO VARIABLE(vxDaten;arVFreeSpace;$vlOffset)
For($vlElem;1;Size of array(arVSize))
` Konvertiere von bytes in MB
arVSize{$vlElem}:=arVSize{$vlElem}/1048576
arVUsedSpace{$vlElem}:=arVUsedSpace{$vlElem}/1048576
arVFreeSpace{$vlElem}:=arVFreeSpace{$vlElem}/1048576
End for
` Zeige das Ergebnis
DIALOG([SP Anfragen];"LAUFWERK")
Else
ALERT("Anfrage error "+String($vlErrCode))
End if
` BLOB wird nicht länger benötigt
CLEAR VARIABLE(vxDaten)
Hier ist das Formular [SP Anfragen];"LAUFWERK" in der Ausführung:
Attribut Auf Server ausführen
Das Attribut "Auf Server ausführen" können Sie im Dialogfenster Methodenauswahl-Eigenschaften und Methode-Eigenschaften
festlegen:
Die Eigenschaft wird nur für eine 4D Anwendung im Client/Server-Modus berücksichtigt.
Ist diese Option markiert, wird die Projektmethode immer auf dem Server ausgeführt, unabhängig davon, wie sie aufgerufen wird.
Kontext der Ausführung
Der Kontext der Ausführung für Projektmethoden ist derselbe wie für Trigger: Die Methode auf dem Server verwendet in der
Datenbank denselben Kontext zum Sperren von Datensätzen und für Transaktionen wie auf der Client-Seite, aber nicht denselben
Sprachkontext (Prozessvariablen, Mengen, aktuelle Auswahlen). Weitere Informationen dazu finden Sie im Abschnitt Einführung.
Alle Parameter der Methode ($1, $2, etc.) werden an den Server gesendet und der Wert des Parameters $0 - falls übergeben wird an den Client zurückgegeben.
Im Gegensatz zur Funktion erstellt diese Option keinen Prozess auf dem Server. 4D Server verwendet den "Zwillingsprozess" des
Client-Prozesses, der die Ausführung anfordert.
Diese Option vereinfacht außerdem das Delegieren der Ausführung einer Methode auf dem Server, da die Parameter automatisch
in beiden Richtungen übertragen werden, wie beim normalen Aufruf einer Methode. Der Transfer läuft wie bei der Funktion
asynchron und benötigt deshalb mehr Programmierung und verwendet Semaphoren zum Lesen der Ergebnisse.
Verwendbare Befehle
Für Methoden mit dem Attribut "Auf Server ausführen" gelten dieselben Regeln wie für Serverprozeduren. Für einige Befehle ist die
Ausführung auf dem Server nicht erlaubt, für andere wird die Ausführung auf dem Server nicht empfohlen. Weitere Informationen
dazu finden Sie im Abschnitt Serverprozeduren.
Zeiger
Übergeben Sie einen Zeiger für eine Variable (einfache Variable, Array oder Array-Element), wird der Wert mit Zeiger auch an den
Server gesendet. Wird er auf dem Server durch eine Methode geändert, wird der geänderte Wert an den Client zurückgesendet,
um die entsprechende Variable auf der Client-Seite zu aktualisieren.
Zeiger auf eine Tabelle oder ein Datenfeld werden als Referenzen gesendet (Tabellennummer, Datenfeldnummer). Der Wert des
aktuellen Datensatzes wird nicht automatisch ausgetauscht.
Hinweis: Diese Option arbeitet im interpretierten und im kompilierten Modus gleich.
Beispiel
Hier ein Beispiel für die Projektmethode Myappli mit dem Attribut "Auf Server ausführen":
C_POINTER($1) `Zeiger auf Tabelle
C_POINTER($2) `Zeiger auf Feld
C_POINTER($3) `Zeiger auf Array
C_TEXT($4) `Wert, nach dem gesucht wird
C_LONGINT($0) `Ergebnis
`Suchen a Werte für jeden Datensatz zurücksenden
QUERY($1->;$2->=$4)
While(Not(End selection($1->)))
APPEND TO ARRAY($3->;myFormula($1))
NEXT RECORD($1->)
End while
UNLOAD RECORD($1->)
$0:=Records in selection($1->)
Auf der Client-Seite wird die Methode folgendermaßen aufgerufen:
ARRAY TEXT(myArray;0)
$vlnum :=MyAppli(->[Table_1] ;->[Table_1]Field_1 ;->myArray;"to find")
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement