gymel  >> Tools  >> Tbltools

Tbltools

Kleine Programme zum Sperren, Entsperren und Beobachten der Satztabelle von allegro-C-Datenbanken.

 · Locktbl  · Freetbl  · Testtbl  · Viewtbl  · Trigtbl  · Traptbl  · 

[Download] (ZIP-Format, 158kB)
[Download Source] (ZIP-Format, 4.9kB)

Aufrufe

Die Satztabelle ist jeweils mit vollem Pfade und Namen (mit Extension) anzugeben:
c:\allegro\demo\cat.tbl
oder
c:/allegro/demo/cat.tbl

Die Extrablockade-Parameter dienen dazu, starke Netzwerklast zu simulieren: Während der durch die Parameter in ihrer Länge eingestellten Intervalle wird die Satztabelle gegen andere Zugriffe gesperrt, ist also für andere Prozesse nicht einmal lesbar.

Alle Programme erzeugen ziemlich viel Output (nach STDERR):

l: Satztabelle derzeit gesperrt
0: Satztabelle derzeit freigegeben
.: Satztabelle gelockt: Kann nicht lesen
!: Satztabelle nicht lesbar
^Top

Locktbl

Sperrt die Datenbank

Einstellbar ist, ob nach einer gewissen Timeout-Zeit aufgegeben werden soll, Anhand des Error-Level kann anschließend auf erfolgreiches Sperren getestet werden.

Die Extrablockaden spezifizieren ein zusaetzliches Intervall, in dem die Satztabelle (0: nach vorgefundener Freigabe, l: nach vorgefundener/getätigter Sperrung) nicht zugreifbar gehalten wird.

Aufruf:
locktbl Pfad_und_Name_der_TBL [Timeout [Intervall [Extrablockade_nach_0 [Extrablockade_nach_1]]]]
 
Parameter:
Timeout in Sekunden
Interval und Extrablockaden in Millisekunden
 
Timeout 0 oder weggelassen: wartet bis freigegeben
Interval: Pause zwischen Versuchen (Vorgabe: 100)
 
Errorlevel:
0: o.k., gesperrt
1: Timeout
2: Error
^Top

Freetbl

Gibt die Datenbank frei

Die Extrablockaden spezifizieren ein zusaetzliches Intervall, in dem die Satztabelle (0: nach Freigabe, l: vor Freigabe) nicht zugreifbar gehalten wird.

Aufruf:
freetbl Pfad_und_Name_der_TBL [Extrablockade_nach_0 [Extrablockade_nach_1]]
 
Parameter:
Extrablockaden in Millisekunden
 
Errorlevel:
0: o.k., freigegeben
1: ominös: war bereits freigeben
2: Error
^Top

Testtbl

Testet Freigabe

Einstellbar ist, ob nur ein einmaliger Test erfolgen soll oder während einer gewissen Timeout-Zeit alle Interval Sekunden erneut getestet werden soll.

Aufruf:
testtbl Pfad_und_Name_der_TBL [Timeout [Intervall [Extrablockade_nach_0 [Extrablockade_nach_1]]]]
 
Parameter:
Timeout in Sekunden
Interval und Extrablockaden in Millisekunden
 
Timeout 0 oder weggelassen: kehrt sofort zurück
Interval: Pause zwischen Versuchen (Vorgabe: 100)
Errorlevel:
0: Freigegeben
1: Gesperrt
2: Error
^Top

Viewtbl

Wie Testtbl, jedoch nicht mit lock(). Gescheiterte Leseversuche werden daher als ! angezeigt, wo sie bei Testtbl mit . angezeigt würden.

^Top

Trigtbl

Testet Freigabe, Anzeige nur bei Statusänderung

Der Status der Satztabelle wird angezeigt. Danach wird während einer gewissen Timeout-Zeit alle Interval Millisekunden erneut getestet. Anzeige eines Statusbuchstabens erfolgt aber nur, wenn sich der Zustand der Datenbank geändert hat.

Aufruf:
trigtbl Pfad_und_Name_der_TBL [Timeout [Interval]]
 
Parameter:
Timeout in Sekunden (Vorgabe: 100)
Interval zwischen Versuchen in Millisekunden (Vorgabe: 10)
Errorlevel:
0: Freigegeben
1: Gesperrt
2: Error
^Top

Traptbl

Sperrt die Satztabelle, beobachtet und gibt sie wieder frei

Die Satztabelle wird wie durch Locktbl gesperrt. Danach wird während einer gewissen Timeout-Zeit alle Interval Milliekunden erneut getestet (wie bei Viewtbl ohne lock()). Ist sie freigegeben, erfolgt ein Abbruch. AbschlieŠend wird die Satztabelle freigegeben.

Aufruf:
traptbl Pfad_und_Name_der_TBL [Timeout [Interval]]
 
Parameter:
Timeout in Sekunden (Vorgabe: 5)
Interval zwischen Versuchen in Millisekunden (Vorgabe: 100)
Errorlevel:
0: Freigegeben
2: Lock zerbrochen
^Top

Bugs:

Die Zeiten gehen nach dem Mond, da DOS-Software, gelten sie nur für die CPU-Zeit der aktuellen DOS-Box. Es werden keine Timer gesetzt, sondern beim Start der Programme wird etwa die Dauer in eine Anzahl von Wiederholungen umgerechnet. Klar ist nur, daß die Laufzeit mindestens die angegebene Dauer beträgt. Als Faustregel sollte man erst einmal einen Faktor 10 im Vergleich zur tatsächen Zeit annehmen, bei kleinen Werten von Interval kann sogar ein Faktor 100 angemessener sein.


Letzte Aktualisierung: 14.08.1999
submit more bugs here