Anmelden

View Full Version : Virtuelle Einheiten QPADEV....



GerdG
17-11-04, 11:14
Hallo zusammen,

gibt es eine einfache Möglichkeit, die vom System erstellten DEVD nach der Abmeldung, also quasi "nach Gebrauch" automatisch wieder zu löschen?

Gerd

Fuerchau
17-11-04, 12:04
Nein, mit Einführung von TCP/IP leider nicht mehr.
Auf der Leitungsbeschreibung gibt es den Eintrag AUTOCRTCTL für das Erstellen von Steuereinheiten und AUTODLTCTL für das Löschen. Dies funktioniert aber nur bei SNA !

Da hilft nichts als ein kleines CLP, dass alle QPADEV* abhängt (VRYCFG) und entfernt (beim IPL z.B.).

Pikachu
17-11-04, 12:25
Hallo Gerd !

Eventuell über ein Telnet-Ausgangsprogramm (WRKREGINF und Ausgangspunkt QIBM_QTG_DEVTERM). Vielleicht kann dort die Einheitenbeschreibung bereits abgehängt und gelöscht werden. Bin da aber nicht sicher.

Gruß
Jürgen

Fuerchau
17-11-04, 12:28
Das ständige Löschen und Neuerstellen ist allerdings aufwändig.
Warum verwendest du keine benannten Stationen ?
Automatische Stationen haben den Nachteil, dass ja jeder beliebige Sitzungen erstellen kann.

GerdG
17-11-04, 12:37
Hallo Jürgen,

das mit den Exit-Points ist ein guter Gedanke, denn werde ich mal weiterverfolgen.


Hallo Fürchau,

an die benannten Stations-PCs habe ich auch schon gedacht, aber da müsste man an allen PCs rumfummeln, und die sind in halb Europa verteilt.


Vielen Dank euch beiden

Gerd

GerdG
17-11-04, 15:25
Das mit den Exitpoint war ein guter Tip. Ein kleiner CL erledigt das jetzt.


Gerd

Brownie
01-12-04, 13:19
Hallo zusammen,

gibt es eine einfache Möglichkeit, die vom System erstellten DEVD nach der Abmeldung, also quasi "nach Gebrauch" automatisch wieder zu löschen?

Gerd

hallo gerdg,

von einem "befreundetem" forum geklaut.

Honeurs für gerdmmeier (autor):

*-----------------------------------------------------------------S*/
/* DV058C IKS.--.--.--- */
/*------------------------------------------------------------------*/
/*------------------------------------------------------------------*/
/* FUNCTION: Löschen virtueller Einheitenbeschreibungen */
/* -----------------------------------------------------------*/
/* INPUT : ./. */
/* SELECT : ./. */
/* PARMLIST: ./. */
/* OUTPUT : ./. */
/* SWITCH : ./. */
/* CALL <--: QCMD */
/* CALL -->: CMD DLTDEVD */
/* -----------------------------------------------------------*/
/* */
/* -----------------------------------------------------------*/
/*------------------------------------------------------------------*/
/* erstellt: 00.00.00 von: .......... V.00 PA: ..... */
/* geändert: 00.00.00 von: ......... V.01 PA: ..... */
/*-----------------------------------------------------------------E*/
/*--*/
PGM PARM(&OBJNAME)
/*--*/
/*------------------------------------------------------------------*/
/* DECL VARIABLE.. TYPE. LENGTH.... +VALUE.......... */
/*------------------------------------------------------------------*/
/*--*/
DCL VAR(&DEVD) TYPE(*CHAR) LEN(10)
DCL VAR(&OBJNAME) TYPE(*CHAR) LEN(10)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10) +
VALUE('QSYS ')
DCL VAR(&USRSPC1) TYPE(*CHAR) LEN(20) +
VALUE('QPAD QTEMP ')
DCL VAR(&JOBNR) TYPE(*CHAR) LEN(6)
DCL VAR(&OBJ) TYPE(*CHAR) LEN(20)
DCL VAR(&BIN4) TYPE(*CHAR) LEN(4)
DCL VAR(&ELEN) TYPE(*DEC) LEN(8 0)
DCL VAR(&ELENB) TYPE(*CHAR) LEN(4)
DCL VAR(&LOOP) TYPE(*DEC) LEN(8 0)
DCL VAR(&DEC8) TYPE(*DEC) LEN(8 0)
DCL VAR(&DATA) TYPE(*CHAR) LEN(128)
DCL VAR(&STATUS) TYPE(*DEC) LEN(5 0)
DCL VAR(&RDEVD) TYPE(*CHAR) LEN(892)
DCL VAR(&DEVDH) TYPE(*CHAR) LEN(4)
DCL VAR(&DEVDD) TYPE(*DEC) LEN(5 0) VALUE(892)
DCL VAR(&TYPE) TYPE(*CHAR) LEN(4)
/*--*/
/*------------------------------------------------------------------*/
/* Erstellen *USRSPC und Auflistung Objekte im System */
/*------------------------------------------------------------------*/
/* */
/* This creates the user space */
/* */
RTVJOBA NBR(&JOBNR)
CHGVAR VAR(%SST(&USRSPC1 5 6)) VALUE(&JOBNR)
CALL PGM(QUSCRTUS) PARM(&USRSPC1 'DLT_QPADE' 2048 +
' ' '*EXCLUDE' 'Benutzerbereich für +
Objektliste')
/* */
/* Einlesen aller Objektinformationen */
/* */
CHGVAR VAR(&OBJ) VALUE(&OBJNAME *CAT &LIB)
CALL PGM(QUSLOBJ) PARM(&USRSPC1 'OBJL0100' &OBJ +
'*DEVD' 0)
/* */
CHGVAR VAR(%BIN(&DEVDH)) VALUE(&DEVDD)
/* */
/* Feststellen, ob Objekte vorhanden sind, wenn nicht --> Abbruch */
/* */
CALL PGM(QUSRTVUS) PARM(&USRSPC1 X'00000085' +
X'00000004' &BIN4)
/* */
CHGVAR VAR(&LOOP) VALUE(%BIN(&BIN4))
/* */
IF COND(&LOOP = 0) THEN(SNDPGMMSG +
MSGID(CPF9898) MSGF(QCPFMSG) +
MSGDTA('Keine Einheiten in Bibliothek' +
*BCAT &LIB *BCAT 'vorhanden') +
MSGTYPE(*ESCAPE)) /* Kein Objekt +
ausgewählt */
/* */
/* */
/* Länge des Satzes in *USRSPC feststellen */
/* */
CALL PGM(QUSRTVUS) PARM(&USRSPC1 X'00000089' +
X'00000004' &ELENB)
CHGVAR VAR(&ELEN) VALUE(%BIN(&ELENB))
CALL PGM(QUSRTVUS) PARM(&USRSPC1 X'0000007D' +
X'00000004' &BIN4)
CHGVAR VAR(&DEC8) VALUE(%BIN(&BIN4))
CHGVAR VAR(&DEC8) VALUE(&DEC8 + 1)
/* */
/* This loops for the number of files until no more files are */
/* found and goes to the ALLDONE label. */
/* */
STARTLOOP: IF COND(&LOOP = 0) THEN(GOTO CMDLBL(ALLDONE))
/* */
/* Falls keine Einheiten gefunden wurde, weiter mit nächstem */
/* Satz */
/* */
/* */
CHGVAR VAR(%BIN(&BIN4)) VALUE(&DEC8)
CALL PGM(QUSRTVUS) PARM(&USRSPC1 &BIN4 &ELENB &DATA)
/* */
CHGVAR VAR(&DEVD) VALUE(%SST(&DATA 01 10))
/* */
RTVCFGSTS CFGD(&DEVD) CFGTYPE(*DEV) STSCDE(&STATUS)
/* */
IF COND(&STATUS ^< 30) THEN(GOTO CMDLBL(ENDLOOP))
/* */
CHGVAR VAR(&RDEVD) VALUE(' ')
CALL PGM(QDCRDEVD) PARM(&RDEVD &DEVDH 'DEVD0600' +
&DEVD X'00000000')
CHGVAR VAR(&TYPE) VALUE(%SST(&RDEVD 175 4))
IF COND(&TYPE = 'V100') THEN(GOTO +
CMDLBL(ENDLOOP))
/* */
VRYCFG CFGOBJ(&DEVD) CFGTYPE(*DEV) STATUS(*OFF) +
RANGE(*OBJ)
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ENDLOOP))
DLTDEVD DEVD(&DEVD)
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ENDLOOP))
/* */
ENDLOOP: CHGVAR VAR(&DEC8) VALUE(&DEC8 + &ELEN)
CHGVAR VAR(&LOOP) VALUE(&LOOP - 1)
GOTO CMDLBL(STARTLOOP)
/* */
ALLDONE: DLTUSRSPC USRSPC(%SST(&USRSPC1 11 10)/%SST(&USRSPC1 01 +
10))
MONMSG MSGID(CPF0000)
/*--*/
/*------------------------------------------------------------------*/
/* E N D E -ROUTINE */
/*------------------------------------------------------------------*/
/*--*/
NOOBJ: ENDPGM
/*------------------------------------------------------------------*/
:confused: