Einführung
Nach anfänglichem Versuch schnell eine HTTP-BBS aufzubauen, habe ich mich dann
darauf beschränkt, ein allgemeines
für den Einstieg aufzubauen.
Nachdem die Versuche fuer eine HTTP-BBS mit EleBBS und Volker Imre's Webinterface
gescheitert waren, durchsuchte ich das Web und unzählige Filebases nach Tools
zur Webunterstützung.
Einige Websites, die bereits eine BBS 2 Web Umsetzung hinter sich haben, habe ich
zwar gefunden, wie zum Beispiel nachfolgende Links zeigen:
Aber alle Sites liefern keine Hinweise oder Sources um selbst eine HTTP-BBS zu gestalten
(stimmt nicht ganz - zu Volker Imre's Webinterface habe ich die Sources, aber die lassen
sich unter VC98 nicht sonderlich einfach auf WinNT Plattform überführen ...;
FidoTel läuft vermutlich unter WildCat!, was ein altbekanntes professionelles
BBS-System darstellt, aber wohl nicht sonderlich billig ist)
Nun denn - alles was ich finden konnte, war ein Tool BBS2WEB (die Homepage des Autors ist
nicht mehr erreichbar ;-( ...), das von einer Maximus FileBase HTML-Seiten erzeugt.
Dieses Tool ist aber nach meinen bisherigen Recherchen nur unter OS/2 lauffähig.
- ein Glück, das ich noch eine OS/2 Maschine am Laufen habe ... ;-)
Damit kann ich zwar HTML Seiten von der FileBase erzeugen, das mitgelieferte MAXFIND.EXE
Tool aber versagt den Dienst unter WinNT, da es ein natives OS/2 Tool ist ... ;-(
Also kann ich BBS2WEB nur ohne Search-Funktion laufen lassen .... ;-(
Dank eines Links auf der FidoTel WebSite, wo Shannon Talley die Einbindung von Perlscripts
unter Wildcat! beschreibt, befinden sich auch einige Links zu Beispiel Perlscripts.
U.a. ein simples SEARCH Perlscript System von Sergej Tarasov.
Nach Anpassung der BBS2WEB ini Files (speziell für einen Search Button war dies
SCHEME#.INI) war nun auch eine Search Funktion implementiert.
Update 2013-11-17:
Zwischenzeitlich setze ich PHPDIG Sitesearch ein. Siehe auch
Success Story: SiteSearch
das auch in BBS2WEB eingebunden ist.
BBS2WEB Troubleshooting und Workarounds
- Globale Funktionen in allen BBS2WEB Ini Blöcken
Da BBS2WEB 2x täglich auf dem OS/2 Rechner ausgeführt wird, aber eine
Synchronisation zum NT Rechner schwierig wird - habe ich auf dem NT Rechner zwei
Scheduler Tasks, die etwas später als die BBS2WEB Maintenance zur Ausführung
kommen aktiviert, in denen das Perlscript-Indexing der BBS2WEB Seiten durchgeführt
wird.
Da die Editierung der BBS2WEB Ini Datei SCHEME#.INI in mehrere Blöcke unterteilt
ist muss z.Bsp. fü die Implemtierung eines Search-Buttons auf allen Seiten dies
in ALLEN Blöcken durchgeführt werden. Damit aber noch nicht genug
Schwierigkeiten.
- Footer - Pagecounters auf allen Seiten
Ich habe im Footer einen Pagecounter (Perlscript) eintragen lassen, der aufgrund des
Namens der Seite ein Counter-File erstellt. Nachdem BBS2WEB alle HTML Seiten erstellt
hatte, stimmte der Name des Counter-Files in allen HTML Seiten, bis auf die Hauptseite
INDEX.HTML! Hier tauchte der Seitenname der letzten FileArea auf. ?-/
Was war geschehen? Zur Ermittlung des Seitennamens bediene ich mich der BBS2WEB
Variablen PAGENAME, der als Zusatzparameter für den Perlscript Aufruf herangezogen
wird.
Da BBS2WEB FileArea für FileArea abarbeitet und sich somit jedesmal der Inhalt der
Variablen PAGENAME ändert, wird beim Eintragen des Footers in die INDEX.HTML der
zuletzt verwendete Areaname eingetragen.
Mittels der Variablen IFPAGEIMAGEMAST und IFNOTPAGEIMAGEMAST kann aber für die
Laufzeitausführung eine Auswahl getroffen werden, wenn die Seite INDEX.HTML
erstellt wird einen Festen Namen vorzugeben, während in allen anderen Fällen
die Seite aus dem Areanamen (PAGENAME) gebildet werden kann ....
- 8.3 / Long Filenames Problem
Und noch eine Schwierigkeit: Da ich das Mailboxsystem noch auf einem Novellserver
ohne LongFilename Unterstützung am laufen habe, die Webseiten aber auf diesem 8.3
Filename System abgelegt werden, meckerte mir BBS2WEB bei den ersten Läufen, dass
er eine ganze Reihe von Seiten nicht erstellen könne ...
Letztendlich identifizierte ich das Problem in der Maximus FileBase Definition:
Jeder FileArea Name darf, um bei BBS2WEB nicht für Probleme zu sorgen maximal 8
Zeichen lang sein.
- Filearea Namen mit max. 6 Zeichen
Nun war die Liste der erstellten Webseiten schon grösser, aber immer noch gab
es Seiten, obwohl der FileArea Name kleiner 8 Zeichen betrug, die nicht erstellt
werden konnten.
Des Rätsels Lösung: Einige FileAreas enthielten soviele Files, dass die HTML
Seiten Erstellung auf mehrere Seiten verteilt generiert wurde (Bsp. INFO01.HTML,
INFO02.HTML, INFO03.HTML).
Da die fortlaufende Seitennummerierung 2-stellig war, ergibt sich hieraus, dass der
Name der FileArea für solche Areas nicht länger als 6 Zeichen betragen
durfte.
Nachdem nun die Maximus FileBase Namensgebung angepasst war, lief auch BBS2WEB ohne
Fehlermeldungen durch.
- Leere Fileareas
Ein weiteres Problem das im Betrieb dieser Web-FileBase auftrat wurde sichtbar,
nachdem ich die ersten Test-Search-Requests gestellt hatte und manche Suchanfragen
in Verzeichnissen der FileBase auftauchten, die eigentlich _Leer_ waren, also keine
Files enthielten ...
BBS2WEB produziert scheinbar Webseiten, mit Inhalten aus vorangegangenen FileAreas,
wenn die nächste FileArea keine Files enthält ...
Lösung: Erstellung einer Datei DUMMY.TXT mit dem Inhalt "leere FileArea",
so dass mindestens 1 Datei in jeder FileArea gefunden wird ...
- Anzahl Dateien != Vorhandene Dateien, Listung von Dateien aus anderen Fileareas
[17.11.2013] Nach langer Laufzeit tauchten in einer Filearea auf einmal Dateien auf,
die nicht in diese Filearea gehörten. Die BBS2WEB Filearea Auflistung zeigte
in der Summe 62 statt 54 Dateien an. In der Liste tauchten eine Serie von Dateien
auf, die in Fileareas enthalten sind, die in der Gesamtliste vor der fehlerhaften
Filearea enthalten sind. Nun, was war geschehen?
Bei der Analyse habe ich auf Unverträglichkeiten von Sonderzeichen geprüft;
versucht Sonderzeichen in den FILES.BBS Dateien zu suchen. Aber alles half nichts.
Der Maximus Indexer (silt max -2a und fb -a -r) lieferten für die besagte Filearea
immer wieder 62 statt der tatsächlich vorhandenen 54 Dateien.
Da ich für die FTN Anbindung ein weiteres Filelister Tool im Einsatz habe (Xlist)
schaute ich mir dort das Resultat an und stellte fest, das dort bei 8 Dateien
ein Vermerk "Nicht Vorhanden" erschien. Bei einer entsprechend grossen Anzahl von
Dateien in einer Filearea fällt es schon mal nicht auf, wenn zwar eine
Beschreibung für eine Datei in der FILES.BBS steht, aber die betreffende
Datei in der Filearea nicht (mehr) vorhanden ist.
Des Rätsels Lösung sind nun diese "N/A" nicht mehr vorhandenen
Dateien, zu denen es aber immer noch eine Beschreibung in der FILES.BBS gibt.
Der Maximus Indexer versucht die Beschreibungen in den Index FILES.DAT (Dateiliste),
FILES.DMP (Dateibeschreibungen) und FILES.IDX (Datei Index) zu übertragen.
Hierbei überträgt der Maximus Indexer nun sämtliche Dateibeschreibungen
ohne zu prüfen, ob die jeweilige Datei überhaupt vorhanden ist.
Auf diesen Index greift nun BBS2WEB zu und kommt bei den Dateien ins Stolpern
zu denen die Dateien fehlen, überträgt "irgendwas" aus
dem Hauptspeicher und erzeugt somit eine Fehlerhafte Dateiauflistung
anstatt die Dateien als "Nicht vorhanden" zu markieren.
Es ist davon auszugehen das, sobald Dateien in einer Filearea auftauchen, die dort
nichts verloren haben, das in dieser Filearea die FILES.BBS Beschreibung noch
Beschreibungen zu Dateien enthält, zu denen die Dateien fehlen, bzw.
nicht mehr in der Filearea vorhanden sind. In dem Fall hilft nur, jede
einzelne Beschreibung und den dazugehörigen Dateinamen
auf physikalisches Vorhandensein zu prüfen.
Der "Fehler" ist eine Kombination aus fehlerhaftem Maximus Indexer
und einem fehlerhaftem BBS2WEB die keine Prüfung auf das Vorhandensein
einer Datei der in der FILES.BBS angelegten Dateibeschreibungen
durchführen, zu erkennen, ob eine Datei nun tatsächlich vorhanden
ist oder nicht, um ggf. zu vermerken: "Datei nicht vorhanden".
Eingesetzte Software:
FileBase System im FILES.BBS Format auf einem Novellserver
Maximus FileBase (DOS), Background Maintenance auf einem DOS-PC
BBS2WEB (OS/2), Background Maintenance auf einem OS/2-Rechner, auf dem auch die Mailerlines laufen
WinNT4-Server mit Novell-Netware-Gateway
Apache 2.0.45 und Perl 5.008 (NT4)
RiSearch-Perlscript
Ulrich Schroeter, Mai 2003