diff options
| author | alex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-07-04 11:27:27 +0000 |
|---|---|---|
| committer | alex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-07-04 11:27:27 +0000 |
| commit | 87284087f0b676cf85589eab268bfd69d290f968 (patch) | |
| tree | 23b2ca8aafd331565358aa21f9582e6adb0fc723 /src | |
| parent | 621b3e8d4771f21e4ac620f957abdb5dc8573fd6 (diff) | |
| download | zabbix-87284087f0b676cf85589eab268bfd69d290f968.tar.gz zabbix-87284087f0b676cf85589eab268bfd69d290f968.tar.xz zabbix-87284087f0b676cf85589eab268bfd69d290f968.zip | |
- added server-side transactions for PostgreSQL (Alexei)
- fixed housekeeper to run as multiple transations (Alexei)
git-svn-id: svn://svn.zabbix.com/trunk@4425 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
| -rw-r--r-- | src/libs/zbxdb/db.c | 15 | ||||
| -rw-r--r-- | src/zabbix_server/housekeeper/housekeeper.c | 6 | ||||
| -rw-r--r-- | src/zabbix_server/nodewatcher/events.c | 20 | ||||
| -rw-r--r-- | src/zabbix_server/nodewatcher/history.c | 20 |
4 files changed, 36 insertions, 25 deletions
diff --git a/src/libs/zbxdb/db.c b/src/libs/zbxdb/db.c index 96934207..a1cc71aa 100644 --- a/src/libs/zbxdb/db.c +++ b/src/libs/zbxdb/db.c @@ -244,6 +244,9 @@ void zbx_db_begin(void) #ifdef HAVE_MYSQL zbx_db_execute("%s","begin;"); #endif +#ifdef HAVE_POSTGRESQL + zbx_db_execute("%s","begin;"); +#endif #ifdef HAVE_SQLITE3 sqlite_transaction_started++; @@ -251,7 +254,7 @@ void zbx_db_begin(void) { php_sem_acquire(&sqlite_access); - zbx_db_execute("begin;"); + zbx_db_execute("%s","begin;"); } else { @@ -278,7 +281,10 @@ void zbx_db_begin(void) void zbx_db_commit(void) { #ifdef HAVE_MYSQL - zbx_db_execute("commit;"); + zbx_db_execute("%s","commit;"); +#endif +#ifdef HAVE_POSTGRESQL + zbx_db_execute("%s","commit;"); #endif #ifdef HAVE_SQLITE3 @@ -289,7 +295,7 @@ void zbx_db_commit(void) if(sqlite_transaction_started == 1) { - zbx_db_execute("commit;"); + zbx_db_execute("%s","commit;"); sqlite_transaction_started = 0; @@ -319,6 +325,9 @@ void zbx_db_rollback(void) #ifdef HAVE_MYSQL zbx_db_execute("rollback;"); #endif +#ifdef HAVE_POSTGRESQL + zbx_db_execute("rollback;"); +#endif #ifdef HAVE_SQLITE3 if(sqlite_transaction_started > 1) diff --git a/src/zabbix_server/housekeeper/housekeeper.c b/src/zabbix_server/housekeeper/housekeeper.c index 7c134dd6..27aab5ff 100644 --- a/src/zabbix_server/housekeeper/housekeeper.c +++ b/src/zabbix_server/housekeeper/housekeeper.c @@ -321,7 +321,8 @@ int main_housekeeper_loop() DBconnect(ZBX_DB_CONNECT_NORMAL); - DBbegin(); +/* Transaction is not required here. It causes timeouts under MySQL */ +/* DBbegin();*/ /* zbx_setproctitle("housekeeper [removing deleted hosts]");*/ @@ -355,7 +356,8 @@ int main_housekeeper_loop() zbx_setproctitle("housekeeper [vacuuming database]"); - DBcommit(); +/* Transaction is not required here. It causes timeouts under MySQL */ +/* DBcommit();*/ DBvacuum(); diff --git a/src/zabbix_server/nodewatcher/events.c b/src/zabbix_server/nodewatcher/events.c index b6859959..e503c162 100644 --- a/src/zabbix_server/nodewatcher/events.c +++ b/src/zabbix_server/nodewatcher/events.c @@ -146,19 +146,19 @@ void main_eventsender() master_nodeid = get_master_node(CONFIG_NODEID); - if(master_nodeid == 0) return; - - result = DBselect("select nodeid,event_lastid from nodes"); - - while((row = DBfetch(result))) + if(master_nodeid != 0) { - nodeid=atoi(row[0]); - ZBX_STR2UINT64(lastid,row[1]) + result = DBselect("select nodeid,event_lastid from nodes"); - process_node(nodeid, master_nodeid, lastid); - } + while((row = DBfetch(result))) + { + nodeid=atoi(row[0]); + ZBX_STR2UINT64(lastid,row[1]) - DBfree_result(result); + process_node(nodeid, master_nodeid, lastid); + } + DBfree_result(result); + } DBcommit(); } diff --git a/src/zabbix_server/nodewatcher/history.c b/src/zabbix_server/nodewatcher/history.c index 0eb425bc..beb82127 100644 --- a/src/zabbix_server/nodewatcher/history.c +++ b/src/zabbix_server/nodewatcher/history.c @@ -349,19 +349,19 @@ void main_historysender() master_nodeid = get_master_node(CONFIG_NODEID); - if(master_nodeid == 0) return; - - result = DBselect("select nodeid from nodes"); - - while((row = DBfetch(result))) + if(master_nodeid != 0) { - nodeid=atoi(row[0]); - ZBX_STR2UINT64(lastid,row[1]) + result = DBselect("select nodeid from nodes"); - process_node(nodeid, master_nodeid); - } + while((row = DBfetch(result))) + { + nodeid=atoi(row[0]); + ZBX_STR2UINT64(lastid,row[1]) - DBfree_result(result); + process_node(nodeid, master_nodeid); + } + DBfree_result(result); + } DBcommit(); } |
