ac-stress - Allegro-C-Stresstest

Testscript zur Belastungsanalyse einer Allegro-Datenbank ($a-Schema)

Allegro-A99-Testscript "ac-stress.flx" Version 1.5

 
Zweck: Dieses Script testet die Geschwindigkeit und Fehlerfreiheit des Datenbank-Zugriffs unter a99 und hoher Last. Das Ziel dabei ist es, Dateizugriffskonflikte zu provozieren um deren fehlerfreie Auflösung testen zu können.
Voraussetzungen: A99 mit einer nicht produktiv genutzen Datenbank (evtl. Kopie der Arbeitsdatenbank, die demo-Datenbank ist zu klein, um aussagekräftige Ergebnisse erhalten zu können).
Installation: Das Test-Script "ac-stress.flx" aus dem zip-Archiv auspacken und im Flex- oder Datenbank-Verzeichnis ablegen.
Funktionsweise: Eine wählbare Menge an Datensätzen wird zyklisch verriegelt, gelesen, verändert, wieder in die Datenbank zurückgeschrieben und entriegelt.
Dazu sind Pausenzeiten, Messzeiten und Verwendung des Allegro-eigenen Offline-Speichers einstellbar.
Die Deaktivierung des Offline-Speichers erfolgt durch dessen Löschung nach jedem Speichervorgang.
Zur Veränderung der Datensätze wird der Inhalt der Kategorie #31 mit Zeichenketten "ZZACS TEST n XX" gefüllt (n = Zähler)
Start:  X ac-stress
    (im a99-Schreibfeld eingeben)
Bedienung:  Nach dem Start können folgende Einstellungen vorgenommen werden:
  Ergebnismenge  Auswahl der zu verwendenden Datensätze
Über das das Index-Fenster wählen Sie einen Eintrag mit mehreren Datensätzen (2 ... 10) aus
Eine geringere Anzahl von ausgewählten Datensätzen provoziert eine höhere Warscheinlichkeit von aufzulösenden Konflikten.
  Pause Zusätzliche Wartezeit Zeit in Millisekunden zwischen zwei Zyklen
Eine Pause von 0 verursacht die maximale Last
  Meßzeit   Zur Bestimmung der Zugriffsrate in Lese+Schreibzyklen/Sekunde
  Offline-Speicher   kann verwendet oder deaktiviert werden
Die Deaktivierung des allegro-eigenen Offline-Speichers kostet etws mehr lokale Rechenzeit, erhöht jedoch erfahrungsgemäß die Stabilität der Script-Anwendungen im Netzwerk
  Die angegebenen Werte merkt sich das Programm in der Datei "ac-stress.ini" im Datenbank-Verzeichnis. Beim Start des Testscripts von weiteren Stationen aus werden diese Werte dann jeweils vorgegeben und können mit <ENTER> einfach übernommen werden.
Fehlermeldungen: Satz xxx erst beim n. Versuch gespeichert
    nicht kritisch, zeigt hohe Last an
  Satz "xxx": Zuordnung Satznummer -> Inhalt #99n verändert! (ab V1.5)
    kritisch; unter der erwarteten Satznummer wurde ein anderer Datensatz geladen. Das passiert, wenn zwei a99 auf dem gleichen PC mit dem gleichen temporären Verzeichnis und der gleichen Ergebnismenge gestartet werden
  Satz xxx konnte 10x nicht gespeichert werden - Abbruch  
    kritisch; wenn dieser Fehler nicht durch besonders enge Testeinstellungen (Pause<5ms, weniger als (Instanzen*2 Datensätze) provoziert wurde, sind in Produktivumgebung Probleme bei der Anwendung zu erwarten.
Wenn dieser Fehler auf mehreren Clients gleichzeitig auftritt, ist ein echter Datenbank-Fehler entstanden (verbliebene Satz- oder Datenbank-Sperre)
  Satz Nr. xxx konnte nicht gesperrt werden
    kritisch; wie vorher
  !.TBL gesperrt, Speichern nicht möglich
    kritisch; wie vorher
  !inkonsistente Daten (Record xxx)
    kritische Fehlfunktion; nach dem Verriegeln ließ sich der Satz nicht mehr lesen
  !Speicherfehler : MP_PutUnlock(free record #nnn)
    kritische Fehlfunktion; der Lock-Zustand des aktuellen Datensatzes wurde offensichtlich von einer anderen Programm-Instanz aufgehoben.
  diff nnn
    kritischer Fehler im Zusammenhang mit einem inkonsistentem Allegro-eigenen Offline-Speicher (nnn ist die Satznummer)
  Popup: "Sorry, jemand anders war schneller ..."
    kritische Fehlfunktion; Diese Meldung zeigt an, dass trotz scheinbar erfolgtem Record-Lock mindestens zwei Prozesse einen Datensatz gleichzeitig geändert haben oder der nach 'set rec lock' gelesene Satz nicht mit dem in der Datenbank befindlichen übereinstimmte.
Auch im Netzwerk nicht synchronisierte PC-Uhren können diesen Fehler verursachen
  Kritisch sind alle weiteren Fehlermeldungen, die als Popup direkt aus a99 heraus angezeigt werden.

Hat die Testdatenbank während des Test bleibende Schäden erlitten, lassen sich diese durch einen "vollständigen Neuaufbau" der Datenbank beheben. (a99-Schreibzeile: h org)

Script-Dateien V1.5 herunterladen    

ältere Versionen:

ac-stress V1.4    
Beschreibung zur Version 1.4 als pdf-Datei herunterladen

 
Artikel zuletzt bearbeitet am: 03.03.2023 20:40