Im BS2000 können die meisten Funktionen ab der Version 1.1 nicht nur synchron, sondern auch asynchron ausgeführt werden. Möglich ist dies über die BS2000-spezifischen Schnittstellen.
Synchrone Ausführung
Bei der synchronen Ausführung erhält das Programm die Steuerung erst zurück, wenn die Funktion ausgeführt ist. Dabei kann es, z. B. bei der Generierung von Schlüsseln, zu Wartezeiten kommen. Der Vorteil der synchronen Ausführung ist die einfache
Handhabung.
Asynchrone Ausführung
Bei der asynchronen Ausführung erhält das Programm die Steuerung zurück, bevor die Funktion vollständig ausgeführt ist. Das Programm kann so Wartezeiten ausnutzen.
Für eine asynchrone Ausführung gehen Sie folgendermaßen vor:
Definieren Sie mit dem Aufruf ENAEI ein Ereigniskennzeichen.
Wenn beim Eintreten eines Ereignisses eine Unterbrechungsroutine gestartet werden soll, definieren Sie diese Routine mit dem Aufruf ENACO.
Legen Sie mit dem Aufruf CGENRAL ACTION=*INITIALIZE, EXEC=*ASYNCHRON fest, dass die Task asynchron mit CRYPT arbeitet.
Geben Sie das Ereigniskennzeichen bei CRYPT-Makroaufrufen mit dem Operanden BOID=... an.
Geben Sie darüber hinaus einen Postcode-Bereich (RPOSTAD=, RPOSTL=) an.
CRYPT verwendet den Postcode1, der folgendermaßen aufgebaut ist:
ETC
SC1
MC2
MC1
ETC
Event Code Type, lautet für CRYPT ’23’
Der Makroaufruf CPKC11T enthält hierfür einen symbolischen Wert.SC1
Subcode1; entspricht dem Wert im Standardheader
MC2
Maincode2; entspricht dem Wert im Standardheader
MC1
Maincode1; entspricht dem Wert im Standardheader
Der Maincode X’8000’ – Parameterbereich nicht zugreifbar – kann nur im Postcode1 erscheinen: CRYPT konnte zum Zeitpunkt der Funktionsausführung nicht auf den Parameterbereich zugreifen.
Verwenden Sie den Postcode2, insbesondere bei Verwendung einer Contingency, für eine Beziehung zum zugehörigen Funktionsaufruf (siehe „Asynchrone Ausführung – Beispiel“).
Der Parameterbereich sowie die darin eventuell angegebenen Datenbereiche müssen schreibend zugreifbar sein, bis das Ende der Funktionsbearbeitung signalisiert ist.
Die Session bleibt für weitere Funktionsaufrufe gesperrt, bis das Ende der Funktionsbearbeitung signalisiert ist.
Für das Ereigniskennzeichen sendet CRYPT ein Signal, sobald die Ausführung beendet ist. Mit dem Aufruf SOLSIG kann das Programm das Signal zur Verarbeitung anfordern.
Weitere Einzelheiten zur ereignisgesteuerten Verarbeitung und den dazu benötigten Makroaufrufen entnehmen Sie bitte dem Benutzerhandbuch „Makroaufrufe an den Ablaufteil“ [3].