summaryrefslogtreecommitdiffstats
path: root/plugins/omoracle
Commit message (Collapse)AuthorAgeFilesLines
* milestone: added module config namesRainer Gerhards2011-07-201-0/+1
|
* added work-around for bug in gtls, which causes fd leak when using TLSBojan Smojver2011-02-231-0/+1
| | | | | | | | The capability has been added for module to specify that they do not like being unloaded. related bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=222 Signed-off-by: Rainer Gerhards <rgerhards@adiscon.com>
* Fix a potential missing '\0' on too long strings.Luis Fernando Muñoz Mejías2010-11-301-4/+15
| | | | | | | | | | | | By implementing a trivial strlcpy it's much easier to detect string truncations and react to them. This also gives a noticeable speedup in buffer handling (can be HUGE), since strlcpy() doesn't clear all the buffer entry before writing data. Converted all uses of strncpy() into strlcpy(). Also, we don't need to check for some null pointers, as there are no malloc-like operations in the doAction loop.
* Give even better outputLuis Fernando Munoz Mejias2009-11-121-9/+23
| | | | | Tell which statement is failing, which element in the batch, and give its details.
* Improve the debug messagesLuis Fernando Munoz Mejias2009-11-121-8/+8
| | | | Improve traceability while testing.
* Debug output to find out a crashLuis Fernando Munoz Mejias2009-11-121-1/+5
|
* Report errors when OCI_SUCCESS_WITH_INFO happensLuis Fernando Munoz Mejias2009-11-121-1/+29
|
* Improve the handling of OCI_SUCCESS_WITH_INFO.Luis Fernando Munoz Mejias2009-11-121-3/+6
| | | | | Stop considering it as an error, and make it display the information from the Oracle server.
* docLuis Fernando Munoz Mejias2009-11-121-3/+3
|
* If the server disconnects the handle is no longer valid and we need toLuis Fernando Munoz Mejias2009-11-121-0/+3
| | | | | call tryResume(), so we have to return RS_RET_SUSPENDED. Otherwise, we may keep losing messages until rsyslog is restarted.
* Make it recover from errors on insertions.Luis Fernando Muñoz Mejías2009-04-291-5/+4
| | | | | | | | | If the database rejected some entry, making the statement fail on it, the batch was not cleaned and the same values were retried over and over, causing a cascade of failures and a denial of service. We use now OCI_BATCH_ERRORS so that everything valid in the batch is inserted, and rejected values can be discarded.
* Replace get_db_statement by a template.Luis Fernando Muñoz Mejías2009-04-291-25/+13
| | | | | | | | | | | | | Instead of reading a complete line, we'll use a template and delegate in the core to read such template. Then, all omoracle has to do is to find that template and use it as the prepared statement. I'm not sure if this is the correct approach, though. It has to dig too much into rsyslog's structures... txt_statement is stored in a private area, so that we don't mess too much with rsyslog's internals (I still don't feel comfortable with this much digging into template structures).
* Add the $OmoracleBatchItemSize directiveLuis Fernando Muñoz Mejías2009-04-291-17/+29
| | | | | | | | | | | | | | | | This directive controls the amount of memory needed for properties in the batch. Users should specify the largest value they expect in the statement. As per Rainer's comment: on MAX_BUFSIZE: I'd tend to make this configurable, because with RFC5424 messages can be much longer and RFC5425 now recommends a minimum maximum size of 8K. So we let users to choose. Maybe we need a sensible default value to make users' lifes easier? Also, the old non-vector based interface is not supported anymore. I broke it already when moving to this stage.
* Add licensing information.Luis Fernando Muñoz Mejías2009-04-292-0/+10
| | | | | I'm not sure if GPLv3 contemplates the ability to link to proprietary software, if it was previous work. I explicitly allow linking to OCI.
* added a new error code for too-old rsyslog coreRainer Gerhards2009-04-161-1/+1
| | | | | which can be emittend when plugin can not load due to missing core functionality.
* Fixing the batch insertions.Luis Fernando Muñoz Mejías2009-04-161-26/+37
| | | | | | | | | | | Previous versions inserted garbage (the pointer was interpreted as the string itself). It seems inserting arrays of strings is not that easy with OCI. This approach consumes 2KB per entry in the batch, so if you have batches of size 1000 you'll be using 2MB for the batch. This size doesn't change, anyways and the risk of leaking memory is gone. OCI doesn't deal well with batches of strings. :(
* Add the callback for OCIBindDynamic.Luis Fernando Muñoz Mejías2009-04-161-0/+28
| | | | Let's hope it works.
* Add some debugging outputLuis Fernando Muñoz Mejías2009-04-161-0/+1
|
* Make the counting of bind parameters aware of literals.Luis Fernando Muñoz Mejías2009-04-161-3/+9
| | | | | Literal strings passed in the statement may contain ':', let's not count them.
* Fixed a mem leakLuis Fernando Muñoz Mejías2009-04-161-0/+1
|
* Convert to the array-based interface.Luis Fernando Muñoz Mejías2009-04-162-41/+164
| | | | | | | | | | | | | We'll receive a single statement to be prepared and a batch size. Then, doAction will execute the statement only once per batch hit, making the process much more efficient. This will reduce network and DB server overhead. The downside is that this version cannot be used with rsyslog v3 anymore. If anyone is interested on backporting the module, they should choose all patches up to this one. Better documentation may follow.
* Stop omoracle losing messages on rsyslog shutdown.Luis Fernando Muñoz Mejías2009-04-091-23/+42
| | | | | | When rsyslog shuts down, we must send and commit any pending messages or information will be lost. It will make rsyslog's shut down slower, but also more reliable.
* Solve a memory leak when freeing Oracle instances.Luis Fernando Muñoz Mejías2009-04-091-1/+0
|
* Make it work in batches of statements.Luis Fernando Muñoz Mejías2009-04-091-11/+60
| | | | | | | | | | Currently, all statements to be executed are stored on the same structure. When the batch size is reached, all statements are executed in a single transaction, and then committed. There are many corner cases in which an error may happen and the batch may be left in an inconsistent state, perhaps leaking memory or crashing. They will be fixed.
* some small changes (as suggestion)Rainer Gerhards2009-04-011-8/+6
|
* Convert the module configuration to $Action... directives.Luis Fernando Muñoz Mejías2009-04-011-23/+43
| | | | | | | | | | Instead of using the old-style configuration parameters, use $... directives, which lead to simpler code, and also should make user's configurations simpler. Needs some testing. Currently, the supported directives are $OmoracleDB, $OmoracleDBUser and $OmoracleDBPassword. $OmoracleDBStatement and $OmoracleDBBatchSize may follow.
* Add a SELinux policy that allows the module to load on RHEL5.Luis Fernando Muñoz Mejías2009-04-011-0/+13
|
* Make tryResume not to retry the last action, but just to reconnect.Luis Fernando Muñoz Mejías2009-04-011-4/+1
| | | | | The core will call the action if tryResume succeeds, no need to make it from here.
* added some (hopefully helpful) comments on the calling IFRainer Gerhards2009-03-251-0/+27
|
* Remove useless dbgprintf and add documentation.Luis Fernando Muñoz Mejías2009-03-251-2/+10
|
* Add proper indentation (despite Emacs) and support for retrying.Luis Fernando Muñoz Mejías2009-03-251-78/+90
| | | | | | | | | | Emacs doesn't allow for proper indentation with rsyslog's macros (no curly brackets, so it doesn't know where functions start), so I had to manually add such indentation. Add support for retrying actions, namely, disconnect from the DB, re-connecting and re-executing the last prepared statement. Needs to be tested.
* Add the ability to actually run statements.Luis Fernando Muñoz Mejías2009-03-251-17/+25
| | | | | | | | | | | | | | It now runs SQL statements given as templates. In this case, the template is given on the configuration file and the core passes the SQL statement correctly formatted to doAction. I still need to decide how to structure this for having prepared statements (prepare them at parseSelector time) and then make doAction to only bind arguments and execute. It commits after each statement, which is awfully slow but good enough for the moment. Next step after that is have a buffer of arguments, and make doAction store new data as it arrives, then run the statement only when the buffer is almost full. Or something like that.
* Add the ability to connect to the DB based on the config line.Luis Fernando Muñoz Mejías2009-03-251-14/+44
| | | | | | It will read and parse the config line (this code is not yet rock-solid) and connect to the database at initialization time. I also cleaned some debug messages that are not needed anymore.
* Add handlers on modInit.Luis Fernando Muñoz Mejías2009-03-251-9/+69
| | | | This avoids crashes on initialization.
* Add all other blocks (macros) needed to make this module work.Luis Fernando Muñoz Mejías2009-03-251-13/+48
| | | | | | | At this stage they are all empty, but at least it should be possible to instantiate the module and perform some basic tests. Fix some compilation warnings
* Include omoracle in the build system.Luis Fernando Muñoz Mejías2009-03-251-1/+1
| | | | | Add configure option to build the oracle support, named --enable-oracle and fix the Makefile.am accordingly.
* Start the output module for Oracle.Luis Fernando Muñoz Mejías2009-03-253-0/+170
Currently, resources are allocated, freed and the code compiles. No tests yet.