

Last updated:
June 18, 1998
The following article, written by Karola Kleinle, of Huber CISMsysteme GmbH, Babenhausen, tells of the problems encountered implementing Pragma 5 and Btrieve.
Comments, suggestions, etc. are welcome and will be added to this Technical bulletin.
Pragma 5 und Btrieve Version 6.15 Server Edition
Karola Kleinle
May 27, 1998
Mit Pragma 5 haben wir (Huber CIMsysteme GmbH, Babenhausen) eine Auftragsabwicklung entwickelt, welche die Gebiete Warenanlieferung, -Auslieferung und Verrechnung abdeckt. Durch einen sehr umfangreichen Warendefinitionsvorgang sind ziemlich viel Dateizugriffe notwendig. Augerdem sind die dazu notwendigen Bildschirmmasken mit teilvweise ca. 180 - 200 Elementen pro Fenster fast zu umfangreich. Aber der Kunde hat entsprechende Vorgaben gemacht, so dall es for mich keine andere Möglichkeit gab, die Eingabe so einfach wie möglich zu halten.
All diese Punkte führten natürlich dazu, daß es enorme Geschwindigkeitssprobleme gab. Zunächst verwendeten wir die lokale Btrieve-Engine. Die Daten sind auf dem Server abgespeichert und die jeweilige Applikation lokal auf PC's. Jeder PC arbeitet mit Windows95 (inzwischen SR2). In der Vergangenheit gab es dann immer Probleme mit beschädigten Dateien. Um die ganze Applikation etwas zu beschleunigen und den Dateizugriff zu stabilisieren haben wir uns entschlossen von Btrieve auf Brequest umzustellen. Damit begann ein stetes Testen und Umstellen zwischen Btrieve und Brequest.
Nachdem wir (Peter Huber) Btrieve 6.15 Server Edition installiert hatten startete ich die Ausführung dieser Auftragsabwicklung. Aber bereits beim ersten Dateizugriff trat der Btrtieve-Fehler 97 auf. Dieser Fehler besagt, daß der Data-Buffer zu klein ist. Wir hatten keine Ahnung was man unternehmen mußte. Nachdem wir bei diversen Hotlines angerufen hatte und immer neue Parameter eingestellt werden sollten, waren wir leider kein Schritt weiter. Durch Zufall fanden wir (u.a. Jürgen Huber) dann die Lösung des Problems. In den Option von Pragma5 hatten wir den Parameter für die maximale Rekordgröße auf den Wert 524128 gesetzt, Brequest kann aber nur mit maximal 65516 arbeiten. Sobald wir das wußten und den Parameter richtig eingestelit hatten funktionierte es. Wir testeten dann noch und bekamen vorerst keine weiteren Fehler. Voller Euphorie installierten wir Brequest beim Kunden.
Natürlich konnten wir nicht den Betrieb des Kunden simulieren und prompt kam dann der Fehler 87, die Handle table war voll. Die Änderungen, die ich kurzfristig beim Kunden vor Ort vornahm, zeigten nicht die gewünschte Wirkung. Resigniert stellte ich wieder auf Btrieve um. Leider wurden durch den unterschiedlichen Zugriff von Brequest und Btrieve Dateien beschädigt, die erst wieder mühsam hergestellt werden mußten. Glücklicherweise gingen keine Daten verioren.
Um nun diesen Fehler 87 zu beseitigen, haben wir dann sämtliche Parameter, die im Setup gesetzt werden, um ein vielfaches der Defaultwerte erhöht. Es funktionierte bei den ersten Datensätzen, die getestet wurden problemlos, doch dann trat der nächste Btrieve-Fehier auf. Fehler 95 besagt, daß die Session nicht mehr länger aktiv ist. Wir konnten uns das nicht erklären. Im Setup von Btrieve konnten keine Parameter mehr eingestellt werden. Das erhöhen der SPX-Parameter an den einzelnen PC's hatte nur zur Folge, daß die Wartezeit bis zum Fehler 95 verlängert wurde. Dieser Fehler trat immer bei mehrfachindizierten Dateien auf, somit vermutete ich, daß es mit der Dateidefinition zusammenhing. Allerdings konnten nur einzelen Datensätze dieser Dateien nicht richtig bearbeitet werden. Probleme traten nur beim Speichern auf, Lesen und Löschen zeigten keinen Fehler. Nach langer Suche sind wir dann irgendwann darauf gestoßen, daß die Datensätze einfach zu groß waren, um abgespeichert werden zu können. Durch einen Tip von Manfred Donimierski, der uns darauf hinwies, daß wir in der bstart.ncf vielleicht noch beim Laden von BSPXCOM den w-Parameter und/oder den r-Parameter erhöhen müßten. Wir haben nur den r-Parameter auf 4096 erhöht. Seit diesem Moment lief alles ohne Speicherprobleme durch.
Der ganze Aufwand hat aber gezeigt, daß eigentlich das Geschwindigkeitsproblem, das durch Brequest gelöst werden sollte, damit nicht beseitigt werden kann. Die Anzeige wird durch Windows so verlangsamt. Es bleiben also noch weitere Aspekte, die getestet werden müssen. Mehr Speicher, schnelleren Prozessor, bessere Grafikkarte............. (never ending story!!!!!!!!!)
![]()