You can also create your own bespoke LISTF formats in MPEX. Once
'compiled' into the LISTF group in VESOFT you only need read/execute
access to the script. (Showproc needs OP and SM capabilities).
The one below simply adapted the basic LISTF and reports all files open
for write access by a particular session. I also have one that prompts
for a session number and only reports on those files open by that
session.
:print accessw.listf.vesoft
(* Modified version of ACCESS.LISTF.VESOFT ADS Nov 2003 *)
VAR NUMOPENERS: SHORTINT;
VAR OPENERPINS: ARRAY [1024] OF SHORTINT;
VAR OPENERFNUMS: ARRAY [1024] OF SHORTINT;
VAR I: INTEGER;
VAR RFILEUSER: TFILEUSER;
VAR ROPENFILE: TOPENFILE;
VAR LOCKSTATE: INTEGER;
VAR F: STRING[8];
VAR JOBTYPE: STRING[1];
VAR JOBNUM: INTEGER;
VAR MAXOPENPIN: INTEGER;
VAR TESTME: STRING[8];
SUBROUTINE CLEARF;
VAR FF: STRING[8];
BEGIN
FF:=F;
F:='';
SCOPY(FF)
END;
SUBROUTINE GETFMTACCESSMODE; RFILEUSER.FMTACCESSMODE;
(24/150) Continue?
SUBROUTINE GETCURRENTRECORD; RFILEUSER.CURRENTRECORD(RFILE);
SUBROUTINE GETFMTJOBNUM;
BEGIN
IF JOBNUM=0 THEN 7*' '
ELSE STRWRITE('#',JOBTYPE:1,JOBNUM:5:'LEFT')
END;
SUBROUTINE GETFMTLOGON;
BEGIN
TRY
STRWRITE(VEJOBINFO(JOBTYPE,JOBNUM).FMTLOGON:'DOWNSHIFT') +
(IF JOBTYPE='S' THEN ' (ldev '+VEJOBINFO(JOBTYPE,JOBNUM).LDEVIN+')'
ELSE '')
RECOVER
SEG (STRWRITE('(original opener inaccesssible)'))
END;
SUBROUTINE DOLOADED;
VAR WROTELOADED: BOOLEAN;
VAR LOADINFO: TLOADINFO;
BEGIN
(47/150) Continue?
IFVERSION5 THEN
IF LOADED THEN
SEG (BEGIN
WROTELOADED:=TRUE;
LOADINFO.TYPE:=255;
WHILE ISBOOLEAN (CALL LSTD'NEXT (@LOADINFO)) DO
IF (LOADINFO.UFID)[0]=(ISDOUBLEPTR(UFID))[0] THEN
IF LOADINFO.ISPROGRAM AND LOADINFO.PROGALLOCATED THEN
WRITELN (CLEARF:10,
IF LOADINFO.PROGAUTOALLOCATED THEN "AUTOALLOCATED"
ELSE "ALLOCATED")
ELSE IF LOADINFO.ISPROCESS THEN
BEGIN
JOBTYPE:=PINJOBTYPE(LOADINFO.PROCESSPIN);
JOBNUM:=PINJOBNUMBER(LOADINFO.PROCESSPIN);
WRITELN (CLEARF:10, "LOADED":10, GETFMTJOBNUM,
LOADINFO.PROCESSPIN:4:'LEFT',
IF JOBNUM=0 OR JOBTYPE='' THEN ''
ELSE GETFMTLOGON);
END
ELSE IF LOADINFO.ISSL THEN
WRITELN (CLEARF:10, "SL LOADED");
IF F<>'' THEN
(70/150) Continue?
WRITELN (CLEARF:10, "LOADED":10,"SYSTEM");
END);
END;
MPEXHEADER1:="FILENAME ---TYPE--- JOBNUM PIN ---------PROGRAM----"+
"----- ACCESS RECORD -LOCK-";
MPEXHEADER2:="";
MPEXHEADER3:="";
MAXOPENPIN:=1024;
FOR RFILE IN MPEXFILESETGENERAL (1, TRUE)
SELECT SEG (OPENED OR STORED OR RESTORED OR LOADED OR READING
OR STORESTAT<>0)
DO
BEGIN
F:=SCOPYFILE;
IFVERSION5 THEN
DOLOADED;
IF RESTORED OR RESTORING THEN
WRITELN (CLEARF:10, "BEING RESTORED")
ELSE IF STORED OR STORING THEN
WRITELN (CLEARF:10, "BEING STORED")
ELSE IF CBU THEN
(93/150) Continue?
WRITELN (CLEARF:10, "OPEN BY CONCURRENT-BACKUP");
NUMOPENERS:=0;
IF OPENED THEN
BEGIN
IFVERSION5 THEN
ROPENFILEREAD (RFILE, UFID, ROPENFILE);
TRY
CALL FOPENERS (@RFILE, (@RFILEUSER.GUFDPTR-@RFILEUSER)/2,
CALLDPARM(0), CALLDPARM(0),
@NUMOPENERS, @OPENERPINS, @OPENERFNUMS);
RECOVER;
IF NUMOPENERS=0 THEN
SEG (WRITELN (CLEARF:10, "OPENED":10,
"(accessor information unavailable)"));
(* Kludge: Would be better as a FOR loop, but then WRITELNs
within it wouldn't do the outer FOR loop's PAGEHEADs.
Too bad. EV 92/12/26. *)
I:=0;
WHILE I<MIN(NUMOPENERS,MAXOPENPIN) DO
BEGIN
RFILEUSERREAD (OPENERPINS[I], OPENERFNUMS[I], RFILEUSER);
IF OPENERPINS[I]=0 THEN
(116/150) Continue?
SEG (WRITELN (CLEARF:10,
"OPENED":10, "":7, "":4, "GLOBALLY":26,
GETFMTACCESSMODE:8, GETCURRENTRECORD:6))
ELSE
BEGIN
IFVERSIONXL THEN
LOCKSTATE:=-1
ELSE
LOCKSTATE:=SIGNEXTEND (CALL RIN'PIN'STATUS (ROPENFILE.RIN,
OPENERPINS[I]));
JOBTYPE:=PINJOBTYPE(OPENERPINS[I]);
JOBNUM:=PINJOBNUMBER(OPENERPINS[I]);
TESTME:=GETFMTACCESSMODE;
IF TESTME<>"INPUT" THEN
WRITELN (CLEARF:10, "OPENED":10, GETFMTJOBNUM,
OPENERPINS[I]:4:"LEFT",
PINPROGNAME(OPENERPINS[I]):26,
GETFMTACCESSMODE:8,
GETCURRENTRECORD:6, " ",
IF LOCKSTATE=-1 THEN ""
ELSE IF LOCKSTATE=0 THEN "LOCKER"
ELSE STRWRITE ("WAIT:", LOCKSTATE));
IF JOBNUM<>0 AND JOBTYPE<>'' AND TESTME <>"INPUT" THEN
(139/150) Continue?
WRITELN ("":32, GETFMTLOGON);
END;
I:=I+1;
END;
END
ELSE IF READING AND VALIDCOLDLOADID THEN
WRITELN (CLEARF:10, "SYSTEM PROTECTED");
IF NUMOPENERS > MAXOPENPIN THEN
SEG( WRITELN ( CLEARF:10,
"(Output truncated: Can't recover more than ",
MAXOPENPIN," accessors)"));
END;
Sample run of above
listf @.pub.compl,accessw
MPEX %LISTF @.pub.compl PAGE 1
SYSTEM SERIES e3000/N4000-400-75 ADS,PROG.DEVELOP,TONY TUE, DEC 14,
2004, 4
:20 PM
ACCOUNT= COMPL GROUP= PUB
FILENAME ---TYPE--- JOBNUM PIN ---------PROGRAM--------- ACCESS RECORD
-LOCK-
DFDB92A OPENED #S3683 565 PRUNXXA.PUB.SWIMS IN/OUT 2784
blb,prog.develop,blb (ldev 112)
OPENED #J2286 1774PRDM8.PUB.SWIMS IN/OUT 2784
stdmtsin,mgr.compl,pub
OPENED #J2286 1743PRDM9.PUB.SWIMS IN/OUT 2784
stdmtsin,mgr.compl,pub
OPENED #J2112 962 UXSERVER.NB.NETBASE IN/OUT 3005
netbase,mgr.netbase,pub
etc
-----Original Message-----
From: HP-3000 Systems Discussion [mailto:[log in to unmask]] On
Behalf Of [log in to unmask]
Sent: 14 December 2004 12:59
To: [log in to unmask]
Subject: [HP3000-L] what files does job X have opened?
Greetings
does anyone know of an easy way to find all files opened by a specific
session/job? Like a command in GLANCE, or do I really have to scan a
":listf @[log in to unmask]@, 8"?
tia
/per
--------------------------------------------------
Per Ostberg
tel 08-58581213 / fax 08-58587710 / mob 070-4840253 Lab-IT / Karolinska
Universitetssjukhuset, Huddinge
C1 56 / SE-141 86 HUDDINGE / SWEDEN
--------------------------------------------------
* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
The contents of this email are confidential to the intended recipient
and may not be disclosed. Although it is believed that this email and
any attachments are virus free, it is the responsibility of the recipient to confirm this.
Smith & Williamson Corporate Finance Limited - A member of M&A
International Inc. http://www.mergers.net Registered in England No.
4533970. Authorised and regulated by the Financial Services Authority
Smith & Williamson Investment Management Limited, Registered No. 976145. Authorised and regulated by the Financial Services Authority.
Smith & Williamson Pension Consultancy Limited - Independent
Intermediary. Registered No. 3133226. Authorised and regulated by the
Financial Services Authority.
Smith & Williamson Fund Administration Limited, Registered No. 1934644. Authorised and regulated by the Financial Services Authority.
Smith & Williamson Limited - A member of Nexia International.
Registered in England No. 4534022. Regulated by the Institute of
Chartered Accountants in England & Wales for a range of investment
business activities.
Registered Office: No 1 Riding House Street, London W1A 3AS
Telephone: 020 7637 5377 http://www.smith.williamson.co.uk
Nexia Audit Limited - A member of Nexia International. Registered in
England No. 4469576. Registered to carry on audit work and regulated by the Institute of Chartered Accountants in England & Wales for a range of investment business activities.
Registered Office: No 1 Riding House Street, London W1A 3AS
Telephone: 020 7637 5377 http://www.nexiaaudit.co.uk
NCL Investments Limited, Registered No. 1913794.
Member of the London Stock Exchange authorised and regulated by the Financial Services Authority.
Registered Office: Bartlett House, 9-12 Basinghall Street, London EC2V 5NS
Telephone: 020 7600 2801
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *
|