Configuración de indicadores de salud utilizando una aplicación cliente

La configuración del supervisor de estado es accesible a través de las API db2GetAlertCfg, db2UpdateAlertCfgy db2ResetAlertCfg en una aplicación C o C++. Cada una de estas API puede acceder a los valores de fábrica, instancia, global y objeto.

Antes de empezar

Debe tener una conexión de instancia para acceder a la configuración del supervisor de salud. Si no hay una conexión a una instancia, se crea una conexión de instancia predeterminada. Para acceder a la configuración del supervisor de salud de una instancia remota, primero debe conectarse a dicha instancia.

Acerca de esta tarea

Las combinaciones de los parámetros objType y defaultType de la estructura db2GetAlertCfgData permiten acceder a los diversos niveles de configuración del indicador de salud.
Tabla 1. Valores para objType y defaultType para acceder a los niveles de configuración
Valor objType y defaultType
Valores de fábrica objType = DB2ALERTCFG_OBJTYPE_{DBM | DATABASES | TABLESPACES | CONTAINERS} y defaultType = DB2ALERTCFG_DEFAULT
Valores globales
objType = DB2ALERTCFG_OBJTYPE_{DBM |
DATABASES | TABLESPACES | CONTAINERS}
y defaultType = DB2ALERTCFG_NOT_DEFAULT

o

objType = DB2ALERTCFG_OBJTYPE_{DATABASE |
TABLESPACE | CONTAINER} y
defaultType = DB2ALERTCFG_DEFAULT
Valores de objeto objType = DB2ALERTCFG_OBJTYPE_{DATABASE | TABLESPACE | CONTAINER} y defaultType = DB2ALERTCFG_NOT_DEFAULT

Procedimiento

  1. Para obtener el valor de objeto específico para los indicadores de salud en la base de datos SAMPLE:
    1. Incluya el archivo de cabecera db2ApiDf.h , que se encuentra en el directorio sqllib\include .
      #include <db2ApiDf.h>
    2. Declare e inicialice las estructuras sqlca y db2GetAlertCfgData .
      struct sqlca ca;
      memset (&sqlca, '\0', sizeof(struct sqlca));
       
      char* objName = NULL;
      char* dbName = "SAMPLE";
      db2Uint32 objType = DB2ALERTCFG_OBJTYPE_DATABASE;
      db2Uint32 defaultType = DB2ALERTCFG_NOT_DEFAULT;
       
      db2GetAlertCfgData data = {objType, objName, defaultType, dbName, 0, NULL} ;
      
    3. Llame a la API db2GetAlertCfg .
      rc = db2GetAlertCfg (db2Version810, &data, &ca);
    4. Procese la configuración devuelta y libere el almacenamiento intermedio asignado por la API.
      if (rc >= SQLO_OK) {
        if ((data.ioNumIndicators > 0) && (data.pioIndicators != NULL)) {
          db2GetAlertCfgInd *pIndicators = data.pioIndicators;
       
          for (db2Uint32 i=0; i  data.ioNumIndicators; i++) {
      	//process the entry as necessary using fields defined in db2ApiDf.h
          }
        }
       
        db2GetAlertCfgFree (db2Version810, &data, &ca);
      }
  2. Los pasos siguientes detallan el procedimiento para actualizar la configuración de alerta del indicador de salud de db.sort_shrmem_util para los valores globales para objetos de base de datos, estableciendo el umbral de aviso en 80 y añadiendo la acción de tarea 1.1:
    1. Incluya el archivo de cabecera db2ApiDf.h , que se encuentra en el directorio sqllib\include .
      #include <db2ApiDf.h>
    2. Declare e inicialice las estructuras sqlca y db2AlertTaskAction .
      struct sqlca ca;
      memset (&sqlca, '\0', sizeof(struct sqlca));
       
      db2Uint32 objType = DB2ALERTCFG_OBJTYPE_DATABASES;
       
      db2Uint32 taskCondition = DB2ALERTCFG_CONDITION_WARNING;
      char* taskname = "1.1";
      char* hostname = NULL;
      char* userid = "nobody";
      char* password = "nothing";
       
      db2AlertTaskAction newTask={taskname,taskCondition,userid,password,hostname};
      
    3. Declare e inicialice la estructura db2UpdateAlertCfgData .
      struct db2UpdateAlertCfgData setData;
       
      setData.iObjType = objType;
      setData.piObjName = NULL;
      setData.piDbName = NULL;
       
      setData.iIndicatorID = 1002;
       
      setData.iNumIndAttribUpdates = 1;
      setData.piIndAttribUpdates[0].iAttribID = DB2ALERTCFG_WARNING;
      setData.piIndAttribUpdates[0].piAttribValue == 80;
       
      setData.iNumActionUpdates = 0;
      setData.piActionUpdates = NULL;
       
      setData.iNumActionDeletes = 0;
      setData.piActionDeletes = NULL;
       
      setData.iNumNewActions = 1;
      setData.piNewActions[0].iActionType = DB2ALERTCFG_ACTIONTYPE_TASK;
      setData.piNewActions[0].piScriptAttribs = NULL;
      setData.piNewActions[0].piTaskAttribs = &newTask;
      
    4. Llame a la API db2UpdateAlertCfg .
      rc = db2UpdateAlertCfg(db2Version810, &setData, &ca);
  3. Los pasos siguientes detallan el procedimiento para restablecer los valores personalizados para el espacio de tablas MYTS en la base de datos SAMPLE.
    1. Incluya el archivo de cabecera db2ApiDf.h , que se encuentra en el directorio sqllib\include .
      #include <db2ApiDf.h>
    2. Declare e inicialice las estructuras sqlca y db2ResetAlertCfgData .
      struct sqlca ca;
      memset (&sqlca, '\0', sizeof(struct sqlca));
       
      char* objName = "MYTS";
      char* dbName = "SAMPLE";
      db2Uint32 objType = DB2ALERTCFG_OBJTYPE_TABLESPACE;
       
      db2ResetAlertCfgData data = {objType, objName, dbName};
    3. Llame a la API db2ResetAlertCfg .
      rc = db2ResetAlertCfg (db2Version810, &data, &ca);