Hi Patrick, I asked our syslog-ng testers, and currently they are not aware of any issues with logging to Oracle, so if it was not working for you, please file a bug report at https://bugzilla.balabit.com/ describing the syslog-ng version and platform you use. As for the patch, it is most welcome, and many thanks for your work. From the legal side, we will need you to sign and fax us a contribution agreement (http://www.balabit.com/dl/CLA_patch.pdf). As you might know, syslog-ng has a commercial version as well, and the agreement is needed so that we can include your patch in the common codebase of the two versions. Regards, Robert Fekete Patrick H. wrote:
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
------------------------------------------------------------------------
______________________________________________________________________________ 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