summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authoralex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-11-07 13:15:19 +0000
committeralex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-11-07 13:15:19 +0000
commitba54b831c7a024ca5ee408bbee13d53ca035ef7d (patch)
treed587ca6ea6595d536db54695eef3f33a6d2a8a7c /src
parent23bdb608fe93cf4a98683dae0a09fcca30aa9d1d (diff)
downloadzabbix-ba54b831c7a024ca5ee408bbee13d53ca035ef7d.tar.gz
zabbix-ba54b831c7a024ca5ee408bbee13d53ca035ef7d.tar.xz
zabbix-ba54b831c7a024ca5ee408bbee13d53ca035ef7d.zip
Misc changes.
git-svn-id: svn://svn.zabbix.com/trunk@3435 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
-rw-r--r--src/zabbix_server/events.c30
-rw-r--r--src/zabbix_server/nodewatcher/history.c37
-rw-r--r--src/zabbix_server/nodewatcher/nodewatcher.c11
-rw-r--r--src/zabbix_server/trapper/trapper.c2
4 files changed, 57 insertions, 23 deletions
diff --git a/src/zabbix_server/events.c b/src/zabbix_server/events.c
index ad456ec4..84dc259d 100644
--- a/src/zabbix_server/events.c
+++ b/src/zabbix_server/events.c
@@ -99,6 +99,9 @@ static void add_trigger_info(DB_EVENT *event)
******************************************************************************/
int process_event(DB_EVENT *event)
{
+ DB_RESULT result;
+ DB_ROW row;
+
zabbix_log(LOG_LEVEL_DEBUG,"In process_event(eventid:" ZBX_FS_UI64 ",triggerid:" ZBX_FS_UI64 ")",
event->eventid, event->triggerid);
@@ -106,17 +109,24 @@ int process_event(DB_EVENT *event)
if(event->eventid == 0)
{
- /* TODO Not correct! */
- event->eventid = DBinsert_id(
- DBexecute("insert into events(triggerid,clock,value) values(" ZBX_FS_UI64 ",%d,%d)",
- event->triggerid, event->clock, event->value),
- "events", "eventid");
- }
- else
- {
- DBexecute("insert into events(eventid,triggerid,clock,value) values(" ZBX_FS_UI64 "," ZBX_FS_UI64 ",%d,%d)",
- event->eventid,event->triggerid, event->clock, event->value);
+ result = DBselect("select event_maxid from nodes where nodeid=%d", CONFIG_NODEID);
+ row = DBfetch(result);
+
+ if(!row || DBis_null(row[0])==SUCCEED)
+ {
+ event->eventid = CONFIG_NODEID*(zbx_uint64_t)__UINT64_C(100000000000000) + 1;
+ }
+ else
+ {
+ ZBX_STR2UINT64(event->eventid, row[0]);
+ event->eventid++;
+ }
+ DBexecute("update nodes set event_maxid=" ZBX_FS_UI64 " where nodeid=%d",
+ event->eventid, CONFIG_NODEID);
+ DBfree_result(result);
}
+ DBexecute("insert into events(eventid,triggerid,clock,value) values(" ZBX_FS_UI64 "," ZBX_FS_UI64 ",%d,%d)",
+ event->eventid,event->triggerid, event->clock, event->value);
/* Cancel currently active alerts */
if(event->value == TRIGGER_VALUE_FALSE || event->value == TRIGGER_VALUE_TRUE)
diff --git a/src/zabbix_server/nodewatcher/history.c b/src/zabbix_server/nodewatcher/history.c
index c66f2aaf..fe81104b 100644
--- a/src/zabbix_server/nodewatcher/history.c
+++ b/src/zabbix_server/nodewatcher/history.c
@@ -84,7 +84,7 @@ static int process_node_history_str(int nodeid, int master_nodeid)
#define DATA_MAX 1024*1024
-// zabbix_log( LOG_LEVEL_WARNING, "In process_node(local:%d, event_lastid:" ZBX_FS_UI64 ")",nodeid, event_lastid);
+ zabbix_log( LOG_LEVEL_WARNING, "In process_node_history_str(nodeid:%d, master_nodeid:%d",nodeid, master_nodeid);
/* Begin work */
data = malloc(DATA_MAX);
@@ -95,7 +95,7 @@ static int process_node_history_str(int nodeid, int master_nodeid)
zbx_snprintf(sql,sizeof(sql),"select id,itemid,clock,value from history_str_sync where nodeid=%d order by id", nodeid);
- result = DBselectN(sql, 100000);
+ result = DBselectN(sql, 10000);
while((row=DBfetch(result)))
{
ZBX_STR2UINT64(id,row[0])
@@ -150,14 +150,18 @@ static int process_node_history_uint(int nodeid, int master_nodeid)
char sql[MAX_STRING_LEN];
int found = 0;
+ int start, end;
+
zbx_uint64_t id;
zbx_uint64_t itemid;
#define DATA_MAX 1024*1024
-// zabbix_log( LOG_LEVEL_WARNING, "In process_node(local:%d, event_lastid:" ZBX_FS_UI64 ")",nodeid, event_lastid);
+ zabbix_log( LOG_LEVEL_WARNING, "In process_node_history_uint(nodeid:%d, master_nodeid:%d)",nodeid, master_nodeid);
/* Begin work */
+ start = time(NULL);
+
data = malloc(DATA_MAX);
memset(data,0,DATA_MAX);
@@ -166,7 +170,7 @@ static int process_node_history_uint(int nodeid, int master_nodeid)
zbx_snprintf(sql,sizeof(sql),"select id,itemid,clock,value from history_uint_sync where nodeid=%d order by id", nodeid);
- result = DBselectN(sql, 100000);
+ result = DBselectN(sql, 10000);
while((row=DBfetch(result)))
{
ZBX_STR2UINT64(id,row[0])
@@ -193,6 +197,10 @@ static int process_node_history_uint(int nodeid, int master_nodeid)
DBfree_result(result);
free(data);
+ end = time(NULL);
+
+ zabbix_log( LOG_LEVEL_WARNING, "Spent %d seconds in process_node_history_uint",end-start);
+
return SUCCEED;
}
@@ -221,13 +229,16 @@ static int process_node_history(int nodeid, int master_nodeid)
char sql[MAX_STRING_LEN];
int found = 0;
+ int start, end;
+
zbx_uint64_t id;
zbx_uint64_t itemid;
#define DATA_MAX 1024*1024
-// zabbix_log( LOG_LEVEL_WARNING, "In process_node(local:%d, event_lastid:" ZBX_FS_UI64 ")",nodeid, event_lastid);
+ zabbix_log( LOG_LEVEL_WARNING, "In process_node_history(nodeid:%d, master_nodeid:%d",nodeid, master_nodeid);
/* Begin work */
+ start = time(NULL);
data = malloc(DATA_MAX);
memset(data,0,DATA_MAX);
@@ -237,22 +248,22 @@ static int process_node_history(int nodeid, int master_nodeid)
zbx_snprintf(sql,sizeof(sql),"select id,itemid,clock,value from history_sync where nodeid=%d order by id", nodeid);
- result = DBselectN(sql, 100000);
+ result = DBselectN(sql, 10000);
while((row=DBfetch(result)))
{
ZBX_STR2UINT64(id,row[0])
ZBX_STR2UINT64(itemid,row[1])
-// zabbix_log( LOG_LEVEL_WARNING, "Processing itemid " ZBX_FS_UI64, itemid);
+ zabbix_log( LOG_LEVEL_DEBUG, "Processing itemid " ZBX_FS_UI64, itemid);
found = 1;
zbx_snprintf(tmp,sizeof(tmp),"%d|%s|%s|%s\n", ZBX_TABLE_HISTORY,row[1],row[2],row[3]);
zbx_strlcat(data,tmp,DATA_MAX);
}
if(found == 1)
{
-// zabbix_log( LOG_LEVEL_WARNING, "Sending [%s]",data);
+ zabbix_log( LOG_LEVEL_DEBUG, "Sending [%s]",data);
if(send_to_node(master_nodeid, nodeid, data) == SUCCEED)
{
-// zabbix_log( LOG_LEVEL_WARNING, "Updating nodes.history_lastid");
+ zabbix_log( LOG_LEVEL_WARNING, "Updating nodes.history_lastid");
DBexecute("update nodes set history_lastid=" ZBX_FS_UI64 " where nodeid=%d", id, nodeid);
DBexecute("delete from history_sync where nodeid=%d and id<=" ZBX_FS_UI64, nodeid, id);
}
@@ -264,6 +275,10 @@ static int process_node_history(int nodeid, int master_nodeid)
DBfree_result(result);
free(data);
+ end = time(NULL);
+
+ zabbix_log( LOG_LEVEL_WARNING, "Spent %d seconds in process_node_history",end-start);
+
return SUCCEED;
}
@@ -285,7 +300,7 @@ static int process_node_history(int nodeid, int master_nodeid)
******************************************************************************/
static void process_node(int nodeid, int master_nodeid)
{
-// zabbix_log( LOG_LEVEL_WARNING, "In process_node(local:%d, master_nodeid:" ZBX_FS_UI64 ")",nodeid, master_nodeid);
+ zabbix_log( LOG_LEVEL_WARNING, "In process_node(local:%d, master_nodeid:" ZBX_FS_UI64 ")",nodeid, master_nodeid);
process_node_history(nodeid, master_nodeid);
process_node_history_uint(nodeid, master_nodeid);
@@ -334,4 +349,6 @@ void main_historysender()
}
DBfree_result(result);
+
+ zabbix_log( LOG_LEVEL_WARNING, "In main_historysender() END");
}
diff --git a/src/zabbix_server/nodewatcher/nodewatcher.c b/src/zabbix_server/nodewatcher/nodewatcher.c
index f45173c1..2ba0c2d8 100644
--- a/src/zabbix_server/nodewatcher/nodewatcher.c
+++ b/src/zabbix_server/nodewatcher/nodewatcher.c
@@ -276,9 +276,12 @@ static int compare_checksums()
******************************************************************************/
int main_nodewatcher_loop()
{
+ int start, end;
+
// zabbix_log( LOG_LEVEL_WARNING, "In main_nodeupdater_loop()");
for(;;)
{
+ start = time(NULL);
zbx_setproctitle("connecting to the database");
zabbix_log( LOG_LEVEL_WARNING, "Starting sync with nodes");
@@ -300,8 +303,12 @@ int main_nodewatcher_loop()
DBclose();
zbx_setproctitle("sender [sleeping for %d seconds]", 30);
+ end = time(NULL);
- zabbix_log( LOG_LEVEL_WARNING, "Seleeping 30 seconds");
- sleep(30);
+ if(end-start<30)
+ {
+ zabbix_log( LOG_LEVEL_WARNING, "Sleeping %d seconds", 30-(end-start));
+ sleep(30-(end-start));
+ }
}
}
diff --git a/src/zabbix_server/trapper/trapper.c b/src/zabbix_server/trapper/trapper.c
index 25623294..08aa4f56 100644
--- a/src/zabbix_server/trapper/trapper.c
+++ b/src/zabbix_server/trapper/trapper.c
@@ -266,7 +266,7 @@ void process_trapper_child(int sockfd)
else
{
bufptr += nbytes;
- zabbix_log( LOG_LEVEL_WARNING, "Old protocol");
+ zabbix_log( LOG_LEVEL_DEBUG, "Old protocol");
while ((nbytes = read(sockfd, bufptr, buffer + ZBX_MAX_PACKET_LEN - bufptr - 1)) != -1 && nbytes != 0)
{
if(read_len < buffer + ZBX_MAX_PACKET_LEN - bufptr - 1)