![]() Home Grundsätzliches Installation Konfiguration Erste Schritte Laufzeitschalter Textdateien Systemfunktionen Tabellenfunktionen Indexfunktionen Volltext-Indizierung Memos und Blobs Semaphoren-Konzept Support Datenbank Einführungskurs |
Programmsteuerung über tdbengine.iniJedesmal, wenn tdbengine gestartet wird, liest das Programm zunächst die Datei tdbengine.ini. Über diese Datei wird das Verhalten von tdbengine weitgehend definiert. Sie muss im gleichen Verzeichnis sein wie tdbengine (bzw. tdbengine.exe).tdbengine.ini wird im Format von Windows-Konfigurationsdateien gestaltet, die in einzelnen Abteilungen Zeilen der Form "Schlüssel=Wert" enthält. Die Abteilungen werden durch Begriffe in eckigen Klammern definiert. Der erste Teil unter der Abteilung [globals] beinhaltet die allgemeinen Einstellungen. Folgende Einträge sind möglich (bitte beachten Sie Groß/Kleinschreibung): Abschaltung der cgi-Aktivitäten unter der tdbenginestopcgi=0|1location=url Ist stopcgi auf 1 gesetzt, so wird kein CGI-Programm ausgeführt, sondern die unter location angegebene Seite angezeigt. Ist keine location angegeben, so erfolgt die Ausgabe "cgi-execution ist stopped". Definition des globalen Semaphoren, der verwendet wird, wenn für ein Programm kein eigener Semaphor eingerichtet wirdsema=nametimeout=xxxxx overrun=url Der Name darf maximal 64 Zeichen beinhalten. Bevor des CGI-Programm ausgeführt wird, wartet die tdbengine, bis der Semaphor mit dem angegebenen Namen frei wird, um ihn dann seinerseits zu belegen. Derzeit handelt es sich dabei ausschließlich um binäre Semaphoren, sie können also immer nur von einem Prozeß genutzt werden. Ein solcher Semaphor stellt also sicher, daß immer nur ein Prozess gleichzeitig aktiv ist. Das Semaphorenkonzept ersetzt die Netzwerkroutinen der TurboDatenbank. Sollen Datenbanken gleichzeitig mit der Netzwerkversion des VDP (bzw. der TurboDatenbank) genutzt werden, so ist ein spezielle Mehrplatzversion der tdbengine erhältlich. Hinweis: Die Steuerung über Semaphoren ist wesentlich schneller als das herkömmliche File- und Record-Locking. Erfolgt die Freigabe nicht innerhalb der duch timeout (Millisekunden) angegeben Zeit, so wird die Ausführung abgebrochen und statt dessen die in overrun angegebene Seite ausgeführt. Mit dem Namen "nosema" wird gekennzeichnet, daß für das CGI-Programm kein Semaphor eingerichtet wird. Tip: Reine Datenbank-Abfrage-Systeme wie Lexikon-Suchen etc. benötigen keine Semaphoren. Nur wenn gleichzeitig schreibende Zugriffe auf Datenbestände erfolgen, müssen Semaphoren eingerichtet werden. Logfile-Führung einschaltenlogcgi=0|1Wird logcgi auf 1 gesetzt, so wird jeder CGI-Aufruf in der Datei cgi.log (im Verzeichnis der tdbengine) protokolliert: Datum und Zeit des Aufrufs, Zeit für die Datenübertragung zum CGI-Programm, Ausführungszeit, Zeit für die Datenübertragung zum Klienten, Name des Programms. Logfile festlegenlog=<Pfad zum Logfile>Normalerweise wird das Logfile im gleichen Verzeichnis, in dem sich auch die tdbengine befindet, unter dem Namen "cgi.log" angelegt. Dies kann hiermit überschrieben werden. Damit ist es möglich, dem tdbengine-Verzeichnis restriktive Rechte zu erteilen. CGI-Puffer definierencgibuf=nnnnDamit eine schlechte(=langsame) Übertragung zu einem Klienten nicht zu überflüssigen Sperren führt, puffert die tdbengine die Ausgaben an den Klienten. nnnn ist die Größe des Puffers in Bytes (Minimum = 1024). Verzeichnisse festlegenlibpath=SuchpfadDamit kann man einen Suchpfad eingeben, der verwendet wird, wenn in ein Programm mit USES auf Bibliotheken zugegriffen wird und dabei kein kompletter Pfad angegeben wird. Die einzelnen Komponenten des Suchpfads können mit ";" oder ":" getrennt werden. semadir=Verzeichnis für Semaphoren In diesem Verzeichnis werden die Semaphoren als Dateien angelegt. Vorgabe ist ./ Default-WerteFolgende Werte sind voreingestellt, wenn keine tdbengine.ini vorhanden ist oder die entsprechenden Einträge unter [globals} fehlen:[globals] stopcgi=0
Programmbezogenene EinträgeFür jedes Programm kann eine eigene Abteilung definiert werden, deren Einträge dann die unter [globals] überschreiben. Folgende Einträge sind hier zulässig:stopcgi
Der Name der Abteilung lautet wie der Programmname ohne Extension. Hinweis: stopcgi überschreibt den gleichen Wert aus [globals] nur, wenn dieser dort mit 0 festgelegt ist, andernfalls sind alle Programme gestoppt. Beispiel:Eine einfache tdbengine.ini könnte beispielweise so aussehen:[globals] stopcgi=0
[meinprogramm] sema=sonderfall
Lokale KonfigurationsdateienNormalerweise verwendet die tdbengine die Konfigurationsdatei aus dem gleichem Verzeichnis, in dem auch das ausführbare Programm selbst liegt.Bevor ein Programm ausgeführt wird, wechselt die tdbengine in dasjenige
Verzeichnis, in dem das Programm enthalten ist. Befindet sich in diesem
Verzeichnis eine Datei tdbengine.ini, so wird diese als
Das hat viele Vorteile: * lokale Konfigurationsdateien sind übersichtlicher
Tipps Tipps TippsBeispiel: Während einer Reorganisation der Datenbank soll kein CGI-Programm laufen. Das kann ganz einfach mit folgendem Programmfragment erreicht werden:VARDEF ini : STRING ini:='/home/tdbengine/bin/tdbengine.ini'
Hierzu muss freilich dem anonymen http-user ein Schreibrecht auf tdbengine.ini eingeräumt worden sein. |