Abbruch eines asyncronen RSUBMIT Blocks

Hallo,

ich habe ein unschönes Problem beim Arbeiten mit RSUBMIT feststellen müssen.

Ich habe ein Makro geschrieben, welches das Ausführen von mehreren SAS Programmen auf mehreren Rechnern (andere PC-Clients) automatisiert. Dabei geht das makro folgendermaßen vor:

  • Erstelle Liste aller auszuführenden Programme
  • Verbinde zu allen Servern und sende jeweils das erste Programm zum ausführen
  • Solange weitere Programme ausgeführt werden sollen
    • Warte auf ersten Server, welcher fertig ist und sende diesem das nächste Programm
  • Beende Verbindung zu allen Servern

Mein Problem tritt auf, wenn einer der Server (das sind wie gesagt PC-Clients) ausgeschaltet wird, oder anderweitig nicht mehr erreichbar ist. In diesem Fall friert meine lokale SAS-Session gleich mit ein und ich kann diese nur über "Terminate SAS-Session" beenden.

Für den Verbindungsaufbau verwende ich

%LET server&_i = localhost 23;
SIGNON server1 CMACVAR = ds_connect;

und den RSUBMIT Block starte ich mit

RSUBMIT server1 WAIT=no CMACVAR=server1_var SYSRPUTSYNC=YES;

Zum Hintergrund:
Wir haben Programme, welche sich aus anderen programmen zusammensetzen. Diese Unterprogramme können, bis auf Initialisierung und Finalisierung, unabhängig voneinander ablaufen.
Da diese Programme teilweise sehr lange laufen wäre es vorteilhaft diese, z.B. nachts oder am Wochenende, auf mehreren Rechnern parallel auszuführen.

Wenn nun einer dieser Rechner ausgeschaltet wird (durch den Kolegen, die Putzfrau, ...) soll natürlich nicht das ganze Programm betroffen sein.

Gibt es eine Möglichkeit bei eien solche Störung abzufangen?

Wie sieht das "Einfangen" der Serverprozesse aus

Grundsätzlich sollte es kein Problem sein, wenn einer der Server einmal nicht zu erreichen ist.
Evtl. ist nicht das Remote-Processing die Ursache sondern die Steuerung im lokalen Macro.

Vielleicht liegt das Problem an der Art, wie auf die laufenden Prozesse gewartet wird bzw. wie erkannt wird, wann ein Server wieder bereit ist und er den nächsten Job zugeteilt bekommt.
Wird z.B. ein Timeout mit angegeben?

Eine andere Frage ist, an welcher Stelle das Client-Programm genau "stehen bleibt". Werden die Signons alle noch durchgeführt (also auch das fehlerhafte) und/oder werden die RSUBMITs alle noch gestartet?

Es wäre hilfreich, mehr von dem betreffenden Macro zu sehen. Dann kann man das Problem besser beurteilen.