Das Softwareprodukt SDF-P ist eine Prozedursprache, die die Kommandosprache von BS2000 zu einer Programmiersprache erweitert. Prozeduren, die entsprechend den Regeln von SDF-P erstellt werden, heißen strukturierte Prozeduren (S-Prozeduren). SDF-P bietet ein Variablenkonzept, in dem sowohl zusammengesetzte Variablen (S-Variablen) als auch Variablenströme (S-Variablenströme) bearbeitet werden können. Nähere Informationen zu SDF-P und zum Arbeiten mit S-Variablen finden Sie in den Handbüchern " Programmieren in der Kommandosprache" und " Kommandos, Band 1".
SESADM liefert Ausgaben in S-Variablen für die meisten SHOW-Administrationsanweisungen, wenn der Operand STRUCTURE-OUTPUT
(siehe "Syntax für die Ausgabe in S-Variablen") einen anderen Wert als *NONE
hat. Die S-Variablen können mit SDF-P ausgewertet und weiter verarbeitet werden. Dies erleichtert eine automatisierte Analyse mit SESADM.
Administrationsanweisungen mit Ausgabe in S-Variablen
SESADM bietet die Ausgabe in S-Variablen für folgende Administrationsanweisungen an:
Administrationsanweisung | Anwendungsgebiet |
SHOW-CATALOG-USERS | DBH-Administration |
SHOW-CATID-LIST | DBH-Administration |
SHOW-DISTRIBUTION-RULE-ENTRIES | DCN-Administration |
SHOW-INACTIVE-SQL-USERS | DBH-Administration |
SHOW-MAIL-PARAMETERS | DBH-Administration |
SHOW-OLD-TABLE-CATALOG-ENTRIES | DBH-Administration |
SHOW-PARTITIONS | DBH-Administration |
SHOW-SPACE-USERS | DBH-Administration |
SHOW-SQL-DB-CATALOG-ENTRIES | DBH-Administration |
SHOW-TRANSACTIONS | DBH- und DCN-Administration |
SHOW-USERS | DBH- und DCN-Administration |
SHOW-USER-SPACES | DBH-Administration |
Tabelle 14: Administrationsanweisungen mit Ausgabe in S-Variablen
Die Ausgabe in S-Variablen ist Bestandteil der jeweiligen Kommandobeschreibung. Struktur und Inhalte der S-Variablen werden im Anschluss an die Kommandobeschreibung tabellarisch unter Angabe von Name, Bedeutung und Inhalt aufgelistet.
Die Struktur der S-Variablen ist für jede Anweisung vorgegeben und wird für die Folgeversionen garantiert, d.h. sie wird nicht inkompatibel geändert.
Namensbestandteile der S-Variablen
Die Namen der Listenelemente (z.B. CATID
) sind für das jeweilige Informationskommando vorgegeben. Sie schließen sich an den vom Anwender deklarierten S-Variablennamen an. Die Namen orientieren sich, soweit möglich, an den korrespondierenden Ausgabebezeichnungen. Ist die Information auf dieser Ebene weiter hierarchisch untergliedert, schließen sich weitere Namen, durch einen Punkt getrennt, an.
Inhalt der S-Variablen
Die Inhalte der S-Variablen entsprechen den korrespondierenden Ausgabewerten. Der Datentyp der S-Variablen von SESADM ist stets <string>
, d.h. es wird eine Zeichenfolge ausgegeben.
Arbeiten mit S-Variablen in SESADM
Die Ausgabe in S-Variablen erfolgt zusätzlich zur normalen Ausgabe, wenn der Operand STRUCTURE-OUTPUT
ungleich *NONE
angegeben ist. Es werden aber keine Meldungen oder Trenn- bzw. Überschriftszeilen in S-Variable ausgegeben.
Der Operand STRUCTURE-OUTPUT
(siehe "Syntax für die Ausgabe in S-Variablen") steuert die Ausgabe in S-Variablen:
STRUCTURE-OUTPUT=*NONE
liefert keine Ausgabe in S-VariableSTRUCTURE-OUTPUT=<Name der S-Variablen>(WRITE-MODE=*REPLACE/*EXTEND)
liefert die Ausgabe in die angegebene S-Variable. Die S-Variable muss zuvor in der S-Prozedur als dynamische, strukturierte Listenvariable deklariert werden. Die S-Variable kann überschrieben (*REPLACE
) oder erweitert (*EXTEND
) werden.Siehe Beispiel auf "Strukturierte Ausgabe in S-Variablen".STRUCTURE-OUTPUT=*SYSINF
liefert die Ausgabe auf den Variablenstrom SYSINF, dem mittels ASSIGN-STREAM eine S-Variable zugewiesen ist. Die S-Variable wird fortgeschrieben. Der Inhalt kann mit dem SDF-P-KommandoFREE-VARIABLE
gelöscht werden. Siehe Beispiel auf "Strukturierte Ausgabe in S-Variablen".
Bei einer strukturierten Ausgabe in S-Variablen werden die aktuellen Einzelinformationen jeweils als Inhalt einer S-Variablen abgespeichert. Über die Namen und Strukturbezeichner der S-Variablen greift der Anwender, unabhängig vom Layout der Bildschirm- oder Listenausgabe, auf die gewünschte Einzelinformation im Informationskommando zu.
Es wird empfohlen, für verschiedene Administrationsanweisungen auch verschiedene S-Variablen zu verwenden, da die erzeugten Strukturelemente von der Anweisung abhängen..
Beispiel
Mit folgendem Beispiel werden die Einträge der SQL-Verzeichnisse zweier DBHs einer Konfiguration in eine S-Variable geschrieben und ausgegeben:
/DECLARE-VARIABLE - / VARIABLE-NAME=ADMVAR(TYPE=*STRUCTURE(DEFINITION=*DYNAMIC)), - / MULTIPLE-ELEMENTS=*LIST 1. /START-SESAM-ADMINISTRATION 2. //START-DBH-ADMINISTRATION PASSWORD=C'ADM',DBH-NAME=W 3. //SHOW-SQL-DB-CATALOG-ENTRIES SELECT=*ALL, - // STRUCTURE-OUTPUT=ADMVAR(WRITE-MODE=*REPLACE) 4. <catalog-name> | Copy-|Class| UserID | Status | Info <physical-name> | Nr | | | | --------------------------------------------------------------- DCCAT | |ADMIN| SQLDB112 | ACTIVE | WIE | | | | | VIRST | |ADMIN| SQLDB112 | ACTIVE | WIE.FIRST | | | | | % <date> <time> SES7215 END OF OUTPUT //START-DBH-ADMINISTRATION PASSWORD=C'ADM',DBH-NAME=V 5. //SHOW-SQL-DB-CATALOG-ENTRIES SELECT=*ALL, - // STRUCTURE-OUTPUT=ADMVAR(WRITE-MODE=*EXTEND) 6. <catalog-name> | Copy-|Class| UserID | Status | Info <physical-name> | Nr | | | | --------------------------------------------------------------- DCCAT | |ADMIN| SQLDB112 | ACTIVE | WIE | | | | | SECON | |ADMIN| SQLDB112 | ACTIVE | WIE.SEC | | | | | % <date> <time> SES7215 END OF OUTPUT //END 7. Fortsetzung auf der nächsten Seite
Die zusammengesetzte, strukturierte S-Variable
ADMVAR
von Typ Liste wird angelegt.SESADM wird gestartet.
Die Administration des DBH W wird gestartet.
Anweisung zur Ausgabe der SQL-Verzeichnisse der DBHs. Die S-Variable
ADMVAR
wird überschrieben (*REPLACE
, Standardwert). Es folgt die SYSOUT-Ausgabe.Die Administration des DBH V wird gestartet.
Anweisung zur Ausgabe der SQL-Verzeichnisse der DBHs. Die S-Variable
ADMVAR
wird fortschrieben (*EXTEND
). Es folgt die SYSOUT-Ausgabe.Die Administration mit SESADM wird beendet.
/SHOW-VARIABLE VAR-NAME=ADMVAR, - / INFORMATION=*PARAMETER(LIST-INDEX-NUMBER=*YES) 8. (OUT) ADMVAR#1.CATALOG = DCCAT (OUT) ADMVAR#1.ACCESS-MODE = ADMIN (OUT) ADMVAR#1.USERID = SQLDB112 (OUT) ADMVAR#1.STATE = ACTIVE (OUT) ADMVAR#1.INFORMATION = (OUT) ADMVAR#1.PHYSICAL-NAME = WIE (OUT) ADMVAR#1.COPY-NUMBER = (OUT) ADMVAR#2.CATALOG = VIRST (OUT) ADMVAR#2.ACCESS-MODE = ADMIN (OUT) ADMVAR#2.USERID = SQLDB112 (OUT) ADMVAR#2.STATE = ACTIVE (OUT) ADMVAR#2.INFORMATION = (OUT) ADMVAR#2.PHYSICAL-NAME = WIE.FIRST (OUT) ADMVAR#2.COPY-NUMBER = (OUT) ADMVAR#3.CATALOG = DCCAT (OUT) ADMVAR#3.ACCESS-MODE = ADMIN (OUT) ADMVAR#3.USERID = SQLDB112 (OUT) ADMVAR#3.STATE = ACTIVE (OUT) ADMVAR#3.INFORMATION = (OUT) ADMVAR#3.PHYSICAL-NAME = WIE (OUT) ADMVAR#3.COPY-NUMBER = (OUT) ADMVAR#4.CATALOG = SECON (OUT) ADMVAR#4.ACCESS-MODE = ADMIN (OUT) ADMVAR#4.USERID = SQLDB112 (OUT) ADMVAR#4.STATE = ACTIVE (OUT) ADMVAR#4.INFORMATION = (OUT) ADMVAR#4.PHYSICAL-NAME = WIE.SEC (OUT) ADMVAR#4.COPY-NUMBER =
Der Inhalt der S-Variablen
ADMVAR
wird ausgegeben. Bei den Listenlementen wird statt(*LIST)
die Elementnummer an den Namen angehängt.
Bei Nutzung des Variablenstroms SYSINF lauten die entsprechenden Anweisungen:
/DECLARE-VARIABLE - / VARIABLE-NAME=ADMVAR(TYPE=*STRUCTURE(DEFINITION=*DYNAMIC)), - / MULTIPLE-ELEMENTS=*LIST /ASSIGN-STREAM STREAM-NAME=SYSINF,TO=*VARIABLE(VARIABLE-NAME=ADMVAR) 1. /START-SESAM-ADMINISTRATION //START-DBH-ADMINISTRATION PASSWORD=C'ADM',DBH-NAME=W //SHOW-SQL-DB-CATALOG-ENTRIES SELECT=*ALL,STRUCTURE-OUTPUT=*SYSINF 2. //START-DBH-ADMINISTRATION PASSWORD=C'ADM',DBH-NAME=V //SHOW-SQL-DB-CATALOG-ENTRIES SELECT=*ALL,STRUCTURE-OUTPUT=*SYSINF //END /SHOW-VARIABLE VAR-NAME=ADMVAR, - // INFORMATION=*PARAMETER(LIST-INDEX-NUMBER=*YES)
Das Kommando ASSIGN-STREAM weist einen S-Variablenstrom für strukturierte Ausgaben einem (Ausgabe-)Server zu, der die weitere Verarbeitung des Variablenstroms steuert. Die Ausgabe des Servers ist die S-Variable.
Die Ausgabe geht an den S-Variablenstron SYSINF und damit an die S-Variable.
Sonderfälle
Wenn keine Ausgabeinformation vorhanden ist, dann wird der Inhalt der betreffenden S-Variablen bei WRITE-MODE=*REPLACE
gelöscht, bei WRITE-MODE=*EXTEND
bleibt er unverändert..
Wenn eine Ausgabeinformation vorhanden ist, aber nicht in die S-Variable geschrieben werden kann, dann wird eine entsprechende Meldung (SEA7032
, SEA7033
) ausgegeben. Diese Meldungsnummern werden auch in der S-Variablen SESADM-RESULT vermerkt, siehe Abschnitt „Resultat der Administrationsanweisungen“.