Avanti-W: Named Pipes
Dr. Sibylle Koczian
082021772-0001 at t-online.de
Mi Apr 18 22:24:05 CEST 2001
Liebe Liste, lieber Herr Hoeppner,
das gibt mir einige Raetsel auf. Stimmen erst mal meine durch Versuch und Irrtum
gebildeten Vermutungen?
- AVANTI:EOJ, AVANTI:EOR entfallen ersatzlos. Dass die Daten komplett angekommen
sind, merkt man daran, dass nichts mehr gelesen wird (bzw. an einem Fehlercode
233, der auf "Kein Prozess am Ende der Pipe" hinauslaeuft).
- Ein Ergebnis, das groesser ist als das eingestellte "Result memory", wird
nicht stueckweise geschickt, sondern der Server bricht ab mit "FATAL ERROR:
Output-Memory Overflow -> Job aborted". Im Client kommt ein unvollstaendiges
Ergebnis an (Groesse passt zur eingestellten Result memory-Groesse).
Erstes Raetsel: Bei einem Job
find per ?
download set
write "AV Fertig" newline
wird auch dann "AV Fertig" ausgegeben, wenn der Job nicht vollstaendig
ausgefuehrt wurde. Wie denn das? Und wie kann ich dann noch die
Unvollstaendigkeit feststellen (ausser durch Nachsehen im Server-Fenster)?
Zweites Raetsel: ich habe im Client nicht mittels "CallNamedPipe" die komplette
Kommunikation in einem Rutsch abgewickelt, denn da muesste ich ja im voraus eine
maximale Ergebnisgroesse wissen. Statt dessen habe ich mit "CreateFile" und
"ReadFile" das Ergebnis stueckweise gelesen. Und da haengt es noch zusaetzlich
von der eingestellten Puffergroesse im Client ab, ob das Ergebnis wenigstens in
den Faellen komplett ankommt, in denen der Server nicht mit Overflow abbricht:
ein Puffer von 1024 Bytes scheint zu klein, da kommt im Client ab einer
bestimmten Ergebnisgroesse (ca 20480 Bytes oder etwas weniger) nicht alles an.
Was ist da los?
Alle Experimente unter Windows 2000 auf dem lokalen Rechner, Client in Python.
Mit einer Erweiterung von pipecl.pl vergleichbare Ergebnisse.
Eigentlich scheint mir die Named-Pipe-Kommunikation viel einfacher als TCP/IP,
und ich muss auch nur auf Windows NT/2000 Ruecksicht nehmen. Aber unter
dienstlichen Bedingungen ist es laestig, je nach Job das Result memory auf dem
Server verstellen zu muessen. Was tun?
Schliesslich noch eine ganz andere Frage, die mit dem Kommunikationsmodus gar
nichts zu tun hat: wieso kommt es bei qrix manchmal, aber nicht immer, darauf
an, ob die Registerbezeichnung gross oder klein geschrieben wird?
Schoene Gruesse, Koczian
Mehr Informationen über die Mailingliste Allegro