-
.. die eigentliche Frage des OP ist ein wenig in den Hintergrund gedrängt worden, da gibt es noch einige offene Punkte:
 Zitat von woodstock99
ich habe z.b. 3 Module mit X prozeduren ..
ich kann ja jetzt die module so binden ..
CRTBNDDIR BNDDIR(&LIB/BNDDIR1) TEXT('XYZ')
ADDBNDDIRE BNDDIR(BNDDIR1) OBJ((module1 *MODULE))
ADDBNDDIRE BNDDIR(BNDDIR1) OBJ((module2 *MODULE))
ADDBNDDIRE BNDDIR(BNDDIR1) OBJ((module3 *MODULE))
und es im PGM in den H Bestimmungen so einbinden BNDDIR(BNDDIR1) und auf die prozeduren zugreifen
Gedanklich befinden wir uns wohl in einem 4. Modul mit einem main. Du verwendest hier ein Binding directory, damit Du das ganze aus PDM bequem wandeln kannst und Du mit H oprtions nicht an alle Compile Parameter drankommst. Das ist dann stabil, wenn Du pro Programm eine eigenes Binding Directory verwendest (am besten: Name des BNDDIR = Module name des Moduls, wo die H-Option drauf verweist.
Auf diese Art und Weise bindest Du die 3 Module per Copy ein, mit der Folge, dass nach Änderung eines der gebundenen Module noch die alte Version gebunden ist und die neue Version erst nach erneutem binden (bei PDM wandeln) verfügbar ist. Werden Funktionen aus den gebundenen Modulen woanders auch noch gebraucht, werden die Module redundant in die Programme beim binden reinkopiert.
Vorteil kann hierbei sein, dass bei unterschiedlichen Versionen mit dem Programm immer die passenden Module gefunden werden, ohne Einfluss des LIBL zur Laufzeit.
 Zitat von woodstock99
oder ich mache
ein ServicePGM (BNDDIR2) daraus z.b. ..
STRPGMEXP SIGNATURE('XYZ_01')
EXPORT SYMBOL("proz1")
EXPORT SYMBOL("proz1")
EXPORT SYMBOL("proz1")
EXPORT SYMBOL("proz1")
EXPORT SYMBOL("proz1")
ENDPGMEXP
CRTBNDDIR BNDDIR(&LIB/BNDDIR2) TEXT('xyz')
ADDBNDDIRE BNDDIR(BNDDIR2) OBJ((BNDDIR2 *SRVPGM))
und binde es im PGM in den H Bestimmungen sin ein BNDDIR(BNDDIR2)
Jetzt erstellst Du im ersten Schrit ein SRVPGM aus den 3 Modulen und machst sie dadurch per reference bindbar, in der Exportliste müssen die Namen natürlich alle unterschiedlich sein und mit den EXTPRC Einträgen des Prototyps der exporte übereinstimmen.
Das zu bindende SRVPGM hast Du wieder in einem BNDDIR (hier gilt wieder meine obige Empfehlung!!!) In diesem Fall wird nur die Exportliste des SRVPGM in das Programm gebunden, zur Laufzeit wird dann das SRVPGM über den LIBL gesucht (und hoffentlich gefunden) und die Exporte an die Exportliste nach Position gebunden, das nennt man bind by reference. Nach Änderung im SRVPGM braucht man nicht neu zu binden, solange die Exportliste für die verwendeten Einträge noch "passt", sitzt an einer der verwendeten Exporte jetzt was anderes, geht es lustig in den tiefen Wald!!!
 Zitat von woodstock99
was ist der vor und nachteil der jeweiligen technik ??
Im Regelfall ist die zweite Variante eindeutig vorzuziehen, es gibt aber durchaus Ausnahmen, wo Variante 1 vorteilhaft ist, bei den an anderer Stelle genannten Triggerprogrammen zum Beispiel.
An Deinem Beispiel sieht man auch sehr schön die Rolle des Binderverzeichnisses. Ob Variante 1 entsteht, oder Variante 2 geht nur aus dem Binderverzeichnis hervor. Bei einem zentralen Verzeichnis würden also nach Änderung im Binderverzeichnis, andere Objekte bei der nächsten Wandlung anders erstellt werden als zuvor, was bei Änderungen in den Modulen später zu Seiteneffekten führt.
D*B
Similar Threads
-
By hgdieterle in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 07-11-14, 06:59
-
By Franz.Rung in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 09-10-14, 14:00
-
By jgv in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 06-11-13, 14:41
-
By Franz.Rung in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 04-11-13, 15:32
-
By hs in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 25-04-02, 16:49
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks