SYSFILE-Umgebung
Die Makroaufrufe RDATA und WRTRD erzeugen Wartezustände und haben bei ihrer Abarbeitung wegen der Verknüpfung mit dem Break-/Escape-Processing (K2-Taste) entsprechende Regeln zur Verwendung von Prozess-Level und Aufrufhierarchien. Die korrekte Ausführung dieser Funktionen ist daher nur bei einem Aufruf aus dem Zustand TU gewährleistet.
Ebenso wie RDATA/WRTRD braucht der Makroaufruf WROUT eine initialisierte SYSFILE-Umgebung.
DCAM-Aufrufe
Die DCAM-Aufrufe können im Zustand TPR und damit in System Exits nicht genutzt werden, da sie bei ihrer Ausführung sowohl Prozesslevel verändern als auch TPR-Contingencies verwenden. Der SVC selbst muss daher auf einem Prozesslevel < 156 (= Zustand TU) aufgerufen werden.
ISAM SVCs
Die ISAM-SVCs 32 und 168 können grundsätzlich in System Exits verwendet werden. Bezüglich des SVC 168 ist jedoch im SHARUPD-Modus Folgendes zu beachten:
Durch die meisten ISAM-Makroaufrufe werden vom Auftrag gehaltene externe ISAM-Sperren freigegeben, sodass stets nur eine Sperre gehalten wird und deadlock-freie Verarbeitung gewährleistet ist. Durch einen ISAM-Aufruf in System Exits kann also u.U. eine vom Anwenderprogramm gesetzte Sperre zurückgesetzt werden, ohne dass dieses vom Anwenderprogramm registriert wird.
Beispiel
Anwenderprogramm: | GET | FCB1,AREA1,LOCK |
System Exit: | GET | FCB2,AREA2,LOCK |
Anwenderprogramm: | PUTX | FCB1,AREA1 |
Der PUTX wird ohne System Exit korrekt ausgeführt, mit System Exit ist die Sperre aufgehoben, es können unerwartete Ergebnisse auftreten.
Daher sollten bei Shared-Update-Verarbeitung in System Exits nur dann ISAM-Makros, die eine Sperre aufheben können, aufgerufen werden, wenn gewährleistet ist, dass kein Anwenderprogramm geladen ist. Selbst in diesem Fall muss sichergestellt werden, dass es keine unerwünschte Wechselwirkung mit Systemdateien gibt.
Die 24-Bit-ISAM-SVCs dürfen nicht mehr in System Exits verwendet werden. Ihre Anwendung in XS-Umgebung führt sofort zum Fehler, da System Exits in TPR-Umgebung laufen, also im 31-Bit-Modus.
JMS-/JV-SVCs
Die JMS-/JV-SVCs sind in TPR-Umgebung und damit auch in System Exits ablauffähig. Sie liefern jedoch nicht generell sinnvolle Ergebnisse (z.B. der Aufruf JINF nicht, wenn keine Taskumgebung existiert).
DSSM/SULNK
Nur die SULNK-Schnittstelle ist nutzbar, wenn die System Exits von DSSM oder SULNK in privilegierten Speicher geladen wurden. Wenn die System Exits im nichtprivilegierten Speicher geladen werden, können die SVCs VSVI, PBUNLD, ITABL, TABLE und LINK verwendet werden. Der Makro $LOAD kann nicht verwendet werden.