HP3000-L Archives

August 2000, Week 3

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Doug Becker <[log in to unmask]>
Reply To:
Doug Becker <[log in to unmask]>
Date:
Thu, 17 Aug 2000 07:31:00 -0700
Content-Type:
text/plain
Parts/Attachments:
text/plain (356 lines)
We have the same problem here. Shortly, I will be putting the following code on www.mind-set.com along with a lot of other utilities we use. Unfortunately, this is for use under Apache, but you can remove some of the formatting (cr lf):

000100$CONTROL USLINIT,BOUNDS,LOCKING,LINES=58
000200 IDENTIFICATION DIVISION.
000300 PROGRAM-ID. CSM506.
000400
000500*******************************************************
000600*
000700*     This program displays remote work stations
000800*           with more than one session logged on.
000900*
001000*     CSM506 is the version designed for the INTERNET
001100*
001200*******************************************************
001300
001400*     This program must be compiled using the COBOL 85
001500*     with the COBOLIIX UDC.
001600
001700 AUTHOR. D BECKER.
001800 DATE-WRITTEN. TUE, JAN 19, 1999.
001900 DATE-COMPILED.
002000
002100 ENVIRONMENT DIVISION.
002200 CONFIGURATION SECTION.
002300
002400 SOURCE-COMPUTER. HP-3000.
002500 OBJECT-COMPUTER. HP-3000.
002600
002700 SPECIAL-NAMES.
002800     CONDITION-CODE IS CC
002900     SYMBOLIC CHARACTERS NUL is 1, LF is 11, CR is 14.
003000
003100 INPUT-OUTPUT SECTION.
003200 FILE-CONTROL.
003300
003400     SELECT LISTAC ASSIGN TO "LISTF8"
003500         ORGANIZATION IS SEQUENTIAL.
003600
003700 DATA DIVISION.
003800 FILE SECTION.
003900
004000 FD  LISTAC.
004100 01  LISTAC-REC.
004200    5 LISTAC-SESSION     PIC X(8).
004300    5 LISTAC-USER        PIC X(27).
004400    5 LISTAC-SHARE       PIC X(21).
004500    5 LISTAC-REMI        PIC X(6).
004600    5 LISTAC-ADDR        PIC X(16).
004700    5 FILLER             PIC X(235).
004800
004900
005000 WORKING-STORAGE SECTION.
005100
005200 77 DUP-WS             PIC S9(4) COMP VALUE 0.
005300 77 DUP-SESSIONS       PIC S9(4) COMP VALUE 0.
005400
005500 77 SS-PTR1            PIC S9(4) COMP VALUE 0.
005600 77 SS-PTR2            PIC S9(4) COMP VALUE 0.
005700 77 SS-PTR3            PIC S9(4) COMP VALUE 0.
005800 77 SS-PTR4            PIC S9(4) COMP VALUE 0.
005900 77 SS-PTR5            PIC S9(4) COMP VALUE 0.
006000 77 SS-PTR6            PIC S9(4) COMP VALUE 0.
006100
006200 01 SSS-TABLE.
006300    5  SSS-OCCURS OCCURS 170 TIMES.
006400     6 SSS-KEY.
006500        7 SSS-KEYC     PIC X(16).
006600
006700    6 SSS-REST.
006800        7 SSS-RESTC.
006900            9 SSS-SESSION   PIC X(8).
007000            9 SSS-USER      PIC X(27).
007100
007200
007300 1 SORT-RECORD.
007400   5 SORT-KEY.
007500     7 SORT-KEYC     PIC X(8).
007600
007700   5 SORT-REST.
007800     7 SORT-RESTC    PIC X(72).
007900
008000
008100 77  SORT-IND              PIC X VALUE "0".
008200     88 SORT-END VALUE "9".
008300
008400 77  LISTAC-SW            PIC X  VALUE "0".
008500     88  LISTAC-EOF  VALUE "9".
008600
008700 77  PARM-SIZE           PIC S9(4) COMP VALUE 80.
008800 77  PARM-VALUE          PIC S9(4) COMP VALUE 0.
008900
009000 01  PARM-INFO.
009100     5  PARM-INFO72      PIC X(72) VALUE " ".
009200     5  FILLER           PIC X(8)  VALUE " ".
009300
009400 77  WHO-MODE            PIC S9(4) COMP VALUE 0.
009500 77  WHO-MODE1           PIC S9(4) COMP VALUE 0.
009600 77  WHO-USER            PIC X(8) VALUE " ".
009700 77  WHO-ACCOUNT         PIC X(8) VALUE " ".
009800 77  WHO-GROUP           PIC X(8) VALUE " ".
009900 77  INFO-LENGTH         PIC S9(4) COMP VALUE -80.
010000
010100 77  SUB                 PIC S9(4) COMP VALUE 0.
010200
010300 77  INFO-IN            PIC X VALUE " ".
010400     88  INFO-IN-OK VALUE " ".
010500
010600 77  DSPLY-ITM              PIC ----9.
010700
010800 77  DSPLY                  PIC ---,---,--9.
010900
011000 77  DSPLYS                 PIC ZZZZ-.
011100
011200
011300 1   INFO.
011400     5  INFO-X              PIC X VALUE " ".
011500     5  INFO-R              PIC X(79) VALUE " ".
011600
011700 77  CMD-ERROR           PIC S9(4) COMP VALUE 0.
011800 77  CMD-PARAM           PIC S9(4) COMP VALUE 0.
011900
012000 1   COMMAND-AREA.
012100     5  COMMANDA        PIC X(72) VALUE " ".012200     5  FILLER          PIC X     VALUE %15.
012300
012400 77  JSIND               PIC 9(4)  COMP VALUE 1.
012500 77  JSNUM               PIC S9(9) COMP VALUE 0.
012600
012700 01  JSSTATUS.
012800     5  JSSTATUS1        PIC S9(4) COMP VALUE 0.
012900     5  JSSTATUS2        PIC S9(4) COMP VALUE 0.
013000
013100 77  JSUSERID            PIC X(8) VALUE SPACES.
013200 77  JSACCOUNT           PIC X(8) VALUE SPACES.
013300 77  JSJOBNAME           PIC X(8) VALUE SPACES.
013400
013500 77  JSERR1              PIC S9(4) COMP VALUE 0.
013600 77  JSERR2              PIC S9(4) COMP VALUE 0.
013700
013800 77  JSERR3              PIC S9(4) COMP VALUE 0.
013900 77  JSERR4              PIC S9(4) COMP VALUE 0.
014000 77  JSERR5              PIC S9(4) COMP VALUE 0.
014100 77  JSERR6              PIC S9(4) COMP VALUE 0.
014200 77  JSERR7              PIC S9(4) COMP VALUE 0.
014300 77  JSERR8              PIC S9(4) COMP VALUE 0.
014400
014500 77  INPUT-LDEV          PIC X(9) VALUE SPACES.
014600 77  INTRO-DATE          PIC S9(4) COMP VALUE 0.
014700 77  INTRO-TIME          PIC S9(9) COMP VALUE 0.
014800 77  QUIET-MODE          PIC S9(4) COMP VALUE 0.
014900
015000 77  DISPLAY-NAME        PIC X(18) VALUE SPACES.
015100
015200
015300 77  DISPLAY-TIME        PIC X(28) VALUE " ".
015400 77  QUIET-DISPLAY       PIC X(6) VALUE " ".
015500
015600 1   SJW.
015700     3  SJW1.
015800        5  SJW-NUM          PIC 9(9).
015900        5  SJW-XO.
016000          7  SJW-X            PIC X.
016100          7  SJW-R1           PIC X(8).
016200     3  SJW2 REDEFINES SJW1.
016300        5  SJW-X2           PIC X.
016400        5  SJW-R3           PIC X(17).
016500
016600
016700
016800 PROCEDURE DIVISION.
016900 SECTION1 SECTION.
017000 STARTUP.
017100     CALL INTRINSIC "GETINFO" USING PARM-INFO, PARM-SIZE,
017200                                   PARM-VALUE.
017300
017400     CALL INTRINSIC "WHO" USING WHO-MODE \\ \\
017500        WHO-USER, WHO-GROUP, WHO-ACCOUNT.
017600
017700     DIVIDE 4 INTO WHO-MODE.
017800
017900*     DISPLAY "Content-Type: text/html" CR LF CR LF.
018000     DISPLAY "<PRE>".
018100
018200*     DISPLAY "  CSM506: Version 1.0 Compiled " WHEN-COMPILED.
018300     DISPLAY "  CSM506: "
018400        "Display of Multiple Sessions on a workstation." CR LF.
018500     DISPLAY " " CR LF.
018600     MOVE "LISTFILE CI.PUB.SYS,8 > LISTF8" TO COMMANDA.
018700     PERFORM DO-COMMAND.
018800
018900     OPEN INPUT LISTAC.
019000
019100     PERFORM PROCESS-FILES UNTIL LISTAC-EOF.
019200
019300     CLOSE LISTAC.
019400
019500     MOVE "PURGE LISTF8,TEMP" TO COMMANDA.
019600     PERFORM DO-COMMAND.
019700
019800     IF SS-PTR1 > 1
019900        PERFORM SORT-START
020000        MOVE 0 TO SS-PTR2
020100        PERFORM DISPLAY-STATIONS.
020200
020300*     DISPLAY " -- CSM506 COMPLETED.".
020400
020500     IF DUP-WS > 1
020600        MOVE SS-PTR1 TO DSPLYS
020700        DISPLAY DSPLYS "Total Sessions;" CR LF
020800        MOVE DUP-SESSIONS TO DSPLYS
020900        DISPLAY DSPLYS "Duplicate Sessions on"
021000        MOVE DUP-WS TO DSPLYS
021100        DISPLAY DSPLYS "Workstations." CR LF.
021200
021300     DISPLAY "-- End of List" CR LF.
021400     DISPLAY "</PRE>" CR LF.
021500
021600     STOP RUN.
021700
021800 DISPLAY-STATIONS.
021900     ADD 1 TO SS-PTR2.
022000     COMPUTE SS-PTR3 = SS-PTR2 + 1.
022100
022200     PERFORM DISPLAY-STATIONS1 UNTIL SS-PTR3 > SS-PTR1.
022300
022400 DISPLAY-STATIONS1.
022500     IF SSS-KEYC (SS-PTR2) NOT = SSS-KEYC (SS-PTR3)
022600         ADD 1 TO SS-PTR2
022700         ADD 1 TO SS-PTR3
022800       ELSE
022900         ADD 1 TO DUP-WS
023000         MOVE SS-PTR2 TO SS-PTR4
023100         PERFORM DISPLAY-STATIONS2
023200         MOVE SS-PTR3 TO SS-PTR4
023300         PERFORM DISPLAY-STATIONS2
023400         MOVE SS-PTR3 TO SS-PTR2
023500         ADD 1 TO SS-PTR3
023600         PERFORM DISPLAY-STATIONS3 UNTIL SS-PTR3 > SS-PTR1
023700            OR
023800                SSS-KEYC (SS-PTR2) NOT = SSS-KEYC (SS-PTR3)
023900         DISPLAY " " CR LF.
024000
024100 DISPLAY-STATIONS2.
024200
024300    MOVE SSS-SESSION (SS-PTR4) TO SJW-XO.
024400
024500    IF SJW-X = "#"
024600        MOVE SJW-R1 TO SJW-XO
024700        IF SJW-X = "S"
024800        MOVE SJW-R1 TO SJW-XO
024900            PERFORM GET-JOBINFO.
025000
025100     MOVE SSS-USER (SS-PTR4) TO DISPLAY-NAME.
025200
025300     DISPLAY SSS-KEYC (SS-PTR4)
025400             SSS-SESSION (SS-PTR4)
025500             DISPLAY-NAME
025600             QUIET-DISPLAY
025700             INPUT-LDEV
025800
025900             DISPLAY-TIME CR LF.
026000
026100    ADD 1 TO DUP-SESSIONS.
026200
026300 GET-JOBINFO.
026400    MOVE 0 TO SJW-NUM.
026500    MOVE SPACES TO QUIET-DISPLAY.
026600    MOVE 0 TO INTRO-TIME.
026700    MOVE SPACES TO INPUT-LDEV.
026800    MOVE SPACES TO DISPLAY-TIME.
026900
027000    PERFORM JUST-JOBINFO UNTIL SJW-X > "9" OR < "0".
027100    MOVE SJW-NUM TO JSNUM.
027200
027300     CALL INTRINSIC "JOBINFO" USING
027400         JSIND, JSNUM, JSSTATUS,
027500         7, INTRO-TIME, JSERR4
027600         8, INTRO-DATE, JSERR5
027700         9, INPUT-LDEV, JSERR6
027800         40, QUIET-MODE, JSERR7.
027900
028000
028100    CALL INTRINSIC "FMTDATE" USING
028200        INTRO-DATE, INTRO-TIME, DISPLAY-TIME.
028300
028400    IF QUIET-MODE = 1 MOVE "QUIET" TO QUIET-DISPLAY.
028500
028600 JUST-JOBINFO.
028700     MOVE SJW-R3 TO SJW2.
028800
028900 DISPLAY-STATIONS3.
029000     MOVE SS-PTR3 TO SS-PTR4.
029100     PERFORM DISPLAY-STATIONS2.
029200     ADD 1 TO SS-PTR2.
029300     ADD 1 TO SS-PTR3.
029400
029500 PROCESS-FILES.
029600     MOVE SPACES TO LISTAC-REC.
029700     READ LISTAC AT END SET LISTAC-EOF TO TRUE.
029800     IF NOT LISTAC-EOF PERFORM PROCESS-FILES1.
029900
030000 PROCESS-FILES1.
030100     IF LISTAC-REMI = "REM : "
030200       ADD 1 TO SS-PTR1
030300       MOVE LISTAC-ADDR TO SSS-KEYC (SS-PTR1),
030400       MOVE LISTAC-SESSION TO SSS-SESSION (SS-PTR1),
030500       MOVE LISTAC-USER TO SSS-USER (SS-PTR1).
030600
030700 DO-COMMAND.
030800     CALL INTRINSIC "HPCICOMMAND" USING
030900           COMMAND-AREA, CMD-ERROR, CMD-PARAM.
031000
031100     IF CC NOT = 0
031200           MOVE CMD-ERROR TO DSPLY-ITM
031300           DISPLAY " * COMMAND ERROR " DSPLY-ITM " FOR "
031400           DISPLAY COMMANDA
031500           MOVE CMD-PARAM TO DSPLY-ITM
031600           DISPLAY DSPLY-ITM " = PARAM.".
031700
031800 SORT-START.
031900    MOVE SS-PTR1 TO SS-PTR3.
032000    MOVE 1 TO SS-PTR2.
032100
032200    PERFORM SORT-X1 UNTIL SS-PTR3 NOT > SS-PTR2.
032300
032400 SORT-X1.
032500    IF SSS-KEY (SS-PTR2) > SSS-KEY (SS-PTR3)
032600         MOVE SSS-OCCURS (SS-PTR3) TO SORT-RECORD
032700         MOVE SSS-OCCURS (SS-PTR2) TO SSS-OCCURS (SS-PTR3)
032800         MOVE SORT-RECORD TO SSS-OCCURS (SS-PTR2).
032900
033000    MOVE SS-PTR2 TO SS-PTR4.
033100
033200    COMPUTE SS-PTR5 = (SS-PTR3 - SS-PTR2) - 1.
033300
033400    IF SS-PTR5 > 0
033500       PERFORM SORT-X2 SS-PTR5 TIMES.
033600
033700    ADD 1 TO SS-PTR2.
033800    SUBTRACT 1 FROM SS-PTR3.
033900
034000 SORT-X2.
034100    ADD 1 TO SS-PTR4.
034200
034300    IF SSS-KEY (SS-PTR4) > SSS-KEY (SS-PTR3)
034400        MOVE SSS-OCCURS (SS-PTR3) TO SORT-RECORD
034500        MOVE SSS-OCCURS (SS-PTR4) TO SSS-OCCURS (SS-PTR3)
034600        MOVE SORT-RECORD TO SSS-OCCURS (SS-PTR4)
034700      ELSE
034800    IF SSS-KEY (SS-PTR4) < SSS-KEY (SS-PTR2)
034900        MOVE SSS-OCCURS (SS-PTR2) TO SORT-RECORD
035000        MOVE SSS-OCCURS (SS-PTR4) TO SSS-OCCURS (SS-PTR2)
035100        MOVE SORT-RECORD TO SSS-OCCURS (SS-PTR4).

>>> Damian Sobieralski <[log in to unmask]> 08/16 7:51 AM >>>
  I've got a question about finding users who are logged in via reflections or telnet.  We are having upper limit license issues with people being logged in with multiple sessions.  By using nettool status tcpstat conntable    I can get a most excellent list of connected IP addresses.  However, I would like to associate these connections with a ldev so I can map who is logged in from where as whom.  We have none of the third party tool that many brag about so I was wondering if there was an MPE vanilla way of doing this?  Even if I had to hand visit and mark each page.... well... the point is, this seems like a fundamental system admin thing thereby I default to ignorance and hope the wise ones may direct me  :)

ATOM RSS1 RSS2