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