92 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /* d4info.c   (c)Copyright Sequiter Software Inc., 1988-1996.  All rights reserved. */
 | |
| 
 | |
| #include "d4all.h"
 | |
| #ifndef S4UNIX
 | |
|    #ifdef __TURBOC__
 | |
|       #pragma hdrstop
 | |
|    #endif
 | |
| #endif
 | |
| 
 | |
| #ifdef S4CLIENT
 | |
| int S4FUNCTION code4info( CODE4 *c4 )
 | |
| {
 | |
|    CONNECTION4 *connection ;
 | |
|    int rc ;
 | |
|    #ifdef S4CONSOLE
 | |
|       CONNECTION4SERVER_INFO_OUT *out ;
 | |
|       CONNECTION4CLIENT_INFO *client ;
 | |
|       unsigned short int i ;
 | |
|    #endif
 | |
| 
 | |
|    #ifdef E4PARM_LOW
 | |
|       if ( c4 == 0 )
 | |
|          return error4( 0, e4parm_null, E96101 ) ;
 | |
|    #endif
 | |
| 
 | |
|    if ( c4->defaultServer == 0 )
 | |
|       return error4( c4, e4connection, E84302 ) ;
 | |
| 
 | |
|    #ifdef E4ANALYZE
 | |
|       if ( c4->defaultServer->connect == 0 )
 | |
|          return error4( c4, e4parm, E96101 ) ;
 | |
|    #endif
 | |
| 
 | |
|    connection = c4->defaultServer->connect ;
 | |
|    connection4assign( connection, CON4INFO, 0L, 0L ) ;
 | |
|    connection4send( connection ) ;
 | |
|    rc = connection4receive( connection ) ;
 | |
|    if ( rc < 0 )
 | |
|       return error4stack( c4, rc, E96101 ) ;
 | |
| 
 | |
|    rc = connection4status( connection ) ;
 | |
|    if ( rc < 0 )
 | |
|       return connection4error( connection, c4, rc, E96101 ) ;
 | |
| 
 | |
|    if ( connection4len( connection ) < sizeof( CONNECTION4SERVER_INFO_OUT ) )
 | |
|       return error4( c4, e4packetLen, E96101 ) ;
 | |
| 
 | |
|    #ifdef S4CONSOLE
 | |
|       out = (CONNECTION4SERVER_INFO_OUT *)connection4data( connection ) ;
 | |
| 
 | |
|       printf( "\nSERVER STATS\n------------\n" ) ;
 | |
| 
 | |
|       if ( out->memMax == -1 )
 | |
|          printf( "memMax: unknown\n" ) ;
 | |
|       else
 | |
|          printf( "memMax: %ld\n", out->memMax ) ;
 | |
| 
 | |
|       if ( out->memAlloc == -1 )
 | |
|          printf( "memAlloc: unknown\n" ) ;
 | |
|       else
 | |
|          printf( "memAlloc: %ld\n", out->memAlloc ) ;
 | |
|       printf( "numRequests: %ld\n", out->numRequests ) ;
 | |
|       printf( "numClients: %d\n", out->numClients ) ;
 | |
|       printf( "elapsedSeconds: %ld\n", (long)out->elapsedSeconds ) ;
 | |
| 
 | |
|       if ( connection4len( connection ) != (long)(sizeof( CONNECTION4SERVER_INFO_OUT ) + out->numClients * sizeof( CONNECTION4CLIENT_INFO )) )
 | |
|          return error4( c4, e4packetLen, E96101 ) ;
 | |
| 
 | |
|       printf( "\nCLIENT STATS\n------------\n" ) ;
 | |
| 
 | |
|       for ( i = 0 ; i < out->numClients ; i++ )
 | |
|       {
 | |
|          client = (CONNECTION4CLIENT_INFO *)(((char *)out) + sizeof( CONNECTION4SERVER_INFO_OUT ) + i * sizeof( CONNECTION4CLIENT_INFO ) ) ;
 | |
| 
 | |
|       /* printf( Client Name... */
 | |
|          printf( "numData: %d\n", client->numData ) ;
 | |
|          printf( "numRelate: %d\n", client->numRelate ) ;
 | |
|          printf( "numRequests: %ld\n", client->numRequests ) ;
 | |
|          printf( "numTransactions: %d\n", client->numTransactions ) ;
 | |
|          printf( "numCompletedTransactions: %d\n", client->numCompletedTransactions ) ;
 | |
|          printf( "numRollbacks: %d\n", client->numRollbacks ) ;
 | |
|          printf( "elapsedSeconds: %ld\n", (long)client->elapsedSeconds ) ;
 | |
|          printf( "activeTransaction: %d\n", client->activeTransaction ) ;
 | |
|       }
 | |
| 
 | |
|       printf( "-----------------------------------\n\n" ) ;
 | |
|    #endif
 | |
| 
 | |
|    return 0 ;
 | |
| }
 | |
| #endif
 |