... da schüttelt sich bei mir wieder mal alles, da geht wieder alles kreuz und quer.

BNDDIR haben mit Signaturen und Rebind nichts zu tun!!!

Wenn ein Programm oder Serviceprogramm Prozeduren aus anderen Modulen verwendet, dann muss man zur Bindezeit (beim CRTPGM bzw. CRTSRVPGM) Angaben machen woher diese Prozeduren kommen sollen. Dazu gibt es mehrere Varianten:
- Bind by copy: hier werden Module in das jeweilige Objekt zur Bindezeit reinkopiert.
- Bind by Reference: hier müssen die benötigten Module über ein SRVPGM erst bindbar gemacht werden
Nun kann man entweder im jeweiligen Parameter MODULE und BNDSRVPGM explizit angeben, was und wie gebunden weerden soll, das ist das stabilste und beste, erfordert aber ein Minimum an change Management (entweder schreibt man den command in die Quelle und benutzt einen Preprozessor, oder man verwendet ein Tool, das das aus bereits vorhandenen Objekten ausliest und wieder genauso macht.

Wer ein wenig Nervenkitzel braucht, der kann auch zu bindende Objekte in ein BNDDIR reinpacken (maximale Blutdruckerhöhung bekommt man mit einem einzigen Binderverzeichnis für alles und alle) und dann das System entscheiden lassen, was und wie gebunden wird - bei sorgfältiger Vorgehensweise kriegt man auch das, was man haben will.

Jetzt mit den Signaturen:
Hier kann man mit Binderquellen Signaturen selber vergeben und verwalten, das spart dann rebind Prozesse. Das empfehle ich allen, die Software Pakete verkaufen (oder als Open Source verteilen), vorher sollte man sich aber sehr solide damit beschäftigen, was da wie wirkt.

Allen anderen, insbesondere denen, die nicht genau wissen was sie da tun und auch denen, die da meinen Parameterschnittstellen ändern zu müssen und können, empfehle ich keine Binderlanguage zu verwenden und SRVPGMs mit export(*ALL) zu wandeln, dann zieht ein levelcheck Mechanismus vergleichbar mit dem bei Dateien, der davor schütz, dass Unfug aufgerufen wird - eh' was falsch aufgerufen wird, schmiert das Programm ab (wie bei Dateien auch) vermieden wird das, indem man alles betroffene neu bindet (wie die technische Umwandlung bei geänderten Dateien) und der Compiler alles prüft und wieder passend macht. Auch bei dem zweiten Verfahren ändert man selbstverständlich keine Schnittstellen, sondern fügt nur neues hinzu und nicht mehr verwendetes darf man dann rausnehmen.

D*B