Deutsch English
Blog
Home
Über tdbengine
Newsletter
Download
Helpware
Chat
Dokumentation
Installation
Konfiguration
Erste Schritte
Variablentypen
Laufzeitschalter
Textdateien
Systemfunktionen
Tabellenfunktionen
Indexfunktionen
Volltext-Indizierung
Memos und Blobs
Semaphoren-Konzept
Fehlermeldungen
Tipps für PHP Programmierer
Locking daemon
Einführungskurs
Befehlsreferenz
HOWTO - Wie kann ich...?
Projekte
Links
Benchmarks
Bug Reporting
Supportanfrage
 
Home    Überblick    Suche    Impressum    Kontakt    Mitglieder
Programmsteuerung über tdbengine.ini
Jedesmal, wenn tdbengine gestartet wird, liest das Programm zunächst die Datei tdbengine.ini. Über diese Datei wird das Verhalten von tdbengine weitgehend definiert.

Die Konfigurationsdatei wird in folgenden Verzeichnissen gesucht:

1. Im Verzeichnis, in dem sich das auszuführende Programm befindet
2. Im Verzeichnis, in dem sich die (ausführbare) tdbengine(.exe) befindet
3. Im Verzeichnis /etc/tdbengine

Auf Windows-Systemen entfällt 3.

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 tdbengine

stopcgi=0|1
location=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 wird

sema=name
timeout=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 durch 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 einschalten

logcgi=0|1

Wird 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 festlegen

log=<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 definieren

cgibuf=nnnn

Damit 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 festlegen

libpath=Suchpfad

Damit 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 .

errorlog=/var/log/tdbengine/error_log

cdmode=1
Mit cdmode=1 in der Abteilung [globals] der tdbengine.ini kann festgelegt werden, dass sämtliche Tabellen im R/O-Modus geöffnet werden, auch wenn im Programm etwas anderes angegeben ist. Textdateien, die zum Schreiben geöffnet werden, werden automatisch zu Ramtexten.

nobreak=0

Default-Werte


Folgende Werte sind voreingestellt, wenn keine tdbengine.ini vorhanden ist oder die entsprechenden Einträge unter [globals] fehlen:

[global]
stopcgi=0
sema=cgi
timeout=10000
logcgi=1
log=<Installationverzeichnis>/log.cgi
semadir=./
libpath=
cgibuf=65535
cdmode=0
errorlog=<Installationverzeichnis>/error.log

Programmbezogenene Einträge


Fü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

location
sema
timeout
overrun
cgibuf
log

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
location=http://my.host.de/reconstruction.html
sema=cgi
timeout=5000
overrun=http://my.host.de/overrun,html
logcgi=1
log=/var/log/tdbengine.log
libpath=/home/tdbengine/utils:/dos/c/vdp/lib
semadir=sema

[meinprogramm]

sema=sonderfall
timeout=1000
overrun=http://www.irgendwo.com/ueberlauf.html
cgibuf=200000
...

Lokale Konfigurationsdateien


Normalerweise 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
(ausschließliche) Konfigurationsdatei verwendet.

Das hat viele Vorteile:

* lokale Konfigurationsdateien sind übersichtlicher
* die Konfigurationsdatei kann für ein Projekt maßgeschneidert werden
* bei der Weitergabe an Dritte ist die Konfiguration im Projekt enthalten

Tipps Tipps Tipps


Beispiel: Während einer Reorganisation der Datenbank soll kein CGI-Programm laufen. Das kann ganz einfach mit folgendem Programmfragment erreicht werden:

VAR ini : STRING ini:='/home/tdbengine/bin/tdbengine.ini'
SetIdent(ini,'globals.stopcgi','1')
Pause(100) / sicher ist sicher
...
// hier wird reorganiisiert
...
SetIdent(ini,'globals.stopcgi','0')

Hierzu muss freilich dem anonymen http-user ein Schreibrecht auf tdbengine.ini eingeräumt worden sein.



tdbengine Anwendungen im Web:

Open-Source Web CMS


Open-Source Bug-Tracking


Free wiki hosting

Open-Source Wiki-System

Kostenloses Foren-Hosting

Diät mit tdbengine 8-)

tdbengine chat
irc.tdbengine.org
#tdbengine

   Copyright © 2003-2004 tdb Software Service GmbH
   Alle rechte vorbehalten. / All rights reserved
   Letzte Änderung: 25.11.2003


ranking-charts.de

Programmers Heaven - Where programmers go!