Anmelden

View Full Version : VARPG Connection-Pooling



stef2
07-04-06, 11:45
Hallo,

ich habe eine VARPG-dll-Funktion wo ein Server-Call erfolgt. Die Funktion wird in mehreren Threads in einem Prozess unter Windows aufgerufen. Das Problem ist, das alle Threads die gleiche Connection zur AS400 verwenden - es wird nur ein Job (QZRC..) auf dem Host gestartet. Es ist aber notwendig das die Threads sich mit verschiedenen Userprofilen anmelden und getrennten Speicher verwenden.

Gibt es eine Möglichkeit von Connenction-Pooling für AS400 in VARPG? Oder mögliche Alternativen in C? Kennt jemand einen workarround (DDE o.ä.)?

Bin für jede Hilfe dankbar.

Gruß

Stefan

Fuerchau
07-04-06, 11:50
Das hat mit Connection-Pooling nichts zu tun.
Das Pooling wird erst durchgeführt, wenn das Programm eine Verbindung freigibt, also schließt.

Deine Threads müssen selber erst eine Verbindung aufbauen bevor der Servercall ausgeführt wird. Das Pooling ist dann insofern hilfreich, als dass die Verbindung eben wiederverwendet werden kann, wenn alle Verbindungsparameter identisch sind.

stef2
07-04-06, 11:54
Danke für die schnelle Antwort.

Also ich benutze die DLL FVDCWVC9 mit Funktion VARPG_Set_Signon_Info. Die wird in jedem Thread aufgerufen mit unterschiedlichen Parametern. Im Joblog auf der AS400 sehe ich das alle folgenden calls aus den Threads in einem Job laufen. Mach ich etwas falsch beim Verbindungsaufbau?

stef2
07-04-06, 18:01
Habe die Kommunikation jetzt über Dtaq gelöst: es wird je Thread ein Job submitted, der auf einer dynamisch erstellten Datenqueue horcht und auf eine zweite sendet. So hat jeder Thread seinen Job und getrennte Kommunikation.

An das Connection-Objekt von VARPG kommt man scheinbar nicht ran. Da kann man keine zweite in einem Prozess aufmachen.