Das Problem sind allerdings noch die QZDASOINIT-Job's (ODBC-Zugriffe).
SQL hält die ODP's auch nach Close offen.
Durch das Schließen der Verbindung wird zwar der QZDASOINIT-Job getrennt, aber nicht beendet !
Die nächste Verbindung such sich einen getrennten Job und verbindet sich mit diesem wieder. Erst wenn keiner Verfügbar ist, wird ein neuer Job initiiert.

Solange also der Job tatsächlich nicht beendet wird, sind die Ressourcen noch belegt!

In den Verbindungseigenschaften muss man dafür dann "Lazyclose" dekativieren (wie der Eintrag genau aussieht musst du mal suchen).

Ich habe diesbezüglich nämlich noch ein anderes Problem:
Sind auf dem System mehrere Sprachen installiert, wird die entsprechende QSYS29xx abhängig vom User vorgeschaltet.
Da aber eine QSYS29HH (HH-Hauptsprache) meist nicht existiert, scheitert der CHGSYSLIBL und die zuletzt eingestellte Sprache bleibt bestehen.
Fehlermeldungen erhält man dann in der Fremdsprache.
Lösung: eine leere QSYS29HH (z.B. QSYS2929 für Deutsch) erstellen.