/******************************************************************************* ** ** Source File Name = monreset.c 1.6 ** ** Licensed Materials - Property of IBM ** ** (C) COPYRIGHT International Business Machines Corp. 1995, 1999 ** All Rights Reserved. ** ** US Government Users Restricted Rights - Use, duplication or ** disclosure restricted by GSA ADP Schedule Contract with IBM Corp. ** ** ** PURPOSE : to demonstrate the use the RESET DATABASE SYSTEM MONITOR DATA ** AREAS. ** The following illustrates how to issue a snapshot and process the output. ** It prints database lock snapshots. Printing routines for other ** request types are left to the reader to complete as an exercise... ** ** OTHER APIs USED : ** INSTANCE ATTACH sqleatin() ** ** EXTERNAL FUNCTIONS USED IN CODE SAMPLE: ** check_error : Checks for SQLCODE error, and prints out any ** [in util.c] related information available. ** ** EXTERNAL DEPENDENCIES : ** - Ensure existence of database for precompile purposes. ** - Compile and link with the IBM Cset++ compiler (AIX and OS/2) ** or the Microsoft Visual C++ compiler (Windows) ** or the compiler supported on your platform. ** ** For more information about these samples see the README file. ** ** For more information on programming in C, see the: ** - "Programming in C and C++" section of the Application Development Guide ** For more information on Building C Applications, see the: ** - "Building C Applications" section of the Application Building Guide. ** ** For more information on the SQL language see the SQL Reference. ** *******************************************************************************/ /******************************************************************************* Database Monitor Reset API #include "sqlmon.h" #include "sqlca.h" #include "util.h" int SQL_API_FN sqlmrset(unsigned long version, char *reserved, unsigned long reset_all, char *db_alias, struct sqlca *sqlca ); This function calls resets to 0, all *resettable* data items *for the aplication performing the call*. (Note: In Version 1, Reset would affect the data for all monitoring applications, this is no longer the case.) INPUT: reset_all: 1 - Reset monitor data for all databases, and also the database manager level data. 0 - Only reset data for the database 'db_alias'. db_alias: NULL terminated string, the alias of the database to reset. Ignored if reset_all = 1. OUTPUT: sqlca: Indicates whether or not the call was successful. *******************************************************************************/ #include <stdio.h> #include <string.h> #include "sqlca.h" #include "sqlutil.h" #include "sqlmon.h" #include "util.h" #define CHECKERR(CE_STR) if (check_error (CE_STR, &sqlca) !=0) return 1; /* Reset monitored data for a single database */ int main(int argc, char* argv[]) { struct sqlca sqlca; char dbname[9]; char userid[9]; char passwd[19]; char nodename[9]; if (argc == 5) { strcpy (userid, argv[2]); strcpy (passwd, argv[3]); strcpy (nodename, argv[4]); /*************************/ /* ATTACH API called */ /*************************/ sqleatin (nodename, userid, passwd, &sqlca); } else if (argc!=2) { printf("\nreset: Reset Database Monitor Data for a " "database.\n\tUSAGE: monreset dbname [userid password remote_nodename]\n"); return 1; } strcpy (dbname, argv[1]); /*****************************************************\ * RESET DATABASE SYSTEM MONITOR DATA AREAS API called * \*****************************************************/ sqlmrset(SQLM_DBMON_VERSION2, NULL, SQLM_OFF, argv[1], &sqlca); CHECKERR ("RESET DB MONITOR"); printf("Database Monitor Reset for '%s' was successful!\n", dbname); return 0; }