Avanti-W: Lange Jobs

Sibylle Koczian Sibylle.Koczian at Bibliothek.Uni-Augsburg.de
Mi Dez 13 10:08:13 CET 2000


Lieber Herr Berger, liebe Liste,

>> Das Problem: mit Python oder Delphi werden Daten mit "send" abgeschickt,
>> und send gibt die Anzahl der abgeschickten Bytes zurueck. In einem
>> Perl-Skript wird "print S" benutzt (Socket S), und print gibt, so weit ich
>> bisher sehe, 1 (Zahl 1) zurueck - ich nehme an, wohl 0, wenn ein Fehler
>> auftrat. Wie kann ich also dafuer sorgen, dass der Job komplett abgesandt
>> wird, wenn noetig, in mehreren Abschnitten? Selbst die Groesse der
>> Teilportionen festlegen (wie)?
>
>Der TCP-Stack auf Ihrer Maschine regelt die Zerlegung
>Ihrer Daten in einzelne Datagramme (und die Konstrukte
>der Programmiersprachen sorgen ggfls. an eine portionsweise
>Uebergabe Ihrer Daten an das Transportsystem und auch
>fuer die Verwaltung von evtl. notwendigen Buffern). 
>
Das Problem im konkreten Fall ist das Konstrukt der Programmiersprache
Perl, das mir nicht sagt, wie viel abgeschickt worden ist und wie viel
evtl. noch aussteht. So weit ich mich durch die Dokumentation gekaempft
habe (meine Buecher taugen hier gar nichts), gibt's wohl auch 

send SOCKET, MSG, FLAGS

aber das scheint fuer UDP da zu sein, oder?

>Sicherheit gibt es 100%ig nie und sowieso nur durch 
>Handshaking: Ihr Rechner hat womoeglich das letzte Paket
>schon laengst gesendet, als die Gegenseite gecrasht oder
>ein Bagger ueber die Leitung gefahren ist, daher ist es 
>zwar ein Beweis dafuer, dass etwas schiefging, wenn 
>weniger Bytes gesendet wurden als Sie uebergeben haben, 
>der umgekehrte Schluss gilt aber nicht. 
>
Den Beweis, dass etwas schiefging, glaube ich zu haben: im Avanti-Fenster,
ebenso in der Avanti-Log-Datei erscheint nur der Anfang des Jobs.

>Im Avanti-Pseudoprotokoll uebergeben Sie ja daher
>auch AVANTI:EOJ als letztes und erwarten als letzte
>Zeile im Resultat den String AVANTI:EOR.
>
Weil das so ist, finde ich es im uebrigen auch eigenartig, dass der Server,
obwohl er offensichtlich nicht den vollen Job bekommen hat, trotzdem zu
arbeiten anfaengt. Die ersten paar wenigen Updates werden gemacht -
allerdings auch wieder nicht so, dass alle Datensaetze, die in der
Log-Datei bzw. im Avanti-Fenster komplett aussehen, auch komplett in die
Datenbank kommen. Dort landen sie teils unvollstaendig, teils gar nicht.

Fuer den Augenblick werde ich das Problem wohl ganz banal mittels
temporaerer Update-Dateien umgehen, finde das aber wenig befriedigend. 

Uebrigens: lieber Herr Bachschneider, die Update-Klasse in Python, die Sie
mir schon vor langer Zeit geschickt haben, scheint mir potentiell dasselbe
Problem zu haben - da werden ja auch zweihundert Saetze in einen Update-Job
geschrieben und es gibt nur einen send-Befehl dafuer. Passiert da nichts?

Danke und beste Gruesse, Koczian

----
Dr. Sibylle Koczian
Universitaetsbibliothek , Abt. Naturwiss.
D-86135 Augsburg

Tel.: (0821) 598-2400, Fax : (0821) 598-2410
e-mail : Sibylle.Koczian at Bibliothek.Uni-Augsburg.DE





Mehr Informationen über die Mailingliste Allegro