The ZSHOW command displays information about the current GT.M environment.
The format of the ZSHOW command is:
ZSH[OW][:tvexpr][expr[:glvn][,...]]
When the destination for the ZSHOW "V" output is a global variable, the %ZSHOWVTOLCL utility program can be used to restore data from that global variable into its original local variables. For more information refer to a?? %ZSHOWVTOLCLa??.
An indirection operator and an expression atom evaluating to a list of one or more ZSHOW arguments form a legal argument for a ZSHOW.
Code | Description |
---|---|
* | is the wildcard code which is same as ZSHOW "IVBDLGRC"; all excluding codes "A", "S", and "T". |
A | the code "A" stands for Autorelink and provides output in the same format as MUPIP RCTLDUMP, but restricted to the routines contained in the relinkctl areas in use by the process issuing the command. ZSHOW "*" does not include ZSHOW "A" because of an expectation that the typical volume of the information does not provide a good return for its value. If you wish your error handling or INTRPT routines to dump this information, ask for it explicitly, possibly by doing a ZSHOW "A" into a local variable before doing a ZSHOW "*". |
B | displays active ZBREAK breakpoints and their associated actions |
C | provides the list of loaded external call packages and their routines. ZSHOW "C" does not report packages that are accessible but have not been accessed by the process. |
D | displays information on currently OPEN devices; it tends to display information on device states that differ from the default |
G | displays the access statistics for global variables and access to database file since process startup. When the process does not have access to the current shared statistics, ZSHOW "G" returns a question-mark (?) at the end of the output strings. |
I | displays the current values of all intrinsic special variables |
L | displays GT.M LOCKs and ZALLOCATEs held by the process |
R | displays the GT.M invocation stack and a hash based on the MurmurHash3 algorithm of M source code for each routine on the stack. |
S | displays the GT.M invocation stack - like R, but without the hash |
T | displays the cross-region summary (total) lines associated with G and L codes. Lines associated with G end with a question-mark (?) when the process does not have access to the current shared statistics. |
V | displays local and alias variables that are active in the current context |
AFRA: # of waits for instance freeze to release critical sections BREA: # of waits for block read & decryption BTD : # of database Block Transitions to Dirty BTS : # of times a dirty buffer was flushed so a BT could be reused BUS : # of times db_csh_get could not determine whether a block was in cache or not CAT : Critical section Total Acquisitions successes CFE : Critical section Failed (blocked) acquisition total caused by Epochs CFS : Square of CFT CFT : Critical section Failed (blocked) acquisition Total CQS* : Critical section acquisition Queued sleeps sum of Squares CQT* : Critical section acquisition Queued sleeps Total CTN : Current Transaction Number of the database for the last committed read-write transaction (TP and non-TP) CYS* : Critical section acquisition processor Yields sum of Squares CYT* : Critical section acquisition processor Yields Total DEX : # of Database file EXtentions DEXA: # of waits for database extension DFL : # of Database FLushes of the entire set of dirty global buffers in shared memory to disk DFS : # of times a process does an fsync of the database file. For example: a) after writing an epoch journal record, b) as part of database file extension c) during database rundown d) as part of mupip reorg -truncate etc. DRD : # of Disk ReaDs from the database file (TP and non-TP, committed and rolled-back).This does not include reads that are satisfied by buffered globals for databases that use the BG (Buffered Global) access method. DTA : # of DaTA operations (TP and non-TP) DWT : # of Disk WriTes to the database file (TP and non-TP, committed and rolled-back). This does not include writes that are satisfied by buffered globals for databases that use the BG (Buffered Global) access method. GT.M always reports 0 for databases that use the MM (memory-mapped) access method as this has no real meaning in that mode. GET : # of GET operations (TP and non-TP) GLB : # of waits for bg access critical section IDXH: # of index block cache hits IDXM: # of index block cache misses INC : # of $INCREMENT operations. The $INCREMENT function also increases the SET counter. JBB : # of Journal Buffer Bytes updated in shared memory JEX : # of Journal file EXtentions JFB : # of Journal File Bytes written to the journal file on disk. For performance reasons, GT.M always aligns the beginning of these writes to file system block size boundaries. JFB counts all bytes including those needed for alignment in order to reflect the actual IO load on the journal file. Since the bytes required to achieve alignment may have already been counted as part of the previous JFB, processes may write the same bytes more than once, causing the JFB counter to typically be higher than JBB. JFL : # of Journal FLushes of all dirty journal buffers in shared memory to disk. For example: when switching journal files etc. JFS : # of Journal FSync operations on the journal file. For example: when writing an epoch record, switching a journal file etc. JFW : # of Journal File Write system calls JNL : # of waits for journal access critical section JOPA: # of waits for journal open critical section JRE : # of Journal Regular Epoch records written to the journal file (only seen in a -detail journal extract); these are written every time an epoch-interval boundary is crossed while processing updates JRI : # of JouRnal Idle epoch journal records written to the journal file (only seen in a -detail journal extract); these are written when a burst of updates is followed by an idle period, around 5 seconds of no updates after the database flush timer has flushed all dirty global buffers to the database file on disk JRL : # of Journal Records with a Logical record type (e.g. SET, KILL etc.) written to the journal file JRO : # of Journal Records with a type Other than logical written to the journal file (e.g. AIMG, EPOCH, PBLK, PFIN, PINI, and so on) JRP : # of Journal Records with a Physical record type (i.e. PBLK, AIMG) written to the journal file (these records are seen only in a -detail journal extract) KIL : # of KILl operations (kill as well as zwithdraw, TP and non-TP) KTG : # of of invoked KILL triggers LKF : # of LocK calls (mapped to this db) that Failed LKS : # of LocK calls (mapped to this db) that Succeeded MLBA: # of waits for blocked LOCK MLK : # of waits for LOCK access NBR : # of Non-tp committed transaction induced Block Reads on this database NBW : # of Non-tp committed transaction induced Block Writes on this database NR0 : # of Non-tp transaction Restarts at try 0 NR1 : # of Non-tp transaction Restarts at try 1 NR2 : # of Non-tp transaction Restarts at try 2 NR3 : # of Non-tp transaction Restarts at try 3 NTR : # of Non-tp committed Transactions that were Read-only on this database NTW : # of Non-tp committed Transactions that were read-Write on this database ORD : # of $ORDer(,1) (forward) operations (TP and non-TP); the count of $Order(,-1) operations are reported under ZPR. PRC : # of waits on exit PRG : # of pre-read globals that were performed by the reader helper QRY : # of $QueRY() operations (TP and non-TP) SET : # of SET operations (TP and non-TP) STG : # of invoked SET triggers TBR : # of Tp transaction induced Block Reads on this database TBW : # of Tp transaction induced Block Writes on this database TC0 : # of Tp transaction Conflicts at try 0 (counted only for that region which caused the TP transaction restart) TC1 : # of Tp transaction Conflicts at try 1 (counted only for that region which caused the TP transaction restart) TC2 : # of Tp transaction Conflicts at try 2 (counted only for that region which caused the TP transaction restart) TC3 : # of Tp transaction Conflicts at try 3 (counted only for that region which caused the TP transaction restart) TC4 : # of Tp transaction Conflicts at try 4 and above (counted only for that region which caused the TP transaction restart) TR0 : # of Tp transaction Restarts at try 0 (counted for all regions participating in restarting TP transaction) TR1 : # of Tp transaction Restarts at try 1 (counted for all regions participating in restarting TP transaction) TR2 : # of Tp transaction Restarts at try 2 (counted for all regions participating in restarting TP transaction) TR3 : # of Tp transaction Restarts at try 3 (counted for all regions participating in restarting TP transaction) TR4 : # of Tp transaction Restarts at try 4 and above (restart counted for all regions participating in restarting TP transaction) TRB : # of Tp read-only or read-write transactions Rolled Back (excluding incremental rollbacks) TRGA: # of mini-transaction completion TRX : # of waits for transaction in progress TTR : # of Tp committed Transactions that were Read-only on this database TTW : # of Tp committed Transactions that were read-Write on this database WFL : # of database flushes that were performed by the writer helpers WFR : # of times a process slept while waiting for another process to read in a database block WHE : # of writer helper epochs WRL : # of times a process consistently slept(longer than WFR) while waiting for another process to read in a database block ZAD : # of waits for region freeze off ZPR : # of $order(,-1) or $ZPRevious() (reverse order) operations (TP and non-TP). The count of $Order(,1) operations are reported under ORD. ZTG : # of of invoked ZTRIGGERs ZTR : # of ZTRigger command operations [NT]B[WR] mnemonics are satisfied by either disk access or, for databases that use the BG (buffered global) access method, global buffers in shared memory. GT.M maintains the counters of the mnemonics marked with a * on AIX. On Linux, GT.M does not currently increment the counters of these mnemonics but retains them in the ZSHOW output for backward compatibility.
![]() | Note |
---|---|
The use of comma-separated pieces for ZSHOW "G" allows for future releases of GT.M to provide additional data while facilitating upward compatibility of application code. Since FIS reserves the right to change the order in which statistics are reported in future versions of GT.M, application programs should use the names (mnemonics) when picking pieces from the string instead of relying on field position or ordering. |
GT.M increment MLT (M Locks Timeout) by 1 for every failed (timeout) attempt to LOCK a resource.
In UTF-8 mode, the ZSHOW command exhibits byte-oriented and display-oriented behavior as follows:
GTM>ZSHOW "db"
GTM>ZSHOW "dbd"
This command displays the same output as the previous example.
GTM>ZSHOW "ax"
This command generates a run-time error.
LAB1 DO LAB2 Quit LAB2 Do LAB3 Quit LAB3 ZSHow Quit
LAB3^RTN LAB2^RTN LAB1^RTN
GTM>ZSHOW "G"
For process that has access to two database files produces results like the following:
GLD:*,REG:*,SET:205,KIL:0,GET:1,DTA:0,ORD:0,ZPR:0,QRY:0,LKS:0,LKF:0,CTN:0,DRD:9,DWT:15, NTW:203,NTR:4,NBW:212,NBR:414,NR0:0,NR1:0,NR2:0,NR3:0,TTW:1,TTR:0,TRB:0,TBW:2,TBR:6, TR0:0,TR1:0,TR2:0,TR3:0,TR4:0,TC0:0,TC1:0,TC2:0,TC3:0,TC4:0,ZTR:0,DFL:0,DFS:0,JFL:0,JFS:0,JBB:0,JFB:0,JFW:0,JRL:0,JRP:0, JRE:0,JRI:0,JRO:0,JEX:0,DEX:0,CAT:4,CFE:0,CFS:0,CFT:0,CQS:0,CQT:0,CYS:0,CYT:0,BTD:0,WFR:0,BUS:0,BTS:0,STG:0,KTG:0,ZTG:0, DEXA:0,GLB:0,JNL:0,MLK:0,PRC:0,TRX:0,ZAD:0,JOPA:0,AFRA:0,BREA:0,MLBA:0,TRGA:0,WRL:0,PRG:0,WFL:0,WHE:0,INC:0 GLD:/home/gtmuser1/.fis-gtm/V5.4-002B_x86/g/mumps.gld,REG:DEFAULT,SET:205,KIL:0,GET:1, DTA:0,ORD:0,ZPR:0,QRY:0,LKS:0,LKF:0,CTN:411,DRD:9,DWT:15,NTW:2 03,NTR:4,NBW:212,NBR:414,NR0:0,NR1:0,NR2:0,NR3:0,TTW:1,TTR:0,TRB:0,TBW:2,TBR:6,TR0:0, TR1:0,TR2:0,TR3:0,TR4:0,TC0:0,TC1:0,TC2:0,TC3:0,TC4:0 GLD:/tmp/tst/test.gld,REG:DEFAULT,SET:205,KIL:0,GET:1,DTA:0,ORD:0,ZPR:0,QRY:0,LKS:0,LKF:0, CTN:411,DRD:9,DWT:15,NTW:203,NTR:4,NBW:212,NBR:414,NR0:0,NR1:0,NR2:0,NR3:0,TTW:1,TTR:0,TRB:0, TBW:2,TBR:6,TR0:0,TR1:0,TR2:0,TR3:0,TR4:0,TC0:0,TC1:0,TC2:0,TC3:0,TC4:0,ZTR:0,DFL:0,DFS:0,JFL:0,JFS:0,JBB:0,JFB:0,JFW:0, JRL:0,JRP:0,JRE:0,JRI:0,JRO:0,JEX:0,DEX:0,CAT:4,CFE:0,CFS:0,CFT:0,CQS:0,CQT:0,CYS:0,CYT:0,BTD:0,WFR:0,BUS:0,BTS:0,STG:0, KTG:0,ZTG:0,DEXA:0,GLB:0,JNL:0,MLK:0,PRC:0,TRX:0,ZAD:0,JOPA:0,AFRA:0,BREA:0,MLBA:0,TRGA:0,WRL:0,PRG:0,WFL:0,WHE:0,INC:0
GTM>ZSHOW "G"
GLD:*,REG:*,SET:0,KIL:0,GET:0,DTA:0,ORD:0,ZPR:0,QRY:0,LKS:0,LKF:0,CTN:0,DRD:0,DWT:0,NTW:0, NTR:0,NBW:0,NBR:0,NR0:0,NR1:0,NR2:0,NR3:0,TTW:0,TTR:0,TRB:0, TBW:0,TBR:0,TR0:0,TR1:0,TR2:0,TR3:0,TR4:0,TC0:0,TC1:0,TC2:0,TC3:0,TC4:0 GLD:/tmp/x1.gld,REG:REG1,SET:0,KIL:0,GET:0,DTA:0,ORD:0,ZPR:0,QRY:0,LKS:0,LKF:0,CTN:0,DRD:0, DWT:0,NTW:0,NTR:0,NBW:0,NBR:0,NR0:0,NR1:0,NR2:0,NR3:0,TTW:0, TTR:0,TRB:0,TBW:0,TBR:0,TR0:0,TR1:0,TR2:0,TR3:0,TR4:0,TC0:0,TC1:0,TC2:0,TC3:0,TC4:0,ZTR:0,DFL:0,DFS:0,JFL:0,JFS:0,JBB:0, JFB:0,JFW:0,JRL:0,JRP:0,JRE:0,JRI:0,JRO:0,JEX:0,DEX:0,CAT:4,CFE:0,CFS:0,CFT:0,CQS:0,CQT:0,CYS:0,CYT:0,BTD:0,WFR:0,BUS:0, BTS:0,STG:0,KTG:0,ZTG:0,DEXA:0,GLB:0,JNL:0,MLK:0,PRC:0,TRX:0,ZAD:0,JOPA:0,AFRA:0,BREA:0,MLBA:0,TRGA:0,WRL:0,PRG:0,WFL:0, WHE:0,INC:0 GLD:/tmp/x1.gld,REG:REG2,SET:0,KIL:0,GET:0,DTA:0,ORD:0,ZPR:0,QRY:0,LKS:0,LKF:0,CTN:0,DRD:0, DWT:0,NTW:0,NTR:0,NBW:0,NBR:0,NR0:0,NR1:0,NR2:0,NR3:0,TTW:0, TTR:0,TRB:0,TBW:0,TBR:0,TR0:0,TR1:0,TR2:0,TR3:0,TR4:0,TC0:0,TC1:0,TC2:0,TC3:0,TC4:0,ZTR:0,DFL:0,DFS:0,JFL:0,JFS:0,JBB:0, JFB:0,JFW:0,JRL:0,JRP:0,JRE:0,JRI:0,JRO:0,JEX:0,DEX:0,CAT:4,CFE:0,CFS:0,CFT:0,CQS:0,CQT:0,CYS:0,CYT:0,BTD:0,WFR:0,BUS:0, BTS:0,STG:0,KTG:0,ZTG:0,DEXA:0,GLB:0,JNL:0,MLK:0,PRC:0,TRX:0,ZAD:0,JOPA:0,AFRA:0,BREA:0,MLBA:0,TRGA:0,WRL:0,PRG:0,WFL:0, WHE:0,INC:0
GTM>ZSHOW "G":zgbl
This example redirects the output of ZSHOW "G" into a local variable zgbl:
zgbl("G",0)="GLD:*,REG:*,SET:0,KIL:0,GET:0,DTA:0,ORD:0, ZPR:0,QRY:0,LKS:0,LKF:0,CTN:0,DRD:0,DWT:0,NTW:0,NTR:0,NBW:0,NBR:0,NR0:0,NR1:0,NR2:0,NR3:0,TTW:0, TTR:0,TRB:0,TBW:0,TBR:0,TR0:0,TR1:0,TR2:0,TR3:0,TR4:0,TC0:0,TC1:0,TC2:0,TC3:0,TC4:0,ZTR:0,DFL:0,DFS:0,JFL:0,JFS:0,JBB:0, JFB:0,JFW:0,JRL:0,JRP:0,JRE:0,JRI:0,JRO:0,JEX:0,DEX:0,CAT:4,CFE:0,CFS:0,CFT:0,CQS:0,CQT:0,CYS:0,CYT:0,BTD:0,WFR:0,BUS:0, BTS:0,STG:0,KTG:0,ZTG:0,DEXA:0,GLB:0,JNL:0,MLK:0,PRC:0,TRX:0,ZAD:0,JOPA:0,AFRA:0,BREA:0,MLBA:0,TRGA:0,WRL:0,PRG:0,WFL:0, WHE:0,INC:0" zgbl("G",1)="GLD:/tmp/x1.gld,REG:REG1,SET:0,KIL:0,GET:0,DTA:0,ORD:0,ZPR:0,QRY:0, LKS:0,LKF:0,CTN:0,DRD:0,DWT:0,NTW:0,NTR:0,NBW:0,NBR:0,NR0:0,NR1:0,NR2:0, NR3:0,TTW:0,TTR:0,TRB:0,TBW:0,TBR:0,TR0:0,TR1:0,TR2:0,TR3:0,TR4:0,TC0:0,TC1:0,TC2:0,TC3:0,TC4:0,ZTR:0,DFL:0,DFS:0,JFL:0, JFS:0,JBB:0,JFB:0,JFW:0,JRL:0,JRP:0,JRE:0,JRI:0,JRO:0,JEX:0,DEX:0,CAT:4,CFE:0,CFS:0,CFT:0,CQS:0,CQT:0,CYS:0,CYT:0,BTD:0, WFR:0,BUS:0,BTS:0,STG:0,KTG:0,ZTG:0,DEXA:0,GLB:0,JNL:0,MLK:0,PRC:0,TRX:0,ZAD:0,JOPA:0,AFRA:0,BREA:0,MLBA:0,TRGA:0,WRL:0, PRG:0,WFL:0,WHE:0,INC:0" zgbl("G",2)="GLD:/tmp/x1.gld,REG:REG2,SET:0,KIL:0,GET:0,DTA:0,ORD:0,ZPR:0,QRY:0,LKS:0, LKF:0,CTN:0,DRD:0,DWT:0,NTW:0,NTR:0,NBW:0,NBR:0,NR0:0,NR1:0,NR2:0, NR3:0,TTW:0,TTR:0,TRB:0,TBW:0,TBR:0,TR0:0,TR1:0,TR2:0,TR3:0,TR4:0,TC0:0,TC1:0,TC2:0,TC3:0,TC4:0,ZTR:0,DFL:0,DFS:0,JFL:0, JFS:0,JBB:0,JFB:0,JFW:0,JRL:0,JRP:0,JRE:0,JRI:0,JRO:0,JEX:0,DEX:0,CAT:4,CFE:0,CFS:0,CFT:0,CQS:0,CQT:0,CYS:0,CYT:0,BTD:0, WFR:0,BUS:0,BTS:0,STG:0,KTG:0,ZTG:0,DEXA:0,GLB:0,JNL:0,MLK:0,PRC:0,TRX:0,ZAD:0,JOPA:0,AFRA:0,BREA:0,MLBA:0,TRGA:0,WRL:0, PRG:0,WFL:0,WHE:0,INC:0"
GTM>LOCK ^FAIL:10 GTM>lock (^SUCCESS1,^SUCCESS2) GTM>zshow "L" MLG:1,MLT:1 LOCK ^SUCCESS1 LEVEL=1 LOCK ^SUCCESS2 LEVEL=1
var("L",0)="MLG:1,MLT:1" var("L",1)="LOCK ^SUCCESS1 LEVEL=1" var("L",2)="LOCK ^SUCCESS2 LEVEL=1"
GTM>ZSHOW "L":var GTM>ZWRITE var var("L",0)="MLG:1,MLT:1" var("L",1)="LOCK ^SUCCESS1 LEVEL=1" var("L",2)="LOCK ^SUCCESS2 LEVEL=1"
This example shows how ZSHOW "L" redirects it output into a local variable var.
GTM>ZSHOW "I" $DEVICE="" $ECODE="" $ESTACK=0 $ETRAP="" $HOROLOG="64813,13850" $IO="/dev/pts/0" $JOB=20264 $KEY="" $PRINCIPAL="/dev/pts/0" $QUIT=0 $REFERENCE="" $STACK=0 $STORAGE=2147483647 $SYSTEM="47,gtm_sysid" $TEST=1 $TLEVEL=0 $TRESTART=0 $X=0 $Y=20 $ZA=0 $ZALLOCSTOR=671584 $ZAUDIT=0 $ZB="" $ZCHSET="M" $ZCLOSE=0 $ZCMDLINE="" $ZCOMPILE="" $ZCSTATUS=0 $ZDATEFORM=0 $ZDIRECTORY="/path/to/the/current/directory" $ZEDITOR=0 $ZEOF=0 $ZERROR="Unprocessed $ZERROR, see $ZSTATUS" $ZGBLDIR="/path/to/the/global/directory/$gtmgbldir.gld" $ZHOROLOG="64813,13850,790453,14400" $ZICUVER="" $ZININTERRUPT=0 $ZINTERRUPT="IF $ZJOBEXAM()" $ZIO="/dev/pts/0" $ZJOB=0 $ZKEY="" $ZLEVEL=1 $ZMAXTPTIME=0 $ZMODE="INTERACTIVE" $ZONLNRLBK=0 $ZPATNUMERIC="M" $ZPIN="/dev/pts/0" $ZPOSITION="+1^GTM$DMOD" $ZPOUT="/dev/pts/0" $ZPROMPT="GTM>" $ZQUIT=0 $ZREALSTOR=694280 $ZRELDATE="20180614 00:33" $ZROUTINES=". /usr/lib/fis-gtm/V6.3-007_x86_64 /usr/lib/fis-gtm/V6.3-007_x86_64/plugin/o(/usr/lib/fis-gtm/V6.3-007_x86_64/plugin/r)" $ZSOURCE="" $ZSTATUS="" $ZSTEP="B" $ZSTRPLLIM=0 $ZSYSTEM=0 $ZTIMEOUT=-1 $ZTDATA=0 $ZTDELIM="" $ZTEXIT="" $ZTLEVEL=0 $ZTNAME="" $ZTOLDVAL="" $ZTRAP="B" $ZTRIGGEROP="" $ZTSLATE="" $ZTUPDATE="" $ZTVALUE="" $ZTWORMHOLE="" $ZUSEDSTOR=666047 $ZUT=1528962650791332 $ZVERSION="GT.M V6.3-007 Linux x86_64" $ZYERROR=""
This example displays the current value of all intrinsic special variables.
GTM>Kill Set b(1,"two")="test" ZSHow "v":a ZWRite a("V",1)="b(1,""two"")=""test""" b(1,"two")="test" GTM>
GTM>KILL SET a(1,"D",3,5)="stuff",a(1,"X",2)="",a(1)=1 GTM>ZSHow "d":a(1) GTM>ZWRite a(1)=1 a(1,"D",1)="/dev/pts/1 OPEN TERMINAL NOPAST NOESCA NOREADS TYPE WIDTH=80 LENG=24 EDIT " a(1,"X",2)="" GTM>
GTM>KILL ^ZSHOW GTM>ZB -*,lab^rout ZSH "B":^ZSHOW GTM>ZWRite ^ZSHOW ^ZSHOW("B",1)="LAB^ROUT" GTM>
This ZSHOW stores the current ZBREAK information under the global variable ^ZSHOW.
To minimize confusing data interactions, limit instances of directing ZSHOW output into variables holding other kinds of information and directing ZSHOW "V" output into local variables. For a comparison of ZSHOW "V" and ZWRITE, refer to a??ZWRitea??.