+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

Multithreading - Probleme


(Guest) #1

Hallo,

wir produzieren nächtens regelmäßig Rechnungen im PDF-Format, teilweise werden diese via eines Signierdienstes signiert und dann weitergeleitet.
Alle 10 Tage gibt es einen Dekadenlauf, an dem nicht die üblichen 2-300 Rechnungen rausgehen sondern etwa 2-2300 Stück, davon viele mit einigen 100 Seiten.
Um diese Menge in einer Nacht zu schaffen, haben wir den Printjob auf 8-10 einzelne unabhängige Tasks aufgeteilt:
Jeder Task arbeitet autark und hat seine eigenen Jobs, lädt seine dll´s selbst, hat keine Verbindung zu seinem Nachbarn, die Aufgabenstellung jedes Tasks ergibt sich aus den Daten, ansonsten ist die Programmlogik und Technik identisch, lediglich separat gestartet.
Weitere Verbindung ist die gemeinsame *.lst sowie die Arbeits/Temp-Verzeichnisse.

Es ist aber keine spürbarer Duchsatzverbesserung vorhanden, im Gegenteil scheinen sich die Prozesse eher zu lähmen. Scheinbar werden die List&Label dll´s nicht mehrfach geladen sondern nur einmal und werden im Timeslicing-Verfahren periodisch unter den beteiligten Tasks weitergereicht, so scheint es wenn man die Prozesse unter Windows mit einem Prozessanalysierer verfolgt.

Verwendete Technik ist eine Progress-DB 10.2B unter Linux, die Tasks werden auf einem Windows 2003-Server 32-Bit, 4CPU, 3 GB-RAM, schnelles Platten-LUN unter VMWare ESX, asgeführt. Programmiersprache Progress 4thGL mit der L&L-API, also kein .Net oder VCL, L&L Version 16.

Hat jemand einen Lösungsansatz, Idee, Erfahrung mit vergleichbarem Lösungsansatz ?

Vielen Dank für viele ausführliche Hinweise.

Werner Wächter