Hi there,

since I have been ordered to maintain "NDOUtils Oracle for Nagios" I 
have had a closer look at the libdbi because new projects based on 
Nagios/NDOUtils are in development. Meanwhile there has been a fork of 
Nagios named Icinga and the NDO has been renamed to IDO. Explained 
shortly, IDO gets Nagios Status Data from an Event Broker Module and 
inserts those into a DB.

Current release 0.8.1 of Icinga [1] heavily uses the libdbi instead of 
by-RDBM-Code (some queries are of course DB-specific). Nagios as is will 
relay soon on Merlin [2] which also uses the libdbi.

I've been testing Icinga IDO against libdbi and the Oracle driver. 
Connection is fine, but a single insert-query against Oracle 11g fails 
throwing an address mapping error.

Jun 16 13:41:41 nagios-test ido2db: Error: database query failed for 
'INSERT INTO instances (instance_name) VALUES ('default')' - '3113: 
ORA-03113: end-of-file on communication channel Process ID: 27414 
Session ID: 253 Serial number: 8195 '

Catching up the trace

ORA-07445: exception encountered: core dump [kpoal8()+4728] [SIGSEGV] 
[ADDR:0x1100] [PC:0x1CFF9C4] [Addre
ss not mapped to object] []

I will need to step further into the driver but I wanted to ask

* is the driver still in development or left alone?
* possibility of libdbi interface using parameter bindings
* better to debug/rewrite the code by myself or take ocilib as a layer beneath?
* this relays mainly to Vincent: How stable is the ocilib concerning not 
changing main interface functions anymore?

If I have to, I will apply some of my ressources onto this project, as part of 
Icinga IDO for Oracle.

Kind regards,
Michael





[1] http://www.icinga.org
[2] http://www.op5.org/community/projects/merlin

Markus Hoenicka wrote the following on 04.05.2009 22:42:
> vincent rogier writes:
>  > For example, instead of using cached values (that need extra memory from
>  > dbbdi core module while the driver sometimes already hold cached values),
>  > the public dbdbi functions like dbi_result_get_int() could use callback to
>  > specific drivers functions that delivers the value.
>  > This would solve as well the problem of strong typed columns. It would be
>  > the driver to return the value as requested, whatever the real type of the
>  > column, making its own conversions. That's what OCILIB does. The 
> application
>  > requests a column value with a desired type and OCILIB makes conversion if
>  > needed and possible.
>
> The current cvs revision of libdbi has a lightweight variant of this
> approach:
>
> long long dbi_result_get_as_longlong();
> long long dbi_result_get_as_longlong_idx();
> char *dbi_result_get_as_string_copy();
> char *dbi_result_get_as_string_copy_idx();
>
> These functions return any value as either a long long integer or a
> string after converting the value returned by the database
> engine. Client programs can cast the integers to whatever they
> need. I figured this would cover the most urgent needs.
>
>  > Introducing this possibility through callbacks would not break the actuals
>  > drivers. The libdbi core could check if the driver supports this feature 
> and
>  > then call its functions. If not, it could work as it does now...
>  > 
>
> This is an interesting idea how to introduce this feature without
> breaking backwards compatibility. Thanks for sharing this.
>
> regards,
> Markus
>
>   

-- 
DI (FH) Michael Friedrich
michael.friedr...@univie.ac.at
Tel: +43 1 4277 14359

Vienna University Computer Center
Universitaetsstrasse 7 
A-1010 Vienna, Austria  


------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Libdbi-drivers-devel mailing list
Libdbi-drivers-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libdbi-drivers-devel

Reply via email to