Ok, also der grundsätzliche Ablauf beim Anfragen an die AS/400 ist ungefähr so:

Auf der AS400 laufen permanent 10 Jobs, denen jeweils zwei DTAQs zugeordnet sind.
Max. 10 aktive Jobs sind hierbei zulässig - mit je einer DTAQ zum Empfang und einer für die Antwort. Das ILE dieser Jobs versucht dabei ständig Daten aus der "Anfrage"-DTAQ zu lesen.

Soll nun eine Anfrage an die AS gestellt werden, dann ermittelt Java (jeder Vorgang ein Thread) zunächst, ob eine freie Anfrage-DTAQ zur Verfügung steht (Überwachung der offenen Vorgänge). Ggf. wird hier so lange gewartet, bis dies der Fall ist. Sobald eine DTAQ frei ist, wird sie mit dem Anfrage-String gefüllt. Sodann wird versucht, aus der entsprechende "Antwort"-DTAQ zu lesen.

ILE wiederum stellt fest, dass nun tatsächlich Anfragedaten vorliegen, (ruft nachgeordnete Verarbeitungsprogramme auf) und stellt das Ergebnis in die "Antwort- DTAQ" des Jobs.
Java wartet ja sowieso schon auf die Antwort und that´s it. Im Prinzip auch ok, wenn nur dieser Einbruch bei "vielen" Anfrage-Threads nicht wäre – Blöd!


Andreas