Neu vorgestellt, Programmierung

Duplizieren des Clients per Prozedur

Die geänderte Lizenzierung der 5.6 – ein User pro Arbeitsplatz unabhängig von der Anzahl der Datenbankverbindungen – schafft Raum für neue Anwendungsmodelle. Die Verwendung mehrerer Client-Instanzen ohne erneute Benutzeranmeldung ist dabei ein wichtiger Baustein.


Ab der 5.6.05 kann per Prozedurbefehl eine weitere Instanz des Clients gestartet werden. SysClone() startet den Client aus demselben Verzeichnis wie die schon laufende Instanz. Wahlweise kann entweder der Standard- oder der Advanced-Client ausgeführt werden. Der Rückgabewert ist die Prozess-ID der neuen Instanz.

Optional kann eine abweichende Startprozedur für den Client angegeben werden. Zusätzlich lasssen sich auch Kommandozeilen-Parameter an die neue Client-Instanz übergeben. Last but not least kann auch noch ein abweichender CONZEPT 16-Benutzer verwendet werden, das Kennwort muss dann allerdings bei SysClone() mit übergeben werden.

Die Vorteile der Funktion bestehen zum einen im Wegfall der erneuten Eingabe von Benutzernamen und Kennwort, zum anderen ist keine Kenntniss des ursprünglichen Programmverzeichnisses notwendig.

Durch weitere Instanzen des Clients lassen sich unabhängige Frames ausführen, wodurch beispielsweise eine ständiger Fensterwechsel innerhalb der Applikation entfallen kann.

5 Kommentare

5 Kommentare “Duplizieren des Clients per Prozedur”

  1. Wie generieren bei uns eine Tray-Instanz über SysExecute und kommunizieren mit ihr über Socket.
    Falls diese Instanz z.B. vom Benutzer beendet wurde, wäre es schön, wenn man das Vorhandensein des Prozesses über die PID prüfen könnte, statt bei SckConnect() auf einen Timeout warten zu müssen.

  2. Eine direkte Kommunikation ist mit der PID alleine nicht möglich. Die PID wird für alle weitergehenden Funktionen benötigt, da sie den gestarteten Client-Prozess identifiziert. Die PID kann beispielsweise an eine DLL-Funktion übergeben werden.

    Im Client selbst kann die PID per _Sys->spProcessID ermittelt werden. Dadurch ist auch eine "Kommunikation" zwischen den Clients per Datenbanktabelle oder RmtData() möglich.

Kommentar abgeben