diff options
Diffstat (limited to 'src/libs/zbxdbhigh/db.c')
-rw-r--r-- | src/libs/zbxdbhigh/db.c | 209 |
1 files changed, 130 insertions, 79 deletions
diff --git a/src/libs/zbxdbhigh/db.c b/src/libs/zbxdbhigh/db.c index 72ab2a89..c4dda150 100644 --- a/src/libs/zbxdbhigh/db.c +++ b/src/libs/zbxdbhigh/db.c @@ -48,6 +48,7 @@ extern void apply_actions(DB_TRIGGER *trigger,int trigger_value); extern void update_services(int triggerid, int status); extern int CONFIG_NODEID; +extern int CONFIG_MASTER_NODEID; void DBclose(void) { @@ -88,6 +89,11 @@ void DBconnect(void) exit(FAIL); } } + if(mysql_autocommit(&mysql, 1) != 0) + { + zabbix_log(LOG_LEVEL_ERR, "Failed to set autocommit to 1: Error: %s",mysql_error(&mysql)); + exit(FAIL); + } #endif #ifdef HAVE_PGSQL /* conn = PQsetdb(pghost, pgport, pgoptions, pgtty, dbName); */ @@ -698,7 +704,7 @@ int DBget_function_result(double *result,char *functionid) * Comments: Rewrite required to simplify logic ? * * * ******************************************************************************/ -static void get_latest_event_status(int triggerid, int *prev_status, int *latest_status) +static void get_latest_event_status(zbx_uint64_t triggerid, int *prev_status, int *latest_status) { char sql[MAX_STRING_LEN]; DB_RESULT result; @@ -706,8 +712,8 @@ static void get_latest_event_status(int triggerid, int *prev_status, int *latest zabbix_log(LOG_LEVEL_DEBUG,"In latest_event()"); - zbx_snprintf(sql,sizeof(sql),"select value from events where triggerid=%d order by clock desc",triggerid); - zabbix_log(LOG_LEVEL_DEBUG,"SQL [%s]",sql); + zbx_snprintf(sql,sizeof(sql),"select value from events where triggerid=" ZBX_FS_UI64 " order by clock desc",triggerid); + zabbix_log(LOG_LEVEL_DEBUG,"SQL [%s]", sql); result = DBselectN(sql,2); row = DBfetch(result); @@ -821,7 +827,7 @@ static int latest_event(int triggerid, int status) /* SUCCEED if latest service alarm has this status */ /* Rewrite required to simplify logic ?*/ -int latest_service_alarm(int serviceid, int status) +int latest_service_alarm(zbx_uint64_t serviceid, int status) { int clock; DB_RESULT result; @@ -831,7 +837,7 @@ int latest_service_alarm(int serviceid, int status) zabbix_log(LOG_LEVEL_DEBUG,"In latest_service_alarm()"); - result = DBselect("select max(clock) from service_alarms where serviceid=%d",serviceid); + result = DBselect("select max(clock) from service_alarms where serviceid=" ZBX_FS_UI64,serviceid); row = DBfetch(result); if(!row || DBis_null(row[0])==SUCCEED) @@ -844,7 +850,7 @@ int latest_service_alarm(int serviceid, int status) clock=atoi(row[0]); DBfree_result(result); - result = DBselect("select value from service_alarms where serviceid=%d and clock=%d",serviceid,clock); + result = DBselect("select value from service_alarms where serviceid=" ZBX_FS_UI64 " and clock=%d",serviceid,clock); row = DBfetch(result); if(row && DBis_null(row[0]) != SUCCEED) { @@ -890,7 +896,7 @@ int add_event(int triggerid,int status,int clock,int *eventid) } */ -int DBadd_service_alarm(int serviceid,int status,int clock) +int DBadd_service_alarm(zbx_uint64_t serviceid,int status,int clock) { zabbix_log(LOG_LEVEL_DEBUG,"In add_service_alarm()"); @@ -899,7 +905,7 @@ int DBadd_service_alarm(int serviceid,int status,int clock) return SUCCEED; } - DBexecute("insert into service_alarms(serviceid,clock,value) values(%d,%d,%d)", serviceid, clock, status); + DBexecute("insert into service_alarms(serviceid,clock,value) values(" ZBX_FS_UI64 ",%d,%d)", serviceid, clock, status); zabbix_log(LOG_LEVEL_DEBUG,"End of add_service_alarm()"); @@ -915,11 +921,11 @@ int DBupdate_trigger_value(DB_TRIGGER *trigger, int new_value, int now, char *re if(reason==NULL) { - zabbix_log(LOG_LEVEL_DEBUG,"In update_trigger_value[%d,%d,%d]", trigger->triggerid, new_value, now); + zabbix_log(LOG_LEVEL_DEBUG,"In update_trigger_value[" ZBX_FS_UI64 ",%d,%d]", trigger->triggerid, new_value, now); } else { - zabbix_log(LOG_LEVEL_DEBUG,"In update_trigger_value[%d,%d,%d,%s]", trigger->triggerid, new_value, now, reason); + zabbix_log(LOG_LEVEL_DEBUG,"In update_trigger_value[" ZBX_FS_UI64 ",%d,%d,%s]", trigger->triggerid, new_value, now, reason); } /* New trigger value differs from current one */ @@ -932,11 +938,11 @@ int DBupdate_trigger_value(DB_TRIGGER *trigger, int new_value, int now, char *re { if(reason==NULL) { - DBexecute("update triggers set value=%d,lastchange=%d,error='' where triggerid=%d",new_value,now,trigger->triggerid); + DBexecute("update triggers set value=%d,lastchange=%d,error='' where triggerid=" ZBX_FS_UI64,new_value,now,trigger->triggerid); } else { - DBexecute("update triggers set value=%d,lastchange=%d,error='%s' where triggerid=%d",new_value,now,reason, trigger->triggerid); + DBexecute("update triggers set value=%d,lastchange=%d,error='%s' where triggerid=" ZBX_FS_UI64,new_value,now,reason, trigger->triggerid); } if( ((trigger->value == TRIGGER_VALUE_TRUE) && (new_value == TRIGGER_VALUE_FALSE)) || ((trigger->value == TRIGGER_VALUE_FALSE) && (new_value == TRIGGER_VALUE_TRUE)) || @@ -974,14 +980,14 @@ int DBupdate_trigger_value(DB_TRIGGER *trigger, int new_value, int now, char *re } else { - zabbix_log(LOG_LEVEL_DEBUG,"Alarm not added for triggerid [%d]", trigger->triggerid); + zabbix_log(LOG_LEVEL_DEBUG,"Alarm not added for triggerid [" ZBX_FS_UI64 "]", trigger->triggerid); ret = FAIL; } } return ret; } -void update_triggers_status_to_unknown(int hostid,int clock,char *reason) +void update_triggers_status_to_unknown(zbx_uint64_t hostid,int clock,char *reason) { DB_RESULT result; DB_ROW row; @@ -990,11 +996,12 @@ void update_triggers_status_to_unknown(int hostid,int clock,char *reason) zabbix_log(LOG_LEVEL_DEBUG,"In update_triggers_status_to_unknown()"); /* zbx_snprintf(sql,sizeof(sql),"select distinct t.triggerid from hosts h,items i,triggers t,functions f where f.triggerid=t.triggerid and f.itemid=i.itemid and h.hostid=i.hostid and h.hostid=%d and i.key_<>'%s'",hostid,SERVER_STATUS_KEY);*/ - result = DBselect("select distinct t.triggerid,t.value,t.comments from hosts h,items i,triggers t,functions f where f.triggerid=t.triggerid and f.itemid=i.itemid and h.hostid=i.hostid and h.hostid=%d and i.key_ not in ('%s','%s','%s')",hostid,SERVER_STATUS_KEY, SERVER_ICMPPING_KEY, SERVER_ICMPPINGSEC_KEY); + result = DBselect("select distinct t.triggerid,t.value,t.comments from hosts h,items i,triggers t,functions f where f.triggerid=t.triggerid and f.itemid=i.itemid and h.hostid=i.hostid and h.hostid=" ZBX_FS_UI64 " and i.key_ not in ('%s','%s','%s')",hostid,SERVER_STATUS_KEY, SERVER_ICMPPING_KEY, SERVER_ICMPPINGSEC_KEY); while((row=DBfetch(result))) { - trigger.triggerid=atoi(row[0]); + ZBX_STR2UINT64(trigger.triggerid,row[0]); +/* trigger.triggerid=atoi(row[0]);*/ trigger.value=atoi(row[1]); strscpy(trigger.comments, row[2]); DBupdate_trigger_value(&trigger,TRIGGER_VALUE_UNKNOWN,clock,reason); @@ -1006,99 +1013,120 @@ void update_triggers_status_to_unknown(int hostid,int clock,char *reason) return; } -void DBdelete_service(int serviceid) +void DBdelete_service(zbx_uint64_t serviceid) { - DBexecute("delete from services_links where servicedownid=%d or serviceupid=%d", serviceid, serviceid); - DBexecute("delete from services where serviceid=%d", serviceid); + DBexecute("delete from services_links where servicedownid=" ZBX_FS_UI64 " or serviceupid=" ZBX_FS_UI64, + serviceid, serviceid); + DBexecute("delete from services where serviceid=" ZBX_FS_UI64, + serviceid); } -void DBdelete_services_by_triggerid(int triggerid) +void DBdelete_services_by_triggerid(zbx_uint64_t triggerid) { - int serviceid; + zbx_uint64_t serviceid; DB_RESULT result; DB_ROW row; - zabbix_log(LOG_LEVEL_DEBUG,"In DBdelete_services_by_triggerid(%d)", triggerid); - result = DBselect("select serviceid from services where triggerid=%d", triggerid); + zabbix_log(LOG_LEVEL_DEBUG,"In DBdelete_services_by_triggerid(" ZBX_FS_UI64 ")", triggerid); + result = DBselect("select serviceid from services where triggerid=" ZBX_FS_UI64, triggerid); while((row=DBfetch(result))) { - serviceid=atoi(row[0]); +/* serviceid=atoi(row[0]);*/ + ZBX_STR2UINT64(serviceid, row[0]); DBdelete_service(serviceid); } DBfree_result(result); - zabbix_log(LOG_LEVEL_DEBUG,"End of DBdelete_services_by_triggerid(%d)", triggerid); + zabbix_log(LOG_LEVEL_DEBUG,"End of DBdelete_services_by_triggerid(" ZBX_FS_UI64 ")", triggerid); } -void DBdelete_trigger(int triggerid) +void DBdelete_trigger(zbx_uint64_t triggerid) { - DBexecute("delete from trigger_depends where triggerid_down=%d or triggerid_up=%d", triggerid, triggerid); - DBexecute("delete from functions where triggerid=%d", triggerid); - DBexecute("delete from events where triggerid=%d", triggerid); + DBexecute("delete from trigger_depends where triggerid_down=" ZBX_FS_UI64 " or triggerid_up=" ZBX_FS_UI64, + triggerid, triggerid); + DBexecute("delete from functions where triggerid=" ZBX_FS_UI64, + triggerid); + DBexecute("delete from events where triggerid=" ZBX_FS_UI64, + triggerid); /* zbx_snprintf(sql,sizeof(sql),"delete from actions where triggerid=%d and scope=%d", triggerid, ACTION_SCOPE_TRIGGER); DBexecute(sql);*/ DBdelete_services_by_triggerid(triggerid); - DBexecute("update sysmaps_links set triggerid=NULL where triggerid=%d", triggerid); - DBexecute("delete from triggers where triggerid=%d", triggerid); + DBexecute("update sysmaps_links set triggerid=NULL where triggerid=" ZBX_FS_UI64, + triggerid); + DBexecute("delete from triggers where triggerid=" ZBX_FS_UI64, + triggerid); } -void DBdelete_triggers_by_itemid(int itemid) +void DBdelete_triggers_by_itemid(zbx_uint64_t itemid) { - int triggerid; + zbx_uint64_t triggerid; DB_RESULT result; DB_ROW row; - zabbix_log(LOG_LEVEL_DEBUG,"In DBdelete_triggers_by_itemid(%d)", itemid); - result = DBselect("select triggerid from functions where itemid=%d", itemid); + zabbix_log(LOG_LEVEL_DEBUG,"In DBdelete_triggers_by_itemid(" ZBX_FS_UI64 ")", + itemid); + result = DBselect("select triggerid from functions where itemid=" ZBX_FS_UI64, + itemid); while((row=DBfetch(result))) { - triggerid=atoi(row[0]); + ZBX_STR2UINT64(triggerid, row[0]); +/* triggerid=atoi(row[0]);*/ DBdelete_trigger(triggerid); } DBfree_result(result); - DBexecute("delete from functions where itemid=%d", itemid); + DBexecute("delete from functions where itemid=" ZBX_FS_UI64, + itemid); - zabbix_log(LOG_LEVEL_DEBUG,"End of DBdelete_triggers_by_itemid(%d)", itemid); + zabbix_log(LOG_LEVEL_DEBUG,"End of DBdelete_triggers_by_itemid(" ZBX_FS_UI64 ")", + itemid); } -void DBdelete_trends_by_itemid(int itemid) +void DBdelete_trends_by_itemid(zbx_uint64_t itemid) { - DBexecute("delete from trends where itemid=%d", itemid); + DBexecute("delete from trends where itemid=" ZBX_FS_UI64, + itemid); } -void DBdelete_history_by_itemid(int itemid) +void DBdelete_history_by_itemid(zbx_uint64_t itemid) { - DBexecute("delete from history where itemid=%d", itemid); - DBexecute("delete from history_str where itemid=%d", itemid); + DBexecute("delete from history where itemid=" ZBX_FS_UI64, + itemid); + DBexecute("delete from history_str where itemid=" ZBX_FS_UI64, + itemid); } -void DBdelete_sysmaps_links_by_shostid(int shostid) +void DBdelete_sysmaps_links_by_shostid(zbx_uint64_t shostid) { - DBexecute("delete from sysmaps_links where shostid1=%d or shostid2=%d", shostid, shostid); + DBexecute("delete from sysmaps_links where shostid1=" ZBX_FS_UI64 " or shostid2=" ZBX_FS_UI64, + shostid, shostid); } -void DBdelete_sysmaps_hosts_by_hostid(int hostid) +void DBdelete_sysmaps_hosts_by_hostid(zbx_uint64_t hostid) { - int shostid; + zbx_uint64_t shostid; DB_RESULT result; DB_ROW row; - zabbix_log(LOG_LEVEL_DEBUG,"In DBdelete_sysmaps_hosts(%d)", hostid); - result = DBselect("select shostid from sysmaps_elements where elementid=%d", hostid); + zabbix_log(LOG_LEVEL_DEBUG,"In DBdelete_sysmaps_hosts(" ZBX_FS_UI64 ")", + hostid); + result = DBselect("select shostid from sysmaps_elements where elementid=" ZBX_FS_UI64, + hostid); while((row=DBfetch(result))) { - shostid=atoi(row[0]); + ZBX_STR2UINT64(shostid, row[0]); +/* shostid=atoi(row[0]);*/ DBdelete_sysmaps_links_by_shostid(shostid); } DBfree_result(result); - DBexecute("delete from sysmaps_elements where elementid=%d", hostid); + DBexecute("delete from sysmaps_elements where elementid=" ZBX_FS_UI64, + hostid); } /* @@ -1136,7 +1164,8 @@ void DBupdate_triggers_status_after_restart(void) while((row=DBfetch(result))) { - trigger.triggerid=atoi(row[0]); + ZBX_STR2UINT64(trigger.triggerid,row[0]); +/* trigger.triggerid=atoi(row[0]);*/ trigger.value=atoi(row[1]); result2 = DBselect("select min(i.nextcheck+i.delay) from hosts h,items i,triggers t,functions f where f.triggerid=t.triggerid and f.itemid=i.itemid and h.hostid=i.hostid and i.nextcheck<>0 and t.triggerid=%d and i.type<>%d",trigger.triggerid,ITEM_TYPE_TRAPPER); @@ -1160,7 +1189,7 @@ void DBupdate_triggers_status_after_restart(void) return; } -void DBupdate_host_availability(int hostid,int available,int clock, char *error) +void DBupdate_host_availability(zbx_uint64_t hostid,int available,int clock, char *error) { DB_RESULT result; DB_ROW row; @@ -1178,13 +1207,13 @@ void DBupdate_host_availability(int hostid,int available,int clock, char *error) strscpy(error_esc,""); } - result = DBselect("select available,disable_until from hosts where hostid=%d",hostid); + result = DBselect("select available,disable_until from hosts where hostid=" ZBX_FS_UI64, hostid); row=DBfetch(result); if(!row) { - zabbix_log(LOG_LEVEL_ERR, "Cannot select host with hostid [%d]",hostid); - zabbix_syslog("Cannot select host with hostid [%d]",hostid); + zabbix_log(LOG_LEVEL_ERR, "Cannot select host with hostid [" ZBX_FS_UI64 "]",hostid); + zabbix_syslog("Cannot select host with hostid [" ZBX_FS_UI64 "]",hostid); DBfree_result(result); return; } @@ -1209,7 +1238,7 @@ void DBupdate_host_availability(int hostid,int available,int clock, char *error) if(available==HOST_AVAILABLE_TRUE) { - DBexecute("update hosts set available=%d,error=' ',errors_from=0 where hostid=%d",HOST_AVAILABLE_TRUE,hostid); + DBexecute("update hosts set available=%d,error=' ',errors_from=0 where hostid=" ZBX_FS_UI64,HOST_AVAILABLE_TRUE,hostid); } else if(available==HOST_AVAILABLE_FALSE) { @@ -1222,12 +1251,15 @@ void DBupdate_host_availability(int hostid,int available,int clock, char *error) zbx_snprintf(sql,sizeof(sql),"update hosts set available=%d,disable_until=%d,error='%s' where hostid=%d",HOST_AVAILABLE_FALSE,clock+CONFIG_UNREACHABLE_DELAY,error_esc,hostid); }*/ /* '%s ' - space to make Oracle happy */ - DBexecute("update hosts set available=%d,error='%s ' where hostid=%d",HOST_AVAILABLE_FALSE,error_esc,hostid); + DBexecute("update hosts set available=%d,error='%s ' where hostid=" ZBX_FS_UI64, + HOST_AVAILABLE_FALSE,error_esc,hostid); } else { - zabbix_log( LOG_LEVEL_ERR, "Unknown host availability [%d] for hostid [%d]", available, hostid); - zabbix_syslog("Unknown host availability [%d] for hostid [%d]", available, hostid); + zabbix_log( LOG_LEVEL_ERR, "Unknown host availability [%d] for hostid [" ZBX_FS_UI64 "]", + available, hostid); + zabbix_syslog("Unknown host availability [%d] for hostid [" ZBX_FS_UI64 "]", + available, hostid); return; } @@ -1237,7 +1269,7 @@ void DBupdate_host_availability(int hostid,int available,int clock, char *error) return; } -int DBupdate_item_status_to_notsupported(int itemid, char *error) +int DBupdate_item_status_to_notsupported(zbx_uint64_t itemid, char *error) { char error_esc[MAX_STRING_LEN]; @@ -1253,7 +1285,8 @@ int DBupdate_item_status_to_notsupported(int itemid, char *error) } /* '&s ' to make Oracle happy */ - DBexecute("update items set status=%d,error='%s ' where itemid=%d",ITEM_STATUS_NOTSUPPORTED,error_esc,itemid); + DBexecute("update items set status=%d,error='%s ' where itemid=" ZBX_FS_UI64, + ITEM_STATUS_NOTSUPPORTED,error_esc,itemid); return SUCCEED; } @@ -1270,7 +1303,8 @@ int DBadd_trend(int itemid, double value, int clock) hour=clock-clock%3600; - result = DBselect("select num,value_min,value_avg,value_max from trends where itemid=%d and clock=%d", itemid, hour); + result = DBselect("select num,value_min,value_avg,value_max from trends where itemid=" ZBX_FS_UI64 " and clock=%d", + itemid, hour); row=DBfetch(result); @@ -1286,11 +1320,13 @@ int DBadd_trend(int itemid, double value, int clock) if(value>value_max) value_max=value; value_avg=(num*value_avg+value)/(num+1); num++; - DBexecute("update trends set num=%d, value_min=%f, value_avg=%f, value_max=%f where itemid=%d and clock=%d", num, value_min, value_avg, value_max, itemid, hour); + DBexecute("update trends set num=%d, value_min=%f, value_avg=%f, value_max=%f where itemid=" ZBX_FS_UI64 " and clock=%d", + num, value_min, value_avg, value_max, itemid, hour); } else { - DBexecute("insert into trends (clock,itemid,num,value_min,value_avg,value_max) values (%d,%d,%d,%f,%f,%f)", hour, itemid, 1, value, value, value); + DBexecute("insert into trends (clock,itemid,num,value_min,value_avg,value_max) values (%d," ZBX_FS_UI64 ",%d,%f,%f,%f)", + hour, itemid, 1, value, value, value); } DBfree_result(result); @@ -1298,41 +1334,50 @@ int DBadd_trend(int itemid, double value, int clock) return SUCCEED; } -int DBadd_history(int itemid, double value, int clock) +int DBadd_history(zbx_uint64_t itemid, double value, int clock) { zabbix_log(LOG_LEVEL_DEBUG,"In add_history()"); - DBexecute("insert into history (clock,itemid,value) values (%d,%d,%f)",clock,itemid,value); + DBexecute("insert into history (clock,itemid,value) values (%d," ZBX_FS_UI64 ",%f)", + clock,itemid,value); + + if(CONFIG_MASTER_NODEID>=0) + { + DBexecute("insert into history_sync (nodeid,clock,itemid,value) values (%d,%d," ZBX_FS_UI64 ",%f)", + get_nodeid_by_id(itemid),clock,itemid,value); + } DBadd_trend(itemid, value, clock); return SUCCEED; } -int DBadd_history_uint(int itemid, zbx_uint64_t value, int clock) +int DBadd_history_uint(zbx_uint64_t itemid, zbx_uint64_t value, int clock) { zabbix_log(LOG_LEVEL_DEBUG,"In add_history_uint()"); - DBexecute("insert into history_uint (clock,itemid,value) values (%d,%d," ZBX_FS_UI64 ")",clock,itemid,value); + DBexecute("insert into history_uint (clock,itemid,value) values (%d," ZBX_FS_UI64 "," ZBX_FS_UI64 ")", + clock,itemid,value); DBadd_trend(itemid, (double)value, clock); return SUCCEED; } -int DBadd_history_str(int itemid, char *value, int clock) +int DBadd_history_str(zbx_uint64_t itemid, char *value, int clock) { char value_esc[MAX_STRING_LEN]; zabbix_log(LOG_LEVEL_DEBUG,"In add_history_str()"); DBescape_string(value,value_esc,MAX_STRING_LEN); - DBexecute("insert into history_str (clock,itemid,value) values (%d,%d,'%s')",clock,itemid,value_esc); + DBexecute("insert into history_str (clock,itemid,value) values (%d," ZBX_FS_UI64 ",'%s')", + clock,itemid,value_esc); return SUCCEED; } -int DBadd_history_text(int itemid, char *value, int clock) +int DBadd_history_text(zbx_uint64_t itemid, char *value, int clock) { #ifdef HAVE_ORACLE char sql[MAX_STRING_LEN]; @@ -1366,7 +1411,8 @@ int DBadd_history_text(int itemid, char *value, int clock) } zbx_snprintf(sql, sizeof(sql), "insert into history_text (clock,itemid,value)" - " values (%d,%d, EMPTY_CLOB()) returning value into :1", clock, itemid); + " values (%d," ZBX_FS_UI64 ", EMPTY_CLOB()) returning value into :1", + clock, itemid); zabbix_log(LOG_LEVEL_DEBUG,"Query:%s", sql); @@ -1437,7 +1483,8 @@ lbl_exit: sql_max_len = value_esc_max_len+100; DBescape_string(value,value_esc,value_esc_max_len); - DBexecute("insert into history_text (clock,itemid,value) values (%d,%d,'%s')",clock,itemid,value_esc); + DBexecute("insert into history_text (clock,itemid,value) values (%d," ZBX_FS_UI64 ",'%s')", + clock,itemid,value_esc); free(value_esc); @@ -1447,7 +1494,7 @@ lbl_exit: } -int DBadd_history_log(int itemid, char *value, int clock, int timestamp,char *source, int severity) +int DBadd_history_log(zbx_uint64_t itemid, char *value, int clock, int timestamp,char *source, int severity) { char value_esc[MAX_STRING_LEN]; char source_esc[MAX_STRING_LEN]; @@ -1456,7 +1503,8 @@ int DBadd_history_log(int itemid, char *value, int clock, int timestamp,char *so DBescape_string(value,value_esc,MAX_STRING_LEN); DBescape_string(source,source_esc,MAX_STRING_LEN); - DBexecute("insert into history_log (clock,itemid,timestamp,value,source,severity) values (%d,%d,%d,'%s','%s',%d)",clock,itemid,timestamp,value_esc,source_esc,severity); + DBexecute("insert into history_log (clock,itemid,timestamp,value,source,severity) values (%d," ZBX_FS_UI64 ",%d,'%s','%s',%d)", + clock,itemid,timestamp,value_esc,source_esc,severity); return SUCCEED; } @@ -1655,7 +1703,7 @@ int DBget_queue_count(void) return res; } -int DBadd_alert(int actionid, int userid, int triggerid, int mediatypeid, char *sendto, char *subject, char *message, int maxrepeats, int repeatdelay) +int DBadd_alert(zbx_uint64_t actionid, zbx_uint64_t userid, zbx_uint64_t triggerid, zbx_uint64_t mediatypeid, char *sendto, char *subject, char *message, int maxrepeats, int repeatdelay) { int now; char sendto_esc[MAX_STRING_LEN]; @@ -1670,7 +1718,9 @@ int DBadd_alert(int actionid, int userid, int triggerid, int mediatypeid, char DBescape_string(sendto,sendto_esc,MAX_STRING_LEN); DBescape_string(subject,subject_esc,MAX_STRING_LEN); DBescape_string(message,message_esc,MAX_STRING_LEN); - DBexecute("insert into alerts (actionid,triggerid,userid,clock,mediatypeid,sendto,subject,message,status,retries,maxrepeats,delay) values (%d,%d,%d,%d,%d,'%s','%s','%s',0,0,%d,%d)",actionid,triggerid,userid,now,mediatypeid,sendto_esc,subject_esc,message_esc, maxrepeats, repeatdelay); + DBexecute("insert into alerts (actionid,triggerid,userid,clock,mediatypeid,sendto,subject,message,status,retries,maxrepeats,delay)" + " values (" ZBX_FS_UI64 "," ZBX_FS_UI64 "," ZBX_FS_UI64 ",%d," ZBX_FS_UI64 ",'%s','%s','%s',0,0,%d,%d)", + actionid,triggerid,userid,now,mediatypeid,sendto_esc,subject_esc,message_esc, maxrepeats, repeatdelay); return SUCCEED; } @@ -1842,7 +1892,8 @@ void DBget_item_from_db(DB_ITEM *item,DB_ROW row) item->status=atoi(row[31]); item->trapper_hosts=row[32]; item->logtimefmt=row[33]; - item->valuemapid=atoi(row[34]); + ZBX_STR2UINT64(item->valuemapid, row[34]); +// item->valuemapid=atoi(row[34]); item->delay_flex=row[35]; } |