Nach der Installation befinden sich unterhalb des Installationspfads
(z.B. c:\programme\avanti
) mehrere Unterverzeichnisse:
bin/
|
für "binaries", also ausführbare
Programme, ferner .con(f) und uif... |
etc/
|
früher f. Hilfsdateien |
share/allegro |
für sonstige Dateien |
Die zentrale Konfigurationsdatei ist
<installdir>/avanti.con.
(Bis V28.5: <installdir>/avanti.conf.) Sie kann mit einem
Texteditor
bearbeitet werden. Damit die Änderungen wirksam werden, ist
ein
Neustart des avanti-Programms bzw. des avanti-Systemdienstes notwendig.
Bei Auslieferung ist nur der Zugriff auf die mitgelieferte
Demo-Datenbank eingerichtet.
Beispiel-Konfigurationsdatei avanti.con
[general] # Globale Einstellungen
# ACHTUNG: KEINEN KOMMENTAR VOR [general] SETZEN, SONST CRASH!
# Dies ist die Datei "avanti.con". Kommentare beginnen mit Doppelkreuz
# Das Format ist ähnlich einer Windows "INI"-Datei.
# Sections werden in eckige Klammern gesetzt.
port=4949 # Der TCP/IP-Port, unter dem der
# avanti-Server von außen angesprochen
# werden kann. Standard: 4949.
AnonymousAccess=yes # Nur-Lese-Zugriff auch *ohne* Paßwort erlaubt?
loglevel = default # Was soll mitgeloggt werden, was nicht?
# (Siehe Erklärung unten)
logfile=c:\temp\av.log # Optional
# Wenn "logfile=..." angegeben wird,
# werden die Log-Meldungen nicht mehr
# auf den Bildschirm (stderr) sondern in
# die angegebene Datei ausgegeben.
# Sinnvoll insbesondere für den Betrieb
# als Daemon unter Unix, oder als Systemdienst
# unter Windows XP/VISTA/7/8, da in dieser
# Betriebsart keine Konsole existiert,
# auf die Meldungen ausgegeben werden könnten.
prefork=1 # Bis auf weiteres stets 1 setzen, sonst Leistungseinbuße
max_cputime = 120 # ist die Zeit in Millisekunden, die dem acon-Prozeß zugebilligt wird, bevor
# avanti das Warten aufgibt. Wenn man keine abgebrochenen Jobs
# beobachtet, nicht dran drehen.
IniFileTimeCheck # Bis auf weiteres wirkungslos
# Nun folgen die einzelnen Datenbanken.
# Jede Datenbank hat ihre eigene Section.
# Die Datenbank "avdemo".
[avdemo]
directory = c:\allegro\demo2
access = 3 # Berechtigungsstufe für anon. Zugriff (0 .. 3)
konfiguration = a
indexparameter = cat
# Es folgen die zugelassenen Benutzer.
# Format: "name=PASSWORD:Berechtigungsstufe"
opac=OPAC:0
master=AVANTI:3
admin=ALLEGRO:2
# hier könnte noch eine Datenbank kommen, z.B. "opac"
[opac]
directory = c:\daten\katalog
access = 3
...
Die Loglevel-Einstellung
avanti erzeugt sehr viele und ausführliche
Einträge
in seiner
Protokolldatei, wobei manche Einträge nur in speziellen
Situationen
nützlich sind (z.B. beim Debugging). Daher existiert
die
Möglichkeit, nur die für den Benutzer interessanten
Einträge mitprotokollieren zu lassen. Die interessanten
Einträge werden dabei durch Komma getrennt angegeben. Vorgesetztes ! blendet den jeweiligen Typ aus.
Zur Zeit werden folgende Keywords erkannt:
crit [*] |
Kritische Fehler,
die den
Programmabbruch zur Folge haben |
error [*] |
"Normale" Fehler |
warn [*] |
Warnungen |
note [*] |
Allgemeine
Hinweismeldungen |
slave [*] |
Meldungen, die der
Kindprozess
(acon) über seinen Standard-Fehlerkanal ausgibt |
io |
Statusmeldungen zur
Datenkommunikation |
data
|
Mitschnitt des
Datenverkehrs
zwischen Client und Server
|
serv
|
Statusmeldungen zum
Betrieb als
Systemdienst (nur Windows NT) |
mem
|
Debugging von
Speicherzugriffen
(malloc/free) |
time [*]
|
zu jedem
Log-Eintrag sollen
Datum und Uhrzeit angezeigt werden
|
level [*]
|
zu jedem
Log-Eintrag soll die
zugehörige Event-Klasse angezeigt werden |
location
|
zu jedem
Log-Eintrag soll die
zugehörige Stelle im avanti-Quelltext angezeigt werden |
[*] Keywords, die mit Sternchen versehen sind, sind in der
Standardeinstellung (default)
aktiviert.
Zusätzlich gibt es noch die speziellen Keywords all, default
und none,
mit ihrer
offensichtlichen Bedeutung.
Beispiele:
loglevel = default ## das ist die Standardeinstellung
loglevel = default,io,data ## Standard, plus "io"- und "data"-Events
loglevel = default,!slave ## Standard, aber "slave"-Events weglassen
## (Das Ausrufungszeichen bedeutet Negation)
loglevel = all,!data,!slave ## alles außer "data" und "slave"
loglevel = none ## gar nichts protokollieren
Ausschnitt aus einer Logging-Datei:
[2003-09-19 17:23:24] (NOTE) avanti server listening on port 4949
[2003-09-19 17:23:39] (NOTE) <conn 0> opened
[2003-09-19 17:23:39] (SLAVE) <conn 0> slave started (prefork = 5)
[2003-09-19 17:23:39] (SLAVE) <conn 0> forking '/some/where/../bin/acon' (5 times)
[2003-09-19 17:23:50] (SLAVE) <conn 0> job done
[2003-09-19 17:23:56] (SLAVE) <conn 0> job done
[2003-09-19 17:24:49] (SLAVE) <conn 0> slave finished ok
[2003-09-19 17:24:49] (NOTE) <conn 0> closed
[2003-09-19 17:24:54] (NOTE) avanti server shutting down
Aufruf und Funktionstest
Starten Sie zunächst den avanti-Server:
- unter Windows über das Startmenü mit Start
->
Programme -> avanti -> avanti Server
- unter Unix über die Shell mit dem Kommando
<installationsverzeichnis>/bin/avanti &
Mit Hilfe des "telnet"-Kommandos kann man nun den avanti-Server auf
seine Funktion testen.
- Windows: Aufruf über das Startmenü
Start
-> Ausführen -> "telnet
localhost 4949"
eintippen -> OK
Es öffnet sich ein Fenster.
- Unix: Eingabe des Kommandos
telnet
localhost 4949
Es erscheint die Meldung "Connected to localhost"
(oder
ähnlich).
Sollten stattdessen die Meldung "Connection refused" (oder
ähnlich) erscheinen, so läuft vermutlich der
avanti-Server
nicht auf Port 4949.
Nun nacheinander folgende Befehle eintippen: (es könnte auch
irgendeine andere, sinnvolle FLEX-Befehlsfolge sein)
find per
shakesp?
list internal
@ DB=avdemo ID=opac/OPAC
AVANTI:EOJ
Als Antwort erscheint eine Reihe von Zahlen, gefolgt von der
Zeichenkette "AVANTI:EOR", in etwa so:
2,4,7,8,9,11,12,13,14,15,16,22,23,24,26,27,30,0
AVANTI:EOR
Sollten stattdessen keine Zahlen erscheinen, sondern nur "AVANTI:EOR",
so konnte wahrscheinlich acon nicht gestartet
werden.
In diesem Fall sollten die Log-Meldungen konsultiert und, falls
notwendig, der Log-Level heraufgesetzt werden.
Installation als Systemdienst (Win XP/Vista/7/8)
Der avanti-Server kann auch als Systemdienst betrieben
werden. Der Server wird dann automatisch beim Hochfahren des Rechners
gestartet, und läuft im Hintergrund, auch wenn niemand
eingeloggt
ist - ideal für einen unbewachten Betrieb des Rechners.
Es empfiehlt sich hierfür zunächst, in der Datei
avanti.con
mittels logfile=...
eine Logdatei anzugeben, da der Server in dieser
Betriebsart keine Log-Meldungen auf dem Bildschirm anzeigen kann.
Um das Programm als Systemdienst zu installieren:
- Aufrufen einer cmd Shell als Administrator
- Wechsel in den Ordner, wo avanti.exe liegt, z.B. c:\allegro
- Aufruf : avanti.exe -install c:\allegro
Dienst ist dann installiert
Anschließend sollte der Dienst "avanti Service" im
Systemkontroll-Manager zu sehen sein. Dieser kann wie folgt aufgerufen
werden:
Start
-> Einstellungen ->
Systemsteuerung -> Dienste
beziehungsweise
Start ->
Einstellungen -> Systemsteuerung
-> Verwaltung
-> Dienste
Nach einem Neustart des Rechners läuft der Dienst automatisch
im
Hintergrund.
Über den Systemkontroll-Manager läßt sich
sich der
Dienst manuell beenden oder neu starten, oder die Startart
ändern
(z.B. von "automatisch" auf "manuell").
Entfernen des Systemdienstes
Z.B. vor einer Deinstallation des Programms empfiehlt es sich,
zunächst den Dienst wieder zu entfernen. Dafür
muß
zunächst der Dienst über den Systemkontrollmanager
angehalten
werden. Anschließend entfernt man den Dienst wie folgt:
Aufrufen einer cmd Shell -> sc delete avanti Service ->
Dienst wird gelöscht
Im Systemkontroll-Manager ist nun der Eintrag "avanti Server"
verschwunden.
Restart des UNIX-Servers
Dies kann mit einem schlichten kill -9 ... geschehen mit
anschließenden Neustart.
Wenn es sehr schnell gehen soll:
killproc -SIGHUP $AVANTI
pidofproc $AVANTI > /var/run/avanti.pid
Die Datei avanti.pid enthält nur die Prozeß-IdNr des
laufenden Servers. Gebraucht wird sie von avadmin,
damit dieser feststellen kann, ob der Server läuft.
Die avanti-Kommandosprache
Die avanti-Kommandosprache ist weitgehend kompatibel mit der
Makrosprache FLEX,
die im Windows-Hauptprogramm a99
verwendet
wird. (In a99 kann man die Dokumentation mit dem Befehl h flex
abrufen.) Einige Befehle dieser Sprache gibt es in avanti
nicht, oder sie funktionieren etwas anders. Diese
Einschränkungen sind in der Online-Hilfe
dokumentiert. Die Unterschiede ergeben sich daraus, daß
avanti im
Gegensatz von a99 nicht direkt mit dem Benutzer interagiert, d.h. keine
eigene Benutzeroberfläche hat.
Einige Besonderheiten sind bei avanti zu beachten:
- Wird acon als Konsolprogramm benutzt, genügt die Befehlssequenz.
[1]
Das
Client-Server-Modell
beruht auf einer Trennung der zu erfüllenden Aufgabe (z.B.
einer
Datenbankrecherche) in zwei Programme: das erste ist der "Kunde" (engl.
Client), der den Auftrag vom Benutzer entgegennimmt, und ihn an das
zweite Programm den "Dienstleister" (engl. Server)
weiterleitet.
Der Server erledigt den Auftrag, und gibt das Resultat an den Client
zurück, der das Ergebnis dem Benutzer in geeigneter Form
präsentiert.
Da es sich dabei um verschiedene Programme handelt,
können sich Server und Client durchaus auf unterschiedlichen
Rechnern befinden. Die Weiterleitung der Aufträge geschieht
dann
über ein Netzwerk (z.B. das Internet), mit einem vorher
vereinbarten Kommunikations-Protokoll, hier TCP/IP.
[2]
acon liest eine Anfrage
von Standard-Input, schreibt die Antwort nach Standard-Output, und
schreibt Log-Meldungen nach Standard-Error. Das Ende der Anfrage wird
durch das Dateiende (end-of-file-condition) gekennzeichnet.