Job-Puffergroesse v. Avanti-W?
Anando Eger
anando at aneg-dv.de
Do Dez 5 12:21:30 CET 2002
Lieber Herr Berger,
Sie schrieben u.a. auf meine Vermutung
> > avntserv.exe könnte doch den Job erstmal in einen Puffer
> > schieben, bis "\nAVANTI:EOJ\n" eingetroffen ist und dann
> > an procav übergeben (wenn ich mir die Aufgabenverteilung
>
> Das war genau der Grund, warum "AVANTI:EOJ" einige
> Zeit nach dessen "Geburt" in das avanti-Protokoll
> eingebaut worden war: Vorher hatte er ganz bewusst
> die Strategie verfolgt, inmmer loszuarbeiten, sobald
> es "nichts mehr zu lesen" gab.
Nun gut, dann dürfte es ja eigentlich keine Probleme geben.
> Client und Server haben keinen Einfluss auf die maximale
> Paketgroesse ihrer Verbindung und es gibt keine Methode,
> die garantieren wuerde, dass der Server unmittelbar nach
> Auslesen des ersten Pakets das zweite Paket bereits
> empfangen hat. Eine errechnete Laengenangabe am Anfang
> des Jobs oder eben - wie eingebaut - ein explizites
> Ende-Element auf Protokollebene sind die einzigen
> Moeglichkeiten, vollstaendige Kommunikation zu
> gewaehrleisten.
Logisch, also MUSS avanti erst einen Job KOMPLETT EMPFANGEN
und DANACH erst mit der Bearbeitung BEGINNEN.
Avanti stellt mit AVANTI:EOJ/AVANTI:EOR einen zwar spartanischen,
jedoch ausreichenden Mechanismus bereit. Nur scheint Avantis sich,
wie Sie wohl vermuten, selbst nicht daran zu halten.
> Das procav den Job erst am Ende uebergeben bekommt,
Was ist das "Ende"?
> muss vermutlich so sein, aufgrund der Designprobleme
> in avanti.
> ...
> "Normalerweise" wuerde der Server einen
> Kommunikationsversuch bemerken, und die "Leitung"
> an procav uebergeben. Dieses waere dann fuer den
> Empfang des Jobs zustaendig, dessen Abarbeitung
> und die Uebertragung des Resultats. Realisiert
> hingegen ist, dass die Server-Komponente den
> Job einsammelt, per shared Memory an procav
> uebergibt, das Resultat von procav per shared
> Memory entgegennimmt (seit einigen Versionen
> immerhin portionsweise) und uebermittelt.
Bedingung bleibt aber offensichtlich, dass empfangene
Jobs erst dann begonnen werden können, nachdem sie voll-
ständig empfangen wurden. Wenn das nicht so sein
sollte, halte ich die Korrektur dessen für
ÄUSSERST DRINGEND
- selbst wenn ich von Paketgrößen von nur
1024 Bytes ausgehe und alle Jobs in solche SCHNIPSEL
aufteile - dann gibts sicher irgendwo eine Netzwerk-
komponente, die daraus zwei 512-Byte-Pakete macht - und
zwischendurch natürlich eine Übertragungspause einbaut ...
Viele Grüße
Anando Eger
Mehr Informationen über die Mailingliste Allegro