Hello John, How about if they are accmulating CPU Seconds... I have a customer with the same problems as you are reporting. Here is what we learned. There is atleast one version of MPE iX 5.5 which will create "UNAVAILABLE" ldevs when using VT that will not go away until you abortio against the ldev. This went away when we upgraded to Powerpatch 5. They needed a way to abort users who were idle for a period of time, so we created a script that polled the computer ever x seconds, issued a showproc, accumulated the seconds, and aborted anyone idle for for y period of time. It also uses a file to identify users that are never aborted. Here are the scripts needed: These are a series of scripts we use for a variety of uses so their are probably more efficient ways to do this, but it did not require additional programs. Main Script EMSIDLE loops every 300 seconds, if someone is idle for 2700 seconds they are aborted :print emsidle PARM INTERVAL=300,MAXTIME=2700 DELETEVAR EMSJB@ SETVAR EMSDONE 0 WHILE EMSDONE = 0 SHOWPROC JOB=@S >EMSIDLEF EMSRECTL :,8 <EMSIDLEF SHOWVAR EMSJB@_NEW >EMSIDLEF SHOWJOB JOB=@S EMSRECCK !INTERVAL,!MAXTIME <EMSIDLEF ECHO PAUSE !INTERVAL PAUSE !INTERVAL ENDWHILE This script accumulates data from the SHOPROC command and stores the info in session variables. :print emsrectl PARM VAL,COL SETVAR EMSRECCNT 0 SETVAR CIERROR 0 CONTINUE INPUT EMSREC >$NULL WHILE CIERROR=0 DO IF (LEN(EMSREC) > !COL+LEN("!VAL")) THEN IF ("!VAL"=STR ('!EMSREC',!COL,LEN("!VAL"))) THEN SETVAR EMSRECCNT EMSRECCNT+1 SETVAR EMSSESS RTRIM("EMSJB_![STR (EMSREC,24,6)]") IF NOT BOUND (![EMSSESS]_OLD) THEN SETVAR ![EMSSESS]_OLD 0 SETVAR ![EMSSESS]_TIME 0 ENDIF IF NOT BOUND (![EMSSESS]_NEW) THEN SETVAR ![EMSSESS]_NEW 0 ENDIF SETVAR ![EMSSESS]_NEW ![EMSSESS]_NEW + & ![STR(EMSREC,9,2)]![STR(EMSREC,12,3)] ENDIF ENDIF SETVAR EMSREC " " CONTINUE INPUT EMSREC >$NULL ENDWHILE DELETEVAR EMSREC This script checks the session variables and a searchs a file called EMSXLIST.CMT.SYS for DO NOT ABORT exceptions in the format sessname,user.acct It then aborts the sessions and displays messages as to what it did. :print emsrecck PARM INTERVAL=600,MAXTIME=2700 SETVAR CIERROR 0 CONTINUE INPUT EMSREC >$NULL WHILE CIERROR=0 DO SETVAR EMSSESS "![STR (EMSREC,1,POS("=",EMSREC)-6)]" IF ![EMSSESS+"_NEW"] <> ![EMSSESS+"_OLD"] THEN SETVAR ![EMSSESS]_OLD ![EMSSESS]_NEW SETVAR ![EMSSESS]_TIME 0 ELSE SETVAR ![EMSSESS]_TIME ![EMSSESS]_TIME + !INTERVAL ENDIF DELETEVAR ![EMSSESS]_NEW IF ![EMSSESS]_TIME > !MAXTIME THEN SHOWJOB ![STR (EMSSESS,POS("_",EMSSESS)+1,6)] >EMSTMP1 EMSRECFD #,1,EMSNAME,46,30 <EMSTMP1 EMSRECFD "!EMSNAME",1,EMSNAME,1,30 <EMSXLIST.CMT.SYS IF EMSNAME="NOTFOUND" ECHO ABORTJOB ![STR (EMSSESS,POS("_",EMSSESS)+1,6)] TELLOP Idle Job Aborted ![STR (EMSSESS,POS("_",EMSSESS)+1,6)] CONTINUE ABORTJOB #![STR (EMSSESS,POS("_",EMSSESS)+1,6)] ELSE ECHO NO ABORT FOR ![STR (EMSSESS,POS("_",EMSSESS)+1,6)] EMSNAME ENDIF ENDIF SETVAR EMSREC " " SETJCW CIERROR = 0 CONTINUE INPUT EMSREC >$NULL ENDWHILE DELETEVAR EMSREC DELETEVAR EMSNAME This script searchs a file for matching values. :print emsrecfd PARM VAL,COL,VAR,COL1,LEN SETVAR CIERROR 0 CONTINUE INPUT EMSREC >$NULL WHILE (CIERROR=0) AND ("!VAL"<>"![STR ("!EMSREC",!COL,LEN("!VAL"))]") DO SETVAR EMSREC " " CONTINUE INPUT EMSREC >$NULL ENDWHILE IF (CIERROR=0) THEN SETVAR !VAR "![STR ("!EMSREC",!COL1,!LEN)]" ELSE SETVAR !VAR "NOTFOUND" ENDIF DELETEVAR EMSREC : I hope this helps. As the old saying goes, "MPE scripts? I got a million of them!" Rgds Mel Rees On Wed, 12 Apr 2000 04:54:53 -0400, John Dunlop <[log in to unmask]> wrote: >Very many thank yous to all who contributed to this thread, particularly >Mike Hornsby, Jeff Vance, David Gale, Chris Bartram, Ed Stouder and >Roger Smith among others. > >Roger Smith contributed a document from HP which is also mainly included >in the FAQ at www.3k.com. > >So...if I understand correctly, the console doesn't count, TCP/IP >sessions don't count, DSCOPY and FTP sessions don't count and SAMBA >mappings don't count. However, sessions that have pressed return and may >be at the password prompt do count. > >Also, this thread has evolved a nifty command file courtesy of Ed >Stouder and Jeff Vance, which will be very handy. > >However, I received no information on how to tell when a session last >did some IO. I guess it's not possible from the CI. > >Thanks again. > >Cheers, > >John Dunlop > >E-mail : [log in to unmask] "If at first you don't succeed... >Web : http://www.hp3000links.com Don't take up sky-diving !" >"All your HP3000 resources on the Net" >