PDA

View Full Version : UPDPGM vs Compile wg. neuem Modul



becama
30-07-09, 14:57
Hi *all,

wg. der Umstellung auf V6R1M0 muss ich ein Modul austauschen, weil es keine Erstellungsdaten hat und somit nicht auf 6.1 konvertiert werden kann. Das Modul ist in hunderten von Pgms gebunden, die ich eigentlich nicht neu umwandeln und binden will.

Spricht was dagegen wenn ich nur das Modul neu erstelle und dann per CL mit UPDPGM in allen in Frage kommenden Pgms austausche ?

In diesem Zusammenhang habe ich festgestellt, daß die Analyse zur Objektkonvertierung (ANZOBJCVN) solche Pgms, die nicht konvertierbare Module enthalten, als umsetzbar durchgehen lässt. d.h. es knallt u.U. erst beim Aufruf des Pgms wenn das OS versucht das Modul zu konvertieren.
Ooops ein Bug vom IBM, oder mache ich was falsch ?


Danke

B.Hauser
03-08-09, 05:30
Hallo,

normalerweise würde ein Update reichen. Aber da bei der Umstellung auf Release 6.1. der interne Programm-Code konvertiert wird, bleibt Dir wohl nur auszuprobieren, ob ein UPDPGM genügt. Sicherer wäre es auf alle Fälle die Programme neu zu erstellen.

Vielleicht solltest Du bei dieser Gelegenheit darüber nachdenken ob Du das Modul in ein Service-Programm konvertieren/binden solltest. Ein Modul hart in hunderte von Programme zu binden, ist keine gute Idee, da das Modul physisch (wie eine Copy-Strecke) in jedes Programm integriert wird (und das u.U. mehrfach!). Beim Ändern des Moduls wirst Du auch in Zukunft die gleichen Probleme wie jetzt haben! Erstellst Du stattdessen ein Service-Programm und bindest dieses in die Programme, gibt es nur eine einzige Kopie des Moduls (im Service-Programm). Bei Änderung muss lediglich das Service-Programm aktualisiert oder neu erstellt werden. Die Programme, die die Prozeduren aus dem Service-Programm aufrufen müssen nicht mehr angefasst werden.

Birgitta

becama
03-08-09, 10:19
Hallo Birgitta,

Danke für die Hinweise.
Das bedeutet ich lösche mit UPDPGM das Modul HUGO aus den Pgms raus und füge das zuvor neu erstellte srvpgm HUGO in die Pgms ein.

Wie erstelle ich ein *srvpgm ? Gibt's da auch Fallen ?

Danke im voraus

prsbrc
03-08-09, 14:21
Hallo :)

Also mittels dem Befehl CRTSRVPGM (F4) kannst du ein Serviceprogramm kompilieren.

Lg

Fuerchau
09-08-09, 11:57
Per UPDPGM wird das Modul einfach ersetzt. Entfernen oder Hinzufügen geht nämlich nur per CRTPGM.