Followup. I finished adding flush_lines and flush_timeout to the sql driver. They do what you'd expect, a commit after X number of lines or X seconds. I also fixed a bug that was causing a "." (dot) in the table name to be replaced by an underscore (dots are fully valid in oracle as they denote schema-table separation). I'm starting on converting the code over to using bind variables as well. The performance difference between plain text queries and prepared statements is very large. Especially since we'll be doing hundreds of inserts per second. One of the users in the IRC channel suggested I ask about any licensing issues. Not sure what exactly since the syslog-ng code is GPL, but figured I'd ask anyway. If all is kosher, once all my changes are complete, I can send a patch file. Sent: Tuesday, March 02, 2010 12:46:12 PM From: Patrick H. <syslogng@feystorm.net> To: syslog-ng@lists.balabit.hu Subject: [syslog-ng] commit with the oracle sql driver
So, extensive googling has failed me on this. I'm using the sql driver to output to an oracle database, with debugging mode, I can see that the insert queries are indeed being executed, however my tables remain empty. I've been through the source code, and it doesnt look like a commit is being performed anywhere. Though my google efforts, I did find one reference where someone patched the libdbi-drivers oracle driver to do a commit on success after every query, but that is insanely expensive (and ugly).
I have started modifying the code to add the flush_lines and flush_timeout option to the sql driver. But before I got too carried away, I was wondering why this is the way it is the way it is, or if I'm missing something. ------------------------------------------------------------------------
______________________________________________________________________________ Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng Documentation: http://www.balabit.com/support/documentation/?product=syslog-ng FAQ: http://www.campin.net/syslog-ng/faq.html