Avanti

Thomas Berger ThB at gymel.com
Do Okt 18 13:34:29 CEST 2001


Lieber Herr Fischer,

andere haben bereits geantwortet, aber ich will natuerlich auch :-)

> da unser Avanti-Server auf einen anderen Rechner umgelegt wurde, habe ich
> mich mal wieder seiner angenommen und jetzt eine ganze Reihe Fragen, die
> ich mal loswerden wollte, vielleicht weiß jemand mehr.
> 
> 1. Unser Avanti-Server auf NT stürzt immer noch (ziemlich) regelmäßig ab.
> Mir sieht es so aus, als würde von avanti-w.exe immer mehr Speicherplatz
> gehortet, bis der Server bei etwa 12-14 MB abstürzt. Weiß jemand, ob man da
> etwas machen kann, z.B.

Dieses Phaenomen hat mit der Anzahl der Abfragen zu tun,
ist eine bestimmte Anzahl ueberschritten, verliert avanti
urploetzlich z.B. auch seine Faehigkeit, mehrere Anfragen
parallel zu beantworten. Avanti-w als Systemdienst bzw.
nicht als Systemdienst verhalten sich hier in der Tat
unterschiedlich (aber beide machen Probleme), die U**X-
Plattformen haben dieses Problem nicht.


> -- Läuft avanti-w als Dienst stabiler als als Programm?

ja. jedoch wenn er kracht hilft meist nur ein Reboot des Rechners
wg. bind() failed (Im Gegensatz zu etwa Solaris, wo ein Socket
spaetestens 120 Sekunden nach dem Ende eines Prozesses vom System
wieder freigegeben wird, ist Port 4949 bei Abstuerzen von avanti-w
als Systemdienst ewig blockiert und nicht mehr benutzbar).


> -- Ist der avanti-x-Server unter Linux stabiler?

Die Linux-version ist noch veralteter als die Versionen fuer
NT oder Solaris. Vorsicht! Andererseits laeuft z.B. der
OPAC der Stadtbuecherei Altena unbeaufsichtigt mit avanti-w
unter Linux: Der Prozess wird nur anlaesslich eines Austauschs
der Datenbank neu gestartet, also bestimmt nicht haeufiger als
einmal pro Woche.


> -- Gibt es irgendwelche Tricks, mit denen man den Absturz vermeiden oder
> bei Absturz einen automatischen Neustart durchführen kann?

Einer meiner fruehesten OPAC's war ein Rechner mit Avanti-w
nicht als Systemdienst. Dort wurde vom Perlskript eine .bat-
Datei gestartet, wenn der erste Verbindungsversuch Error 10061
(Connection denied) ergibt. Die .bat-Datei hat dann avanti
gestartet. Auf U**X-Systemen habe ich einen cron-job laufen,
der ueberwacht, ob Avanti noch laeuft und es bei Bedarf neu
startet.

 
> 2. Gibt es die Möglichkeit, auf einem Rechner zwei Avanti-Prozesse (mit
> verschiedenen Ports) laufen zu haben, z.B. um für verschiedene Anwendungen
> die Logfiles getrennt zu halten oder bei Ausfall auf den anderen
> umzuschalten?

m.W. werden diese Einstellungen von avanti-w in der Registry
hinterlegt: Keine Chance also. Unter U**X sind mehrere
Installationen natuerlich kein Problem. Die muessen natuerlich
alle einen anderen Port benutzen, daher ist das mit dem 
"Umschalten bei Ausfall" nicht trivial.


> 3. Gibt es irgendwo Erklärungen für die Fehlermeldungen von Avanti vom Typ
> "irgendwas() failed etc.",
> die nicht von Avanti kommen, sondern nur durchgereicht werden?

ich kenne nur bind() failed, das bedeutet, dass sich der aktuelle
Prozess nicht den Port (Default 4949) krallen kann, auf dem er
auf Anfragen listen(en) wird.

 
> 4. Wenn der Avanti-Server angehalten ist, also keinen Output mehr
> produziert, antwortet er auf einen connect-Befehl immer noch mit 1
> (=Erfolg). Ist das sinnvoll? Genauer: Kann ich auf einfache Weise prüfen,
> ob der Avanti-Server voll funktionsfähig ist, ohne eine Anfrage mit
> Datenbank und Nutzer zu schicken und die Antwort auszuwerten?

mitnichten. Das "Anhalten" von avanti-w ist ein absolut sinnfreies
feature.

 
> 5. Gibt es eine Möglichkeit, den Inhalt und das Format der Logdateien zu
> beeinflussen?

Das waere schoen. Derzeit kann es ja sogar passieren, dass die
Eintraege verschiedener Anfragen ineinander gematscht sind.
Herr Hoeppner ist sich m.W. aber zumindest der Problematik bewusst, 
dass in die Logdatei erst dann geschrieben wird, wenn irgendein 
interner Buffer voll ist, typischerweise sind also die letzten 5 
Minuten vor einem Absturz nicht mehr mitprotokolliert.

viele Gruesse
Thomas Berger




Mehr Informationen über die Mailingliste Allegro