[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2002
    Beiträge
    77

    Question BNDDIR / Servicepgm und Module... allgemeine Fragen

    Hallo zusammen,
    wir haben bei uns 2 AS/400, eine zur Entwicklung/Test und eine Produktionsmaschine. Soweit so gut.
    Nun hab ich ein Verständnisproblem, was ich denn bei Auslieferungen von geänderten Programmen alles übertragen muss. Im Moment läuft bei uns folgender Ablauf:
    Modul erstellen/ändern
    Servicepgm Binderquelle ändern, dabei kopieren von
    STRPGMEXP PGMLVL(*CURRENT) in
    STRPGMEXP PGMLVL(*PRV)
    (Levelcheck immer auf *YES.)
    Dann entfernen des Serviceprogramms aus dem Binderverzeichnis und wieder reinnehmen des neu erstellten (wobei es den gleichen Namen behält. Hosenträger und Gürtel Methode)
    Dann werden BNDDIR, SRVPGM und alle Module auf die Produktionsmaschine übertragen.
    Ich bin ziemlich sicher, dass wir die Module nicht übertragen müssen, nur das zu Testen auf einer Produktionsmaschine, die 7 Tage die Woche bereitstehen muss ist sicher nur die zweitbeste Idee...
    Fragen also: Was muss ich übertragen? und muss das Servicepgm entfernt und wieder ins BNDDIR reingenommen werden wie "hart" ins BNDDIR aufgenommene Module, wenn sie sich ändern?
    Und noch eine Style Frage:
    Machen mehrere Serviceprogramme Sinn oder sollte man grundsätzlich alle Module in ein großes Serviceprogramm binden?

    Danke für alle Antworten

    Andreas
    Andreas
    ***Wer einen Schreibfehler findet darf ihn behalten***

  2. #2
    Registriert seit
    Jan 2001
    Beiträge
    340

    Post

    Zuerst mal der Versuch einer Begriffserklärung, direkte Antworten inline :

    Service-Programme und Module expotieren und importieren Prozeduren und/oder Variablen. Um dem armen Programmierer die Schreibarbeit zu erleichtern, gibt es Binderverzeichnisse. Diese enthalten nur das, was man am Bildschirm sieht: also einen Namen, einen Typ und eine Bibliothek. Das ist vergleichbar einem Telefonverzeichnis, da wohnt ja auch keiner drin.

    Beim Erstellen eines (Service-)Programmes sucht der Binder zu allen Importen die passenden Exporte. Dazu wird die Liste der im Parameter übergebenen Module, Service-Programme und Binderverzeichnisse benutzt.

    Nach dem Binden sind Module und Binderverzeichnisse zum Ablauf nicht mehr nötig, nur die Programme und Service-Programme.
    Zitat:

    dabei kopieren von
    STRPGMEXP PGMLVL(*CURRENT) in STRPGMEXP PGMLVL(*PRV)
    [/quote]
    das ist nur nötig, wenn sich in der Reihenfolge der Exporte etwas geändert hat, oder welche dazugekommen sind.
    Zitat:

    Dann entfernen des Serviceprogramms aus dem Binderverzeichnis und wieder reinnehmen des neu erstellten (wobei es den gleichen Namen behält. Hosenträger und Gürtel Methode)
    [/quote]
    ??? das ist wie nach dem Telefonieren die Telefonnummer im Adressbuch ausradieren und wieder reinschreiben
    Zitat:

    Dann werden BNDDIR, SRVPGM und alle Module auf die Produktionsmaschine übertragen.
    ... Fragen also: Was muss ich übertragen?
    [/quote]
    s.o.
    Zitat:

    und muss das Servicepgm entfernt und wieder ins BNDDIR reingenommen werden wie "hart" ins BNDDIR aufgenommene Module, wenn sie sich ändern?
    [/quote]
    weder das eine, noch das andere
    Zitat:

    Und noch eine Style Frage:
    Machen mehrere Serviceprogramme Sinn oder sollte man grundsätzlich alle Module in ein großes Serviceprogramm binden?
    [/quote]
    zum einen ist das tatsächlich eine Style Frage, d.h. das kommt darauf an, aber wichtiger sind hier Fragen des Anwendungsdesigns, z.B. macht es wenig Sinn ein riesiges Service-Programm zu laden, wenn jeweils nur wenige Exporte gebraucht werden.

    aber das muß man im einzelnen entscheiden
    Gruß
    Rolf

    [Dieser Beitrag wurde von rmittag am 12. November 2002 editiert.]

  3. #3
    Registriert seit
    Aug 2002
    Beiträge
    77

    Post

    Es wird Licht :-)
    Vielen Dank

    Andreas
    Andreas
    ***Wer einen Schreibfehler findet darf ihn behalten***

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695

    Post

    Noch ein paar Erklärungen:

    Im Gegensatz zu OPM-Programmen lassen sich ILE-Programme im laufenden Betrieb nur schwer ersetzen.
    OPM-Programme wurden in die QRPLOBJ-Lib geschoben (MOVOBJ) und dann das neue Programm eingestellt, so dass laufende Jobs bis zum Neuaufruf des Programmes noch mit der alten Version weitergearbeitet haben.

    Bei ILE ist dies NICHT mehr möglich. Ein laufendes ILE-(Service-)Programm kann nicht mehr verschoben und ersetzt werden. Die Programme dürfen nicht mehr aktiv sein !

    Nun noch zu den Modulen:

    Wenn nur einzelne Module korrigiert wurden (Fehlerbehebungen) und keine neuen Exporte hinzugekommen sind, liegt der Vorteil von ILE darin nicht mehr die kompletten Programme verschicken zu müssen sondern nur noch die modifizierten Module und diese dann per UPDPGM in die vorhandenen ILE-(Service-)Programme zu übernehmen (auch dieses geht übrigens nicht, wenn das Programm noch aktiv ist).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Aug 2002
    Beiträge
    77

    Post

    danke für die Ergänzungen. Ich hab mir darauf nen Kopf gemacht, wie man denn erkennen soll, ob das Serviceprogramm aktiv ist oder nicht. Wenn man nur OPM kennt ist das etwas schwierig zu durchschauen.
    Arg vereinfacht dargestellt:
    In OPM ruft Benutzer A ein Programm auf, Programmkopie wird in den Hauptspeicher gelegt, Benutzer A bekommt seinen eigenen Variablenbereich. Benutzer B ruft das gleiche Programm auf und bekommt nur noch den Variablen Bereich angelegt.
    Bei Serviceprogrammen hatte ich das so verstanden, dass nur die Moduln dazugeladen werden, die auch in das "echte Programm" per Referenz gebunden sind. Das dazu erstmal das ganze Servicvepgm geladen werden muss ist einsichtig. Aber bleibt das ganze Servicepgm im Speicher, bis das letzte Programm, dass ein Modul daraus benutzt irgendwann mal beendet ist?
    Zitat:
    --------------------------------------------------------------------------------
    Wenn nur einzelne Module korrigiert wurden (Fehlerbehebungen) und keine neuen Exporte hinzugekommen sind, liegt der Vorteil von ILE darin nicht mehr die kompletten Programme verschicken zu müssen sondern nur noch die modifizierten Module und diese dann per UPDPGM in die vorhandenen ILE-(Service-)Programme zu übernehmen (auch dieses geht übrigens nicht, wenn das Programm noch aktiv ist).

    dazu steht in der Hilfe von UPDPGM folgendes:
    Mit dem Befehl UPDPGM (Programm aktualisieren) können Module eines
    ILE-Binderprogramms durch andere Module auf dem System ersetzt
    werden, ohne daß der Benutzer das Binderprogramm ändern oder erneut
    kompilieren muß. Bei den zu ersetzenden Modulen muß es sich um auf
    dem System vorhandene Modulobjekte (*MODULE) handeln.

    Andere Jobs, die das Binderprogramm ausführen, können fortgesetzt
    werden, während das Programm mit diesem Befehl aktualisiert wird.
    Das derzeit ausgeführte Binderprogramm wird in die Bibliothek
    QRPLOBJ übertragen, und eine aktualisierte Version des
    Binderprogramms wird in die Bibliothek des Binderprogramms gestellt.
    Aktuelle Aktivierungen des Programms werden weiterhin mit der
    Version in QRPLOBJ ausgeführt.

    Grundsätzlich ist beides durch unsere getrennten Maschinen kein Problem. Programme werden nur nachts übertragen direkt nach der Sicherung, wenn kein Anwender aktiv ist. Nur fiel mir der teil mit der QRPLOBJ halt auf.

    Andreas

    EDIT Notiz: Rechtschreibkorrekturen

    [Dieser Beitrag wurde von AndreasH am 13. November 2002 editiert.]
    Andreas
    ***Wer einen Schreibfehler findet darf ihn behalten***

Similar Threads

  1. Allgemeine Berechtigung für Jobs ... IFS Ordner ...
    By bode in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 30-10-06, 11:10
  2. Ein paar Fragen zu DB2/AS400
    By Andreas.Meyer in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 03-08-06, 09:10
  3. BNDDIR Parameter direkt in CBLLE-Quelle?
    By rebe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 24-05-06, 19:37
  4. Können CLLE Module selbst einen Wert halten bzw. zurückgeben?
    By JonnyRico in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 25-04-06, 10:16
  5. Allgemeine Fragen - AS/400
    By chr in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 02-09-01, 11:19

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •