Product Documentation

FairCom ISAM for C

Previous Topic

Next Topic

User Snapshot Structure

Users may define up to 8 different timing baskets. A begin mark call establishes a high resolution starting time for the specified basket. An end mark call increments the specified basket counter, adds the elapsed time to the timing basket, and clears the starting time. Attempting to begin a mark that is not clear or end a mark that has not begun results in an error. The baskets are numbered from 0 to 7. Their results appear in the user snapshot structure in the smarkcnt and smarktim arrays.

User snapshots may include an optional function-timing array of ctWRKSTT structures as described in the Function Timing section below.

(Version 2 of ctgums SNAPSHOT structure)

typedef struct ctgums {

ULONG client_ver; /* client version of structure */

ULONG server_ver; /* server version of structure */

ULONG fixlen; /* length of fixed portion of snapshot */

ULONG varlen; /* length of variable region (if any) */

ULONG contents; /* bit map of var len contents */

ULONG unused; /* available for use */

LONG8 snapshottm; /* snapshot time stamp: seconds since 70*/

LONG8 strntsum; /* user trntime sum^ */

LONG8 strntmax; /* user trntime max^ */

LONG8 scthrtimbas; /* high res timer ticks per sec^ */

LONG8 avail8[9]; /* available for use */

LONG8 smarktim[8]; /* user mark elapsed times^ */

ULONG smarkcnt[8]; /* user mark counts */

ULONG slOWNR; /* thread handle (OWNER) */

ULONG sisolev; /* transaction isolation level */

ULONG sctops; /* set operation state bit mask */

ULONG sctstate; /* internal state bit mask */

ULONG sabnlog; /* begtran log for abandoned tran */

ULONG strntcnt; /* user trntime count */

ULONG sctutrbeg; /* user tran begin count */

ULONG sctutrend; /* user tran end count */

ULONG sctutrabt; /* user tran abort count */

ULONG snbrfile; /* number of files in use */

ULONG slogtime; /* logon time */

ULONG srqstime; /* last request time */

ULONG srqsfunc; /* last request function # */

ULONG srqssubf; /* last request sub-function # */

ULONG sactflag; /* active / inactive flag */

ULONG sct_trdflg; /* thread operation flag */

ULONG sabnflg; /* stage of abandon tran processing */

ULONG sctusrprf; /* user profile word */

ULONG sctumxfil; /* max files for user */

ULONG scthghfil; /* highest file number limit */

ULONG sloktry; /* total lock attempts */

ULONG slokhlk; /* header lock attempts */

ULONG slokblk; /* total lock wait count */

ULONG slokhbk; /* header lock wait count */

ULONG slokdlk; /* deadlocks */

ULONG slokdny; /* total locks denied */

ULONG slokfre; /* total locks freed */

ULONG slokrel; /* total blocks released */

ULONG slokcur; /* current count of locks held */

ULONG sblkcur; /* current count of blocked requests */

ULONG sctstat2; /* internal state bit mask 2 */

ULONG slokkil; /* killed: removed from lock wait list */

ULONG sipaddr; /* client IP address */

ULONG avail4[7];

UTEXT clflvr; /* user flavor */

UTEXT clalgn; /* user alignment */

UTEXT clpntr; /* user pointer size */

UTEXT sflvr; /* server byte order */

UTEXT salgn; /* server alignment */

UTEXT spntr; /* server pointer size */

UTEXT availt[26];

TEXT snodname[32]; /* node name */

TEXT sct_userid[32]; /* user id */

} ctGUMS, ctMEM * pctGUMS;

TOCIndex