<< | Inhaltsverzeichnis | Suchen | >> |
Funktion
Syntax: |
KILL_USER_ON_SERVER(<PROTOKOLL>,<SERVERNAME>, |
Bedeutung: |
Jeder Client kann eine noch bestehende Verbindung zu einem EBUS-Server trennen. Zur eindeutigen Identifizierung müssen die <USER-NUMMER> und der <CLIENT-NAME> angegeben werden. Die <USER-NUMMER> wird von der Funktion GET_CLIENT_USER_NUMBER geliefert. Der <CLIENT-NAME> ist in der Variablen EBUS_CLIENT_NAME$ gespeichert. Es ist nicht sehr sinnvoll, eine aktuelle Server-Verbindung mit KILL_USER_ON_SERVER zu trennen. Diese Funktion ist vielmehr dazu gedacht, nach einem Client-Absturz eine alte noch bestehende Verbindung zu trennen, damit eventuell noch gesperrte Datensätze auf dem EBUS-Server freigegeben werden können. Wenn z.B. auf dem EBUS-Server unter Einstellungen eine Zeitspanne von 10 Minuten festgelegt ist, so dauert es mindestens 10 Minuten, bis ein abgestürzter Client automatisch getrennt wird und damit die gesperrten Datensätze freigegeben werden. Man kann die Programme z.B. nun so programmieren, daß jedes Programm beim Start überprüft, ob es beim letzten Aufruf ordnungsgemäß beendet wurde oder abgestürzt ist. Dazu wird nach dem Öffnen der Indexdateien die User-Nummer (GET_CLIENT_USER_NUMBER) und der Client-Name (EBUS_CLIENT_NAME$) in eine Datei geschrieben. Im ON EXIT MACRO werden diese Einträge in der Datei wieder gelöscht. Beim Programmstart werden diese Daten aus der Datei gelesen. Sind sie vorhanden, so ist das Programm oder der Rechner beim letzten Aufruf abgestürzt. Mit Hilfe der Funktion KILL_USER_ON_SERVER, der User-Nummer und dem Client-Namen kann diese alte Verbindung dann getrennt werden. Dieses Vorgehen hat den Vorteil, daß nach einem Rechnerabsturz das Programm nur erneut gestartet werden muß, um eine alte Verbindung zu trennen. Folgende Protokolle sind zulässig: ncacn_ip_tcp Connection-oriented TCP
over IP <SERVERNAME> ist der Name des NT-Servers. <ENDPOINT> bezeichnet den Endpoint. <ENDPOINT> ist nur bei einigen Protokollen notwendig, z.B. genügt bei TCP/IP (ncacn_ip_tcp) die Angabe des Servernamens. Die Funktion KILL_USER_ON_SERVER liefert als Ergebnis 0, wenn sie erfolgreich war, andernfalls eine Fehlernummer. Die Fehlernummern sind in der Datei winerror.h im Include-Verzeichnis des C-Compilers aufgelistet. Java-Programme, die unter Windows laufen, können auch auf den EBUS-Server zugreifen. Dazu muß die Datei EbusJNIServer.dll installiert sein. |
Beispiel: |
/* Aktuelle Verbindung trennen |
siehe auch: |