Ein Programm oder Service-Programm muss nicht unbedingt laufen, um aktiviert zu sein. Ein Programm oder Service- Programm ist solange aktiv, solange die Aktivierungs-Gruppe in der es läuft aktiv ist.

Wir gehen davon aus, dass Du innerhalb Deines Jobs bereits folgende Programme aufgerufen hast:
1. Programm A --> Procedure aus SrvPgm X --> Aktivierungs-Gruppe A
2. Programm B --> Procedure aus SrvPgm X --> Default-Aktivierungs-Gruppe
3. Programm C --> Procedure aus SrvPgm X --> Aktivierungs-Gruppe *NEW

Das Service-Programm wird neu erstellt.

Beim erneuten Aufruf von Programm A und B, kann es zu Problemen kommen, da die alte Version von SrvPgm X verwendet wurde. Die Aktivierungs-Gruppen wurden nicht beendet.
Programm C dagegen wird ohne Probleme mit der neuen Prozedur arbeiten. Bei Aktivierungs-Gruppe *New wird bei jedem Programm-Aufruf eine neue Aktivierungs-Gruppe verwendet. Bei Programm-Ende wird die Aktivierungs-Gruppe gelöscht und der Speicher bereinigt.

Werden nach der Erstellung des Service Programms alle Aktivierungs-Gruppen mit RCLACTGRP *ELIGIBLE geschlossen, ergibt sich folgende Situation:
Programm A und C werden ohne Probleme mit der neuen Version des Service-Programms arbeiten. Programm B dagegen, wird mit der alten Version arbeiten, da Default-Aktivierungs-Gruppen nur durch normales oder abnormales Jobende geschlossen werden. RCLRSC hilft übrigens bei ILE Programmen und Service-Programmen, die in der Default-Aktivierungs-Gruppe laufen nicht. Die Programme / Service-Programme werden nicht beendet bzw. nicht deaktiveirt, sondern der reservierte Speicher wird lediglich initialisiert.

Deshalb ist es immer am Besten, wenn Programme oder Prozeduren verändert wurden, die Anwender aufzufordern ab- und wieder anzumelden.

Wird in einer sauberen ILE-Umgebung (also ohne Verwendung der Default-Aktivierungs-Gruppe) gearbeitet, sollte man die betroffenen Aktivierungs-Gruppen entweder gezielt, oder mit RCLACTGRP *ELIGIBLE alle beenden. Und erst anschließend testen.

Birgitta