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
- Para obtener el valor de objeto específico para los indicadores de salud en la base de datos SAMPLE:
- Incluya el archivo de cabecera db2ApiDf.h , que se encuentra en el directorio sqllib\include .
- 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} ;
- Llame a la API db2GetAlertCfg .
rc = db2GetAlertCfg (db2Version810, &data, &ca);
- 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);
}
- 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:
- Incluya el archivo de cabecera db2ApiDf.h , que se encuentra en el directorio sqllib\include .
- 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};
- 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;
- Llame a la API db2UpdateAlertCfg .
rc = db2UpdateAlertCfg(db2Version810, &setData, &ca);
- Los pasos siguientes detallan el procedimiento para restablecer los valores personalizados para el espacio de tablas MYTS en la base de datos SAMPLE.
- Incluya el archivo de cabecera db2ApiDf.h , que se encuentra en el directorio sqllib\include .
- 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};
- Llame a la API db2ResetAlertCfg .
rc = db2ResetAlertCfg (db2Version810, &data, &ca);