1 | KMPDU3 ;OAK/RAK - CM Tools Utilities ;7/22/04 09:10
|
---|
2 | ;;2.0;CAPACITY MANAGEMENT TOOLS;**2**;Mar 22, 2002
|
---|
3 | ;
|
---|
4 | ERRDATA(KMPDY,KMPDIEN,KMPDGBL) ;-- error log data.
|
---|
5 | ;-----------------------------------------------------------------------
|
---|
6 | ; KMPDIEN. Ien in format 'multiple,ien'.
|
---|
7 | ; KMPDGBL... Global where data is stored.
|
---|
8 | ;-----------------------------------------------------------------------
|
---|
9 | ;
|
---|
10 | K KMPDY
|
---|
11 | ;
|
---|
12 | I $G(KMPDIEN)="" S @KMPDGBL@(0)="[IEN not defined]" Q
|
---|
13 | ;
|
---|
14 | I KMPDGBL="" S @KMPDGBL@(0)="[Global for storage is not defined]" Q
|
---|
15 | ;
|
---|
16 | N DATA,DATA1,I,IEN,IEN1,LN
|
---|
17 | ;
|
---|
18 | ; kill global with check for ^tmp or ^utility.
|
---|
19 | D KILL^KMPDU(.DATA,KMPDGBL)
|
---|
20 | ; if error.
|
---|
21 | I $E(DATA)="[" S @KMPDGBL@(0)=DATA Q
|
---|
22 | ;
|
---|
23 | S IEN1=$P(KMPDIEN,",")
|
---|
24 | I 'IEN1 S @KMPDGBL@(0)="[IEN1 not defined]" Q
|
---|
25 | S IEN=$P(KMPDIEN,",",2)
|
---|
26 | I 'IEN S @KMPDGBL@(0)="[IEN not defined]" Q
|
---|
27 | ;
|
---|
28 | S DATA=$G(^%ZTER(1,IEN,0))
|
---|
29 | I DATA="" S @KMPDGBL@(0)="[No data for "_KMPDIEN_"]" Q
|
---|
30 | ;
|
---|
31 | ; $h date in external format.
|
---|
32 | S @KMPDGBL@(0)=$$HTE^XLFDT(+DATA)
|
---|
33 | ; error text.
|
---|
34 | S @KMPDGBL@(1)=$G(^%ZTER(1,IEN,1,IEN1,"ZE"))
|
---|
35 | S @KMPDGBL@(2)="",LN=3
|
---|
36 | ; last global reference.
|
---|
37 | I $G(^%ZTER(1,IEN,1,IEN1,"GR"))'="" D
|
---|
38 | .S @KMPDGBL@(LN)="Last Global Reference: "_^("GR"),LN=LN+1
|
---|
39 | ; $h.
|
---|
40 | I $G(^%ZTER(1,IEN,1,IEN1,"H"))'="" D
|
---|
41 | .S @KMPDGBL@(LN)="$H: "_^("H"),LN=LN+1
|
---|
42 | S DATA=$G(^%ZTER(1,IEN,1,IEN1,"ECODE"))
|
---|
43 | ; $ecode
|
---|
44 | S @KMPDGBL@(LN)="$ECODE = "_$P(DATA,U),LN=LN+1
|
---|
45 | ; $stack
|
---|
46 | S @KMPDGBL@(LN)="$STACK = "_$P(DATA,U,2),LN=LN+1
|
---|
47 | ; $estack
|
---|
48 | S @KMPDGBL@(LN)="$ESTACK = "_$P(DATA,U,3),LN=LN+1
|
---|
49 | ; $quit
|
---|
50 | S @KMPDGBL@(LN)="$QUIT = "_$P(DATA,U,4),LN=LN+1
|
---|
51 | ; $stack multiple.
|
---|
52 | F I=0:0 S I=$O(^%ZTER(1,IEN,1,IEN1,"STACK",I)) Q:'I D
|
---|
53 | .Q:'$D(^%ZTER(1,IEN,1,IEN1,"STACK",I,0)) S DATA=^(0)
|
---|
54 | .S @KMPDGBL@(LN)=$P(DATA,U)_" = "_$P(DATA,U,2)
|
---|
55 | .S LN=LN+1
|
---|
56 | ; variables and data multiple #10.
|
---|
57 | F I=0:0 S I=$O(^%ZTER(1,IEN,1,IEN1,"ZV",I)) Q:'I D
|
---|
58 | .Q:'$D(^%ZTER(1,IEN,1,IEN1,"ZV",I,0)) S DATA=^(0),DATA1=$G(^("D"))
|
---|
59 | .Q:DATA=""
|
---|
60 | .S @KMPDGBL@(LN)=DATA_" = "_$E(DATA1,1,225)
|
---|
61 | .S LN=LN+1
|
---|
62 | ;
|
---|
63 | S KMPDY=$NA(@KMPDGBL)
|
---|
64 | S:'$D(@KMPDGBL) KMPDY="<No Data To Report>"
|
---|
65 | ;
|
---|
66 | Q
|
---|
67 | ;
|
---|
68 | ERRDATE(KMPDY,KMPDATE) ;-- get error log date or list all dates
|
---|
69 | ;-----------------------------------------------------------------------
|
---|
70 | ; KMPDATE... Date in internal fileman format, or "*" for a list of all
|
---|
71 | ; available dates.
|
---|
72 | ;
|
---|
73 | ; if one date
|
---|
74 | ; KMPDY(0)=ExternalDate^Ien^NumberOfErrors
|
---|
75 | ;
|
---|
76 | ; or a list of all available dates
|
---|
77 | ; KMPDY(0)=ExternalDate^Ien^NumberOfErrors
|
---|
78 | ; KMPDY(1)=ExternalDate^Ien^NumberOfErrors
|
---|
79 | ; KMPDY(2)=ExternalDate^Ien^NumberOfErrors
|
---|
80 | ; KMPDY(...)=...
|
---|
81 | ;-----------------------------------------------------------------------
|
---|
82 | ;
|
---|
83 | I $G(KMPDATE)="" S KMPDY(0)="[Date entry not defined]" Q
|
---|
84 | ;
|
---|
85 | I KMPDATE'="*" D Q
|
---|
86 | .; external date
|
---|
87 | .S $P(KMPDY(0),U)=$$FMTE^XLFDT(KMPDATE)
|
---|
88 | .; set to date portion of $h format
|
---|
89 | .S KMPDATE=+$$FMTH^XLFDT(KMPDATE)
|
---|
90 | .; ien
|
---|
91 | .S $P(KMPDY(0),U,2)=$O(^%ZTER(1,"B",KMPDATE,0))
|
---|
92 | .; number of errors
|
---|
93 | .S $P(KMPDY(0),U,3)=$P($G(^%ZTER(1,+$P(KMPDY(0),U,2),1,0)),U,3)
|
---|
94 | ;
|
---|
95 | ; if all entries requested
|
---|
96 | I KMPDATE="*" D Q
|
---|
97 | .N DATE,I,LN S (I,LN)=0
|
---|
98 | .F S I=$O(^%ZTER(1,"B",I)) Q:'I I $D(^%ZTER(1,I,0)) D
|
---|
99 | ..; external date
|
---|
100 | ..S $P(KMPDY(LN),U)=$$HTE^XLFDT(I)
|
---|
101 | ..; ien
|
---|
102 | ..S $P(KMPDY(LN),U,2)=I
|
---|
103 | ..; number of errors
|
---|
104 | ..S $P(KMPDY(LN),U,3)=$P($G(^%ZTER(1,I,1,0)),U,3)
|
---|
105 | ..S LN=LN+1
|
---|
106 | ;
|
---|
107 | Q
|
---|
108 | ;
|
---|
109 | ROUSAVE(KMPDRES,KMPDRNM,KMPDRCD) ;-- routine save
|
---|
110 | ;-----------------------------------------------------------------------
|
---|
111 | ; KMPDRNM... Routine name.
|
---|
112 | ; KMPDRCD... Array contianing routine code (or text).
|
---|
113 | ;-----------------------------------------------------------------------
|
---|
114 | ;
|
---|
115 | K KMPDRES
|
---|
116 | I $G(KMPDRNM)="" S KMPDRES(0)="[Routine Name not defined]" Q
|
---|
117 | I $L(KMPDRNM)>8 D Q
|
---|
118 | .S KMPDRES(0)="[Routine Name must not be greater than 8 characters]"
|
---|
119 | I '$D(KMPDRCD) D Q
|
---|
120 | .S KMPDRES(0)="[There is no Routine code (text) to save]"
|
---|
121 | ;
|
---|
122 | N DIE,GLOBAL,I,X,XCN
|
---|
123 | S GLOBAL=$NA(^TMP("KMPDU3-1",$J))
|
---|
124 | K @GLOBAL
|
---|
125 | S I=0
|
---|
126 | F S I=$O(KMPDRCD(I)) Q:'I S @GLOBAL@(I,0)=KMPDRCD(I)
|
---|
127 | S X=KMPDRNM,DIE="^TMP("_"""KMPDU3-1"""_","_$J_",",XCN=0
|
---|
128 | X ^%ZOSF("SAVE")
|
---|
129 | ;
|
---|
130 | S KMPDRES(0)="<Routine Saved>"
|
---|
131 | ;
|
---|
132 | Q
|
---|
133 | ;
|
---|
134 | ROUSTATS(KMPDRES,KMPDIENS) ;-- routine stats
|
---|
135 | ;-----------------------------------------------------------------------
|
---|
136 | ; KMPDIENS... Ien(s) for file #8972.1 (CAPMAN ROUTINE STATS). If more
|
---|
137 | ; than one Ien then each will be seperated by a comma.
|
---|
138 | ; Example: KMPDIENS="12,98,38,123"
|
---|
139 | ;
|
---|
140 | ; KMPDRES() Results up-arrow (^) delimited in format:
|
---|
141 | ; Piece 1 - Name..................(field .01)
|
---|
142 | ; Piece 4 - CPU Time..............(field #.04)
|
---|
143 | ; Piece 5 - DIO References........(field #.05)
|
---|
144 | ; Piece 6 - BIO References........(field #.06)
|
---|
145 | ; Piece 7 - Page Faults...........(field #.07)
|
---|
146 | ; Piece 8 - M commands/Lines......(field #.08)
|
---|
147 | ; Piece 9 - Global References.....(field #.09)
|
---|
148 | ; Piece 10 - Count.................(field #.1)
|
---|
149 | ; Piece 14 - Ave CPU Time..........(field #99.04 - computed)
|
---|
150 | ; Piece 15 - Ave DIO References....(field #99.05 - computed)
|
---|
151 | ; Piece 16 - Ave BIO References....(field #99.06 - computed)
|
---|
152 | ; Piece 17 - Ave Page Faults.......(field #99.07 - computed)
|
---|
153 | ; Piece 18 - Ave M Commands/Lines..(field #99.08 - computed)
|
---|
154 | ; Piece 19 - Ave Global References.(field #99.09 - computed)
|
---|
155 | ;-----------------------------------------------------------------------
|
---|
156 | ;
|
---|
157 | K KMPDRES
|
---|
158 | I $G(KMPDIENS)="" S KMPDRES(0)="[IEN data not defined]" Q
|
---|
159 | ;
|
---|
160 | N DATA,I,IEN,J,LN
|
---|
161 | ;
|
---|
162 | S IEN="",(I,LN)=0
|
---|
163 | F I=1:1 S IEN=$P(KMPDIENS,",",I) Q:'IEN D
|
---|
164 | .Q:'$D(^KMPD(8972.1,IEN,0)) S DATA=^(0)
|
---|
165 | .; put second piece (date/time entered) in external format
|
---|
166 | .S $P(DATA,U,2)=$$FMTE^XLFDT($P(DATA,U,2))
|
---|
167 | .S KMPDRES(LN)=DATA
|
---|
168 | .; computed fields
|
---|
169 | .F J=4:1:9 S $P(KMPDRES(LN),U,(J+10))=$$GET1^DIQ(8972.1,IEN,(99+(.01*J)))
|
---|
170 | .S LN=LN+1
|
---|
171 | ;
|
---|
172 | S:'$D(KMPDRES) KMPDRES(0)="<No Data to Report>"
|
---|
173 | ;
|
---|
174 | Q
|
---|