ok, also:
es gibt einen PC-Client, der in der sicherlich überall bekannten Sprache WinDev geschrieben wurde ;-). Dieser macht einen Socket-Connect mit den Optionen Nagle-Algorythmus = off und NoEndTag (also nichts hinten an den SendString anhängen).

Auf der Gegenseite gibt es auf der iSeries einen Server in RPG, der dieses Connect empfängt und bestätigt.

Im Weiteren unterhalten sich beide Programme/Systeme über normales SocketRead / SocketWrite, wobei die Strings auf der iSeries jeweils mittels CDRCVRT konvertiert werden.

Damit man auf der ganz sicheren Seite ist, wird der zu sendende String in Häppchen zu je Tausend Byte gesplittet. Das erste Häppchen wird an die iSeries geschickt, dort zwischengespeichert und ein ok an den Client gesendet. Hat der Client das OK bekommen, schickt er das nächste Häppchen, die iSeries bewertet es und speichert es wieder zwischen, usw.. Das ganze ist über diverse Mechanismen abgesichert(timestamp, Counter,...) und wie gesagt funktioniert es auch soweit ganz gut.

Im vorliegenden Fall werden aus einer PC-Datei 8 Sätze zu ca. 5000 Byte an die iSeries geschickt und dort auch komplett verarbeitet.
Beim 9. Satz werden die 1. Tausend Byte gesendet und auf der iSeries im Server gepuffert. Das ok kommt zum Client zurück. Dieser sendet die nächsten tausend Byte (es sind im Sendepuffer tatsächlich auch nur die nächsten tausend Byte). Der Server der iSeries empfängt nun jedoch nochmal die 1. tausend Byte, sendet das ok an den Client und hat gleich im Anschluß, ohne das der Client neu gesendet hat, die nächsten tausend Byte bereitstehen.

In den ersten Tausend Byte ist ein Teil des schon oben erwähnten Memo-Feldes mit Sonderzeichen enthalten.

So, nun - Ausführlicher gehts wirklich nicht mehr.