... ich staune immer wieder, wieviel Halbwissen rund um ILE existiert.
Ein Binderverzeichnis ist eine Suchliste nach Exporten, der ist es egal, wann ein Eintrag da gemacht wurde. Gesucht wird immer nach dem aktuellen Stand zur Bindezeit. Was auch heißt, dass von zentralen Binderverzeichnissen ohne Change Management System abzuraten ist.

Änderungen im Binderverzeichnis können beim nächsten rebind zu unerwarteten Effekten führen (falsche Funktion gebunden bei Namensgleichheit, bzw. per Copy statt per referenece oder umgekehrt). In jedem Fall sollte man eindeutige Exportnamen sicherstellen (einfach ist: Modulnamen als prefix durch Umbenennung im Prototyp).

Einfacher und besser als BNDDIR (weil sicherer) ist, beim binden (CRTPGM, bzw. CRTSRVPGM) die benötigten Komponenten dezidiert anzugeben. Unter MODULE alles was per COPY gebunden werden soll, unter BNDSRVPGM alles was via SRVPGM per REFERENCE gebunden werden soll. Dann braucht man entweder jeweils ein Umwandlungs CL, oder man verwendet einen der Open Source Pre-Processor, die das aus der Quelle aus speziellen Kommentaren auslesen.

ACTGRP *CALLER ist für Programme auch nicht das Gelbe vom Ei, das kann zu unangenehmen Seiteneffekten führen.

Auch hier hat selbst das oben erwähnte Redbook durchaus Schwächen - gehört aber trotzdestonichts zu den Besseren (die über SQL Procedures und Functions sind grauselig und enthalten sogar falsche Beispielprogramme).

D*B