Alle Eingaben, die an einer Konsole gemacht werden, gehen zunächst an UCON, die zentrale Konsoltask des Systems. Handelt es sich bei der Eingabe um ein Kommando, muss UCON zunächst die an den Routing-Code des Kommandos geknüpfte Berechtigungsprüfung durchführen. Erst wenn die bestanden ist, darf das Kommando an den zuständigen Kommandoserver weitergeleitet werden.
Da der Routing-Code eines Kommandos (und bei Operator-Spezialkommandos auch der Kommandoserver) jedoch nicht Bestandteil der SDF-Syntaxdatei ist, muss sich UCON eine eigene Kommandotabelle halten, in der die benötigten Informationen enthalten sind. Kommandos, die in der UCON-Kommandotabelle nicht enthalten sind, können an Konsolen nicht ausgeführt werden. Operator-Spezialkommandos müssen daher als Erstes in diese Tabelle eingetragen werden.
Statische Einträge
Eine Möglichkeit zur Eintragung von Operator-Spezialkommandos in die UCON-Kommandotabelle ist die Parameterservice-Anweisung ADD-CMD-ENTRY (siehe "Anweisung ADD-CMD-ENTRY"). Die dadurch erzeugten Einträge sind statisch, d.h. bleiben für die gesamte Dauer der Session erhalten. Als zuständiger Kommandoserver kann daher nur eine $CONSOLE-Anwendung mit (statisch) generiertem Berechtigungsnamen angegeben werden (ist der angegebene Berechtigungsname noch nicht bekannt, wird er automatisch generiert).
Ferner besteht hier keine Möglichkeit, das Kommando als verwaltbar zu deklarieren.
Soll ein Operator-Spezialkommando verwaltbar ablaufen oder von einer $CONSOLE-Applikation mit dynamischen Berechtigungsnamen ausgeführt werden, muss der Eintrag in die Kommandotabelle mit Hilfe des Kommandos CONNECT-CMD-SERVER dynamisch erfolgen.
Dynamische Einträge
Eine $CONSOLE-Anwendung, die als Server für ein Operator-Spezialkommando fungieren soll, kann sich selbst mit dem Kommando CONNECT-CMD-SERVER dynamisch bei UCON als Kommandoserver anmelden. UCON erzeugt dann automatisch einen entsprechenden Eintrag in der Kommandotabelle.
Zu beachten ist dabei, dass pro Kommando bis zu vier Einträge in der Kommandotabelle erlaubt sind. CONNECT-CMD-SERVER kann also auch für bereits eingetragene Kommandos (auch Systemkommandos) abgesetzt werden (wobei allerdings nicht alle Eigenschaften des Kommandos geändert werden können, siehe Kommandobeschreibung). Der neue Eintrag „überlagert“ dann den alten, und die Kommandos werden fortan der $CONSOLE-Anwendung zugestellt, die den neuesten Eintrag besitzt. Welche Einträge alles existieren, lässt sich mit dem Kommando SHOW-CMD-ATTRIBUTES anzeigen.
Ein dynamischer Eintrag in der UCON-Kommandotabelle wird automatisch wieder entfernt, wenn die Verbindung von $CONSOLE zum zuständigen Kommandoserver abgebaut wird. Ferner kann die Anwendung ihn mit Hilfe des Kommandos DISCONNECT-CMD-SERVER explizit löschen.
Ist der entfernte Eintrag der einzige für dieses Kommando gewesen, ist das Kommando anschließend nicht mehr bekannt. Gibt es weitere Einträge, so wird (bzw. bleibt) der neueste der noch existierenden Einträge wirksam; der Eigentümer dieses Eintrags bekommt die Kommandos zugestellt.
Definition in der Syntaxdatei
SDF-A bietet die Möglichkeit, Syntaxdatei-Einträge für Operator-Spezialkommandos zu erstellen (Anweisung ADD-CMD <name>, IMPLEMENTOR= *APPLICATION). Ein solcher Syntaxdatei-Eintrag ist notwendig, wenn das Kommando Kennwörter enthält, die nicht in der CONSLOG protokolliert werden sollen. Ein solches Kommando ist mit PASSWORD-POSSIBLE=*YES in die UCON-Kommandotabelle einzutragen. Die CLOG-Task ruft dann vor der Protokollierung in die CONSLOG SDF auf und lässt alle als „geheim“ (SDF-A: ADD-OPERAND <name>, SECRET-PROMPT=*YES) gekennzeichneten Operanden entfernen. Existiert kein Syntaxdatei-Eintrag, wird das Kommando unverändert im Klartext protokolliert.
Darüber hinaus können Operator-Spezialkommandos, für die ein Syntaxdatei-Eintrag vorhanden ist, nicht nur an Konsolen verwendet werden, sondern in allen Benutzertasks, die gemäß den in der Syntaxdatei eingetragenen Kommandoprivilegien dazu berechtigt sind. Eine Berechtigungsprüfung anhand des Routing-Codes findet bei Eingabe in einer Benutzertask nicht statt.
Soll ein Operator-Spezialkommando durch Eintrag in die Systemsyntaxdatei einem bestimmten Benutzerkreis zur Verfügung gestellt werden, ist folgende Besonderheit zu beachten:
Der Syntaxdatei-Eintrag ersetzt den Eintrag in die UCON-Kommandotabelle nicht. Kommandos, die zwar in der Systemsyntaxdatei, aber nicht in der UCON-Kommandotabelle eingetragen sind, werden mit der Meldung NBR0744
zurückgewiesen. Ebenso wird mit zusätzlichen, UCON unbekannten Alias-Namen eines eigentlich bekannten Kommandos verfahren.
Das Privileg OPERATING kann an beliebige Benutzerkennungen vergeben werden. Damit verbunden ist die Erlaubnis, fast alle sog. Operator-Kommandos nutzen zu können.