Back-to-Basics: Where (R83 style)

Mutli-value Solutions - Nov '97

Nathan Rector

Natec Systems

nater@northcoast.com

http://www.northcoast.com/~nater/

 

The WHERE statement is a good tool to use to track the use of your system, or to find problems ports when your system starts to slow to a halt. Last month we covered the Advanced Pick style WHERE statement, this month the R83 style WHERE statement is covered. If you missed last month's article, it is available for download from the Web site http:\\www.northcoast.com\~nater\Solutions.html

The WHERE statement shows the activity on each port currently logged on and what the port is currently doing. With this tool you can keep your users from sitting at TCL or doing things in the debugger. Although, the R83 style WHERE statement needs translation to understand it's output, it has the same capacities as the Advanced Pick style.

There are 2 pieces of information to keep a close watch on: the PIB status, which tells the user what the current status of the port is, and the 'Return stack content', which tells the users what abs frames are currently running.

The PIB status column (third column) will tell you if the port is at the system debugger, or how it is currently responding too.

The 'Return Stack Content' (fifth through eighth columns) is the most useful when trying to find the port that is causing the system to slow. It displays the current frames that are processing on each ports.

PIB Status (first 2 digits):

7B or FB - The process is currently outputing information.

7D or 6D - the process is currently recieving information

5F - the process is currently waiting for disk I/O

7F or FF - the process is active or ready to be active.

3F or BF - the process is sleeping

PIB Status (Last 2 digits):

30 - Normal operation

B0 - in process of logging on.

Frame definitions:

1 - System Debugger

2, 5 - TCL

6 - Terminal I/O

7 - Disk I/O

13-16 - Editor

33,34 - Overflow Handling

35,36 - Tape I/O

40 - Logon

41-46 - PROC

48 - Group Locks

53-70 - ACCESS compiler

70-120 - ACCESS List

121 - WHERE

127 - Overflow table

165-183 - Spooler

190-199 - BASIC compiler

200-220 - File Save

220-260 - BASIC runtime

300-400 - Usually JET

Port to display:

user-id = Output ports that are currently logged on under this user id

"Account" = output port that are currently logged onto this account

port#{-port#} = output all ports that meet this range of ports

options:

h = suppress the heading

l = display status for each 'pushed' level

n = no pause on screen output. This keeps the output from pausing at the end of the page requiring the user to press RETURN to continue.

p = send output to printer

z = Display all ports logged on or off. If it is used with a specific

:where

-1- -2- -3- -4- -5- -6- -7- -8-

*000 0320 FF30 228.5FD

001 0340 BF30 170.219 170.097

003 0380 7DB0 1.20D 9.2B5 71.57C 72.107