.ad 8
.bm 8
.fm 4
.bt $Copyright (c) 1995-2004 SAP AG$$Page %$
.tm 12
.hm 6
.hs 3
.tt 1 $SQL$Project Distributed Database System$vni00wc$
.tt 2 $$$
.tt 3 $$$1995-08-01$
***********************************************************
.nf

.nf


    ========== licence begin  GPL
    Copyright (c) 1995-2004 SAP AG

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation; either version 2
    of the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    ========== licence end

.fo


.fo
.nf
.sp
Module  :
=========
.sp
Purpose : x_wizard, x_wizbit global structures etc.
.CM *-END-* purpose -------------------------------------
.sp
.cp 3
Define  :

.CM *-END-* define --------------------------------------
.sp;.cp 3
Use     :

.CM *-END-* use -----------------------------------------
.sp;.cp 3
Synonym :

.CM *-END-* synonym -------------------------------------
.sp;.cp 3
Author  : 
.sp
.cp 3
Created : 1995-08-01
.sp
.cp 3
\Version : 1995-08-01
.sp
.cp 3
\Release :      Date :
.sp
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Specification:

.CM *-END-* specification -------------------------------
.sp 2
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Description:

.CM *-END-* description ---------------------------------
.sp 2
***********************************************************
.sp
.cp 10
.nf
.oc _/1
Structure:

.CM *-END-* structure -----------------------------------
.sp 2
**********************************************************
.sp
.cp 10
.nf
.oc _/1
.CM -lll-
Code    :
/*PRETTY*/

#ifdef DEBUG
#define DBG(x,y)	fprintf ( stderr , x , y ) ;
#else
#define DBG(x,y)	;
#endif

#include <stdio.h>

static char	WizVersion [20] = "1.5" ;

FILE	*f ;
FILE	*fo ;
FILE	*fbin ;

/*
#define PRINT(x)		{ fo = stdout ; fprintf x ; prblm++ ; \
fflush ( fo ) ; 		      \
if ( fout ) 			      \
{				      \
fo=f;			      \
fprintf x ;		      \
fflush ( fo ) 	;	      \
}				      \
}
*/

#define M	m[2].

#define M_DATA_CACHE		99.0
#define M_CONVERTER_CACHE	98.0
#define M_CATALOG_CACHE		85.0
#define PHYS_READ_CMD		10.0
#define PHYS_WRITE_CMD		10.0
#define PHYS_TEMP_WRITE_CMD	2.0
#define VIRT_READ_CMD		150.0
#define VIRT_WRITE_CMD		50.0
#define ROWS_READ_ROWS_QUAL	10.0 
#define LOCK_COLL_RATE		10.0
#define LONG_TRANSACTION 	200

#define SELF_SUSP_CMD		0.1
#define RCV_RPL_LONG_CMD	0.04
#define VSLEEP_CNT		0.1

#define TM_LOG_PAGE_WRITES      30 
#define TM_PHYSICAL_WRITES	10 
#define TM_PHYSICAL_READS	20

#define M_VWAIT			2.0
#define M_VSUSPEND		0.2
#define M_RCV_RPL		0.1
#define M_AVG_DEV_IO_TIME       0.05

char	dbname [20] ;
int	prblm ;
int	silent ;
int	fout ;
char	filename [100] ;
int	DTime ;
int	NumberOfDatadevs ;
int	WriteBinaryFile ;
long	WTime ;
int	Rel611  ;
int	Rel7   ;

/* SHOW MONITOR ALL */

/* PTS 1006976 */
struct MonS {
    long DataCacheAccesses;
    long DataCacheAccessesSuccessful;
    long DataCacheAccessesUnsuccessful;
    long DataCacheHitRate;
    long FileDirectoryCacheAccesses;
    long FileDirectoryCacheAccessesSuccessful;
    long FileDirectoryCacheAccessesUnsuccessf;
    long FileDirectoryCacheHitRate;
    long FbmCacheAccesses;
    long FbmCacheAccessesSuccessful;
    long FbmCacheAccessesUnsuccessful;
    long FbmCacheHitRate;
    long ConverterCacheAccesses;
    long ConverterCacheAccessesSuccessful;
    long ConverterCacheAccessesUnsuccessful;
    long ConverterCacheHitRate;
    long UsmCacheAccesses;
    long UsmCacheAccessesSuccessful;
    long UsmCacheAccessesUnsuccessful;
    long UsmCacheHitRate;
    long LogCacheAccesses;
    long LogCacheAccessesSuccessful;
    long LogCacheAccessesUnsuccessful;
    long LogCacheHitRate;
    long CatalogCacheAccesses;
    long CatalogCacheAccessesSuccessful;
    long CatalogCacheAccessesUnsuccessful;
    long CatalogCacheHitRate;
    long TempCacheAccesses;
    long TempCacheAccessesSuccessful;
    long TempCacheAccessesUnsuccessful;
    long TempCacheHitRate;
    long SqlCommands;
    long Prepares;
    long Executes;
    long Commits;
    long Rollbacks;
    long LocksAndUnlocks;
    long SubtransBegins;
    long SubtransEnds;
    long SubtransRollbacks;
    long Creates;
    long Alters;
    long Drops;
    long SelectsAndFetches;
    long SelectsAndFetchesRowsRead;
    long SelectsAndFetchesRowsQual;
    long Inserts;
    long InsertsRowsInserted;
    long Updates;
    long UpdatesRowsRead;
    long UpdatesRowsUpdated;
    long Deletes;
    long DeletesRowsRead;
    long DeletesRowsDeleted;
    long Shows;
    long DbprocCalls;
    long TriggerCalls;
    long PrimaryKeyAccesses;
    long PrimaryKeyAccessesRowsRead;
    long PrimaryKeyAccessesRowsQual;
    long PrimaryKeyRangeAccesses;
    long PrimaryKeyRangeAccessesRowsRead;
    long PrimaryKeyRangeAccessesRowsQual;
    long IndexAccesses;
    long IndexAccessesRowsRead;
    long IndexAccessesRowsQual;
    long IndexRangeAccesses;
    long IndexRangeAccessesRowsRead;
    long IndexRangeAccessesRowsQual;
    long IsolatedIndexAccesses;
    long IsolatedIndexAccessesRowsRead;
    long IsolatedIndexAccessesRowsQual;
    long IsolatedIndexRangeAccesses;
    long IsolatedIndexRangeAccessesRowsRead;
    long IsolatedIndexRangeAccessesRowsQual;
    long TableScans;
    long TableScansRowsRead;
    long TableScansRowsQual;
    long IsolatedIndexScans;
    long IsolatedIndexScansRowsRead;
    long IsolatedIndexScansRowsQual;
    long MemorySortsSortMerge;
    long MemorySortsSortMergeRowsRead;
    long SortsByInsertion;
    long SortsByInsertionRowsInserted;
    long LockListAvgUsedEntries;
    long LockListMaxUsedEntries;
    long LockListCollisions;
    long LockListEscalations;
    long LockListInsertedRowEntries;
    long LockListInsertedTableEntries;
    long LogPagePhysicalReads;
    long LogPagePhysicalWrites;
    long LogQueuePages;
    long LogQueueMaxUsedPages;
    long LogQueueInserts;
    long LogQueueOverflows;
    long LogQueueGroupCommits;
    long LogQueueWaitsForLogPageWrite;
    long LogQueueMaxWaitsPerLogPage;
    long LogQueueAvgWaitsPerLogPage;
    long VirtualReads;
    long VirtualWrites;
    long PhysicalReads;
    long PhysicalWrites;
    long CatalogVirtualRead;
    long CatalogVirtualWrites;
    long CatalogPhysicalReads;
    long CatalogPhysicalWrites;
    long FbmPagePhysicalReads;
    long FbmPagePhysicalWrites;
    long ConverterPagePhysicalReads;
    long ConverterPagePhysicalWrites;
    long UsmPagePhysicalReads;
    long UsmPagePhysicalWrites;
    long PermPageVirtualReads;
    long PermPageVirtualWrites;
    long PermPagePhysicalReads;
    long PermPagePhysicalWrites;
    long TempPageVirtualReads;
    long TempPageVirtualWrites;
    long TempPagePhysicalReads;
    long TempPagePhysicalWrites;
    long LeafPageVirtualReads;
    long LeafPageVirtualWrites;
    long LeafPagePhysicalReads;
    long LeafPagePhysicalWrites;
    long Level1PageVirtualReads;
    long Level1PageVirtualWrites;
    long Level1PagePhysicalReads;
    long Level1PagePhysicalWrites;
    long Level2PageVirtualReads;
    long Level2PageVirtualWrites;
    long Level2PagePhysicalReads;
    long Level2PagePhysicalWrites;
    long Level3PageVirtualReads;
    long Level3PageVirtualWrites;
    long Level3PagePhysicalReads;
    long Level3PagePhysicalWrites;
    long BdAddRecordPerm;
    long BdAddRecordTemp;
    long BdReplRecordPerm;
    long BdReplRecordTemp;
    long BdDelRecordPerm;
    long BdDelRecordTemp;
    long BdGetRecordPerm;
    long BdGetRecordTemp;
    long BdNextRecordPerm;
    long BdNextRecordTemp;
    long BdPrevRecordPerm;
    long BdPrevRecordTemp;
    long BdSelectDirectRecord;
    long BdSelectNextRecord;
    long BdSelectPrevRecord;
    long BdAddToIndexListPerm;
    long BdAddToIndexListTemp;
    long BdDelFromIndexListPerm;
    long BdDelFromIndexListTemp;
    long BdGetIndexListPerm;
    long BdGetIndexListTemp;
    long DistributionMessagesReceived;
    long DistributionMessagesSent;
    long DistributionMessagesDelayed;
    long DistributionServerJobs;
    long DistributionMessageDescrCacheOverflw;
    long DistributionMessageCacheOverflows;
    long WriteTransactions;
    long KbCalls;
    long TraceIOOperations;
    long TraceIOOperationsLocked;
    long RefreshCommands;
    long RefreshCommandsViaSnapshotLog;
} ;

struct MonS m [3] ;

struct MonS *MonData ;
/* x_cons sh tot */

struct XconsAllS {
    float total_disp_calls    ;               
    float total_commands      ;
    float total_state_vwait   ;                   
    float total_state_vsuspend;
    float total_state_vsleep  ;
    float total_prio          ;                   
    float total_prio_from_oth ;
    float total_prio_com_queue;                  
    float total_prio_rav_queue;
    float total_prio_commit ;
    float mod_own_com_queue   ;                   
    float mod_other_com_queue ;
    float total_self_io       ;                 
    float total_dev_io        ;
    float total_reg_access    ;              
    float begexcl_tas_coll   ;
    float total_reg_collision ;                 
    float endexcl_tas_coll   ;
    float total_reg_wait      ;
} ;

struct XconsAllS	t_c_t [3] ;    

/* x_cons sh region */

#define MAX_REGS	600 

struct RegS {
    char RegName  [20]  ;
    int  GetCnt ;
    int  TasCnt ;
    int  Collisions ;
    int  Waits ;
    int  Exclusive ;
    float CollProz ;
} ;

struct RegS  	r [3][MAX_REGS] ;

#define R_BACKUP	0
#define R_BUFWRTR	1	
#define R_DATAWRTR	2	
#define R_CONFIG	3	
#define R_CONVERT	4	
#define R_DATACACH	5	
#define R_DCOM  	6	
#define R_DIAGCACH	7	
#define R_DRDA		8	
#define R_FBM		9	
#define R_HASHINIT	10
#define R_INTO_QUE	11
#define R_GARBAGE	12
#define R_LOCKINIT	13	
#define R_LOCKPOOL	14
#define R_LOCKREQ	15
#define R_LOCKWAIT	16	
#define R_LOG		17
#define R_LOGWRITE	18
#define R_MONITOR	19
#define R_SERVER	20
#define R_CNSTVIEW	21
#define R_FURTHER1	22
#define R_HISTORY	23
/*#define R_OBJLOGWR	24*/
#define R_OUT_QUEU	24
#define R_PERMFDIR	25
#define R_REQ_PNO	26
#define R_SPROC	    27
#define R_SURROGAT	28
#define R_TEMPFDIR  29
#define R_TRACE		30
/*#define R_SAVE1		31*/
/* PTS 1106977 */
#define R_OMSn		31
#define R_SAVEn		32
#define R_TREEn		33
#define R_SPLITTn	34
#define R_DATAn		35
#define R_TRANSn	36
#define R_TABn		37
#define R_ROWn		38

struct RegSW {
    int  GetCnt ;
    int  TasCnt ;
    int  Collisions ;
    int  Waits ;
    int  Exclusive ;
    float CollProz ;
} ;

struct RegSW RegionData [R_ROWn+1];

/* x_cons sh t_c */

extern char TaskKinds [10][20] ;

/*
static char TaskKinds [10][20] = { "Timer" , "Logwr1" , 
"Logwr2" , "Bufwr" , "Bufrd" ,
"Sender" , "Receiv" , "Utility" , 
"Server" , "User" } ;
*/

#define T_TIMER		0 
#define T_LOGWR1	1 
#define T_LOGWR2	2 
#define T_BUFWR		3 
#define T_BUFRD		4 
#define T_SENDER	5 
#define T_RECEIV	6 
#define T_UTILITY	7 
#define T_SERVER	8 
#define T_USER		9 

struct t_c_s 
{
    float   dispatcher_cnt;                                  
    float   command_cnt;
    float   total_excl_cnt;                                
    float   self_susp_cnt;
    float   dev_io_cnt;                                     
    float   avg_dev_io_tm;
    float   self_io_cnt;                                     
    float   avg_self_io_tm;
    float   dev_io_readcnt;                                     
    float   avg_dev_io_readtm;
    float   self_io_readcnt;                                     
    float   avg_self_io_readtm;
    float   dev_io_writecnt;                                     
    float   dev_pg_writecnt;                                     
    float   avg_dev_io_writetm;
    float   self_io_writecnt;                                     
    float   self_pg_writecnt;                                     
    float   avg_self_io_writetm;
    float   state_vsleep ;
    float   avg_vsleep_time ;
    float   state_vwait;                                     
    float   avg_vwait_time;
    float   state_vsusp;                                    
    float   avg_vsusp_time;
    float   rcv_rpl_count;       
    float   rcv_rpl_long;         
    float   avg_rcv_rpl_t;
    float   rpl_rcv_count;                                  
    float   avg_rpl_rcv_t;
    float   prio_total;                                     
    float   prio_from_oth;
    float   prio_com_cnt;        
    float   prio_commit ;
    float   mod_own_com;          
    float   mod_other_com ;
} ;

struct t_c_s  t_c [4][11];
struct t_c_s  *TaskData ;
#define O_DATA_CACHE_ACCESSES			     844
#define O_DATA_CACHE_ACCESSES_SUCCESSFUL             844
#define O_CATALOG_CACHE_ACCESSES                     34
#define O_CATALOG_CACHE_ACCESSES_SUCCESSFUL          18
#define O_CATALOG_CACHE_ACCESSES_UNSUCCESSFUL        16
#define O_SQL_COMMANDS                               7
#define O_PREPARES                                   3
#define O_EXECUTES                                   8
#define O_DROPS                                      3
#define O_SELECTS_AND_FETCHES                        8
#define O_SELECTS_AND_FETCHES_ROWS_READ              185
#define O_SELECTS_AND_FETCHES_ROWS_QUAL              185
#define O_SHOWS                                      2
#define O_PRIMARY_KEY_RANGE_ACCESSES                 4
#define O_PRIMARY_KEY_RANGE_ACCESSES_ROWS_READ       4
#define O_PRIMARY_KEY_RANGE_ACCESSES_ROWS_QUAL       4
#define O_TABLE_SCANS                                1
#define O_TABLE_SCANS_ROWS_READ                      181
#define O_TABLE_SCANS_ROWS_QUAL                      181
#define O_SORTS_BY_INSERTION                         1
#define O_SORTS_BY_INSERTION_ROWS_INSERTED           181
#define O_VIRTUAL_READS                              844
#define O_VIRTUAL_WRITES                             417
#define O_PERM_PAGE_VIRTUAL_READS                    8
#define O_TEMP_PAGE_VIRTUAL_READS                    836
#define O_TEMP_PAGE_VIRTUAL_WRITES                   417
#define O_LEAF_PAGE_VIRTUAL_READS                    623
#define O_LEAF_PAGE_VIRTUAL_WRITES                   410
#define O_LEVEL1_PAGE_VIRTUAL_READS                  221
#define O_LEVEL1_PAGE_VIRTUAL_WRITES                 7
#define O_BD_ADD_RECORD_TEMP                         374
#define O_BD_REPL_RECORD_TEMP                        1
#define O_BD_DEL_RECORD_TEMP                         12
#define O_BD_GET_RECORD_TEMP                         16
#define O_BD_NEXT_RECORD_TEMP                        9
#define O_BD_SELECT_DIRECT_RECORD                    4
#define O_BD_SELECT_NEXT_RECORD                      182
#define O_KB_CALLS                                   7

#define O_COMMAND_CNT			   	    14
#define PRINT(x)                { if ( ! silent ) { 	    \ 
fo = stdout ; fprintf x ; \
fflush ( fo ) ; }         \
if ( fout )               \
{                         \
fo=f;                  \
fprintf x ;            \
fflush ( fo )      ;   \
} prblm++ ;               \
}

#define FMT(i) 	Text[(int)i].Lang[Language] 

#define PWarn(x1,x2,x3,x4) \
PrintWarn ((float)x1,(float)x2,(float)x3,(float)x4)

#define PWarnM(x1,x2,x3,x4) \
PrintWarnM ((float)x1,(float)x2,(float)x3,(float)x4)

int	Language ;

enum TextIndex {
	I_ADS, I_KNV, I_FBA, I_MST, I_NDH, I_NCoH, I_NCaH, I_HRRP, I_PRKP,
		I_HRRV, I_PRKV, I_NHZV, I_ZRRR, I_NHB, I_NHB_RRR, I_PTP, I_EAGE,
		I_TBDK, I_NHBT, I_SRRR, I_HKAS, I_HKAS_SSK, I_LET, I_LQOL, I_LQOL_LQP,
		I_HLA, I_HRAP, I_HWAP, I_HKAR, I_HKAR_ZVIK, I_HALK, I_HALK_LK, I_HAVS,
		I_HVBU, I_HAAV, I_HAAV_VK, I_HSZB, I_HKIB, I_WBSK, I_WBSK_LLC, I_HIOZ ,
		I_ZEN , I_KDBEG , I_LSA , I_LSA_2 , I_TASC , I_TASC_2 ,I_CVDR , I_CVDR2 ,
		I_PAH, I_PAH_2 } ;
	
	extern struct 
	{
		char *Lang[2] ; 
	} Text [] ;  

.CM *-END-* code ----------------------------------------
.sp 2
***********************************************************
*-PRETTY-*  statements    :           0
*-PRETTY-*  lines of code :           0
*-PRETTY-*  lines in file :           0
.pa
