[Tickets #9151] Re: Kronolith, Nag, Mnemo, Turba don't work with Oracle DB

bugs at horde.org bugs at horde.org
Wed Aug 18 18:12:57 UTC 2010


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/9151
------------------------------------------------------------------------------
  Ticket             | 9151
  Updated By         | robert at databee.org
  Summary            | Kronolith, Nag, Mnemo, Turba don't work with Oracle DB
  Queue              | Horde Framework Packages
  Version            | FRAMEWORK_3
  Type               | Bug
  State              | Feedback
  Priority           | 2. Medium
  Milestone          |
  Patch              |
  Owners             | Jan Schneider, Michael Rubinsky
------------------------------------------------------------------------------


robert at databee.org (2010-08-18 14:12) wrote:

I spent the whole day debugging and trying out stuff...
The following is as far as I got with the Problem:

All Database-Connections except one work fine.
It narrows done to the function _connect() in file  
horde-webmail-1.2.6/lib/Horde/Share/sql.php

I added the following check:
         $query  = 'select sysdate from dual';
         $result = $this->_write_db->query($query);
         if (is_a($result, 'PEAR_Error')) {
             Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
             Horde::logMessage(sprintf('RMZ: Error _write_db %s',  
print_r($this->_write_db, true)), __FILE__, __LINE__, PEAR_LOG_NOTICE);
             return $result;
         }

and it always fails at this point.

I positive example is the  function &listShares in the same file  
(roughly line 450..)
This one always works.

I'm not sure, what's failing, but the main functionality - adding,  
modfiying and viewing addresses, events and memos - is available.
So the connection does work most of the time.

I added a print_r($this->_write_db, true) for both - a working  
connection and a failing, but there is not much of a difference...

If I have to guess, I would say, that there is one more of these  
thingies missing:

             switch ($this->_write_db->phptype) {
             case 'oci8':
                 $this->_write_db->setOption('emulate_database', false);
                 break;

But I have no idea where.

So for your debúgging-pleasure, here is a extract from my log, first  
working, then failing:
I do use this connect-information:  
horde/HORDE at dwo/dbrmz.robbienet.local, where horde is the user, HORDE  
the password, dwo the host and dbrmz.robbienet.local the database  
service name.

-------------------------------------------------------------------------------------------
Working Connection:
cat error-db.txt
Aug 18 18:44:36 HORDE [notice] [kronolith] RMZ: Working _db  
MDB2_Driver_oci8 Object
(
     [string_quoting] => Array
         (
             [start] => '
             [end] => '
             [escape] => '
             [escape_pattern] => @
         )

     [identifier_quoting] => Array
         (
             [start] => "
             [end] => "
             [escape] => "
         )

     [uncommitedqueries] => 0
     [db_index] => 1
     [dsn] => Array
         (
             [phptype] => oci8
             [dbsyntax] => oci8
             [username] => horde
             [password] => HORDE
             [protocol] =>
             [hostspec] =>
             [port] =>
             [socket] =>
             [database] =>
             [mode] =>
             [persistent] =>
         )

     [connected_dsn] => Array
         (
             [phptype] => oci8
             [dbsyntax] => oci8
             [username] => horde
             [password] => HORDE
             [protocol] =>
             [hostspec] =>
             [port] =>
             [socket] =>
             [database] =>
             [mode] =>
             [persistent] =>
         )

     [connection] => Resource id #34
     [opened_persistent] =>
     [database_name] => dwo/dbrmz.robbienet.local
     [connected_database_name] =>
     [connected_server_info] =>
     [supported] => Array
         (
             [sequences] => 1
             [indexes] => 1
             [affected_rows] => 1
             [summary_functions] => 1
             [order_by_text] => 1
             [transactions] => 1
             [savepoints] => 1
             [current_id] => 1
             [limit_queries] => 1
             [LOBs] => 1
             [replace] => emulated
             [sub_selects] => 1
             [triggers] => 1
             [auto_increment] =>
             [primary_key] => 1
             [result_introspection] => 1
             [prepared_statements] => 1
             [identifier_quoting] => 1
             [pattern_escaping] => 1
             [new_link] => 1
         )

     [options] => Array
         (
             [ssl] =>
             [field_case] => 0
             [disable_query] =>
             [result_class] => MDB2_Result_%s
             [buffered_result_class] => MDB2_BufferedResult_%s
             [result_wrap_class] =>
             [result_buffering] => 1
             [fetch_class] => stdClass
             [persistent] =>
             [debug] => 1
             [debug_handler] => Array
                 (
                     [0] => Horde_Share_sql Object
                         (
                             [_db] => MDB2_Driver_oci8 Object
  *RECURSION*
                             [_write_db] => MDB2_Driver_oci8 Object
  *RECURSION*
                             [_params] => Array
                                 (
                                     [persistent] =>
                                     [username] => horde
                                     [password] => HORDE
                                     [database] => dwo/dbrmz.robbienet.local
                                     [charset] => utf-8
                                     [phptype] => oci8
                                     [hostspec] =>
                                 )

                             [_table] => kronolith_shares
                             [_shareObject] => Horde_Share_Object_sql
                             [_app] => kronolith
                             [_root] =>
                             [_cache] => Array
                                 (
                                 )

                             [_shareMap] => Array
                                 (
                                 )

                             [_listcache] => Array
                                 (
                                 )

                             [_sortList] =>
                         )

                     [1] => _selectDB
                 )

             [debug_expanded_output] =>
             [default_text_field_length] => 2000
             [lob_buffer_length] => 8192
             [log_line_break] =>

             [idxname_format] => %s_idx
             [seqname_format] => %s_seq
             [savepoint_format] => MDB2_SAVEPOINT_%s
             [statement_format] => MDB2_STATEMENT_%1$s_%2$s
             [seqcol_name] => id
             [quote_identifier] =>
             [use_transactions] => 1
             [decimal_places] => 2
             [portability] => 81
             [modules] => Array
                 (
                     [ex] => Extended
                     [dt] => Datatype
                     [mg] => Manager
                     [rv] => Reverse
                     [na] => Native
                     [fc] => Function
                 )

             [emulate_prepared] =>
             [datatype_map] => Array
                 (
                 )

             [datatype_map_callback] => Array
                 (
                 )

             [nativetype_map_callback] => Array
                 (
                 )

             [lob_allow_url_include] =>
             [bindname_format] => (?:\d+)|(?:[a-zA-Z][a-zA-Z0-9_]*)
             [max_identifiers_length] => 30
             [default_fk_action_onupdate] => RESTRICT
             [default_fk_action_ondelete] => RESTRICT
             [DBA_username] =>
             [DBA_password] =>
             [database_name_prefix] =>
             [emulate_database] =>
             [default_tablespace] =>
             [result_prefetching] =>
         )

     [sql_comments] => Array
         (
             [0] => Array
                 (
                     [start] => --
                     [end] =>

                     [escape] =>
                 )

             [1] => Array
                 (
                     [start] => /*
                     [end] => */
                     [escape] =>
                 )

         )

     [wildcards] => Array
         (
             [0] => %
             [1] => _
         )

     [as_keyword] =>  AS
     [warnings] => Array
         (
         )

     [debug_output] =>
     [in_transaction] =>
     [nested_transaction_counter] =>
     [has_transaction_error] =>
     [offset] => 0
     [limit] => 0
     [phptype] => oci8
     [dbsyntax] => oci8
     [last_query] => SELECT DISTINCT s.*  FROM kronolith_shares s   
LEFT JOIN kronolith_shares_users u ON u.share_id = s.share_id WHERE  
s.share_owner = 'rmarz' OR (bitand(s.perm_creator, 2) = 2) OR  
(bitand(s.perm_default, 2) = 2) OR ( u.user_uid = 'rmarz' AND  
(bitand(u.perm, 2) = 2)) ORDER BY s.attribute_name ASC
     [fetchmode] => 1
     [modules] => Array
         (
             [Datatype] => MDB2_Driver_Datatype_oci8 Object
                 (
                     [valid_default_values] => Array
                         (
                             [text] =>
                             [boolean] => 1
                             [integer] => 0
                             [decimal] => 0
                             [float] => 0
                             [timestamp] => 1970-01-01 00:00:00
                             [time] => 00:00:00
                             [date] => 1970-01-01
                             [clob] =>
                             [blob] =>
                         )

                     [lobs] => Array
                         (
                         )

                     [db_index] => 1
                 )

         )

     [destructor_registered] => 1
     [_debug] =>
     [_default_error_mode] =>
     [_default_error_options] =>
     [_default_error_handler] =>
     [_error_class] => PEAR_Error
     [_expected_errors] => Array
         (
         )

     [datatype] => MDB2_Driver_Datatype_oci8 Object
         (
             [valid_default_values] => Array
                 (
                     [text] =>
                     [boolean] => 1
                     [integer] => 0
                     [decimal] => 0
                     [float] => 0
                     [timestamp] => 1970-01-01 00:00:00
                     [time] => 00:00:00
                     [date] => 1970-01-01
                     [clob] =>
                     [blob] =>
                 )

             [lobs] => Array
                 (
                 )

             [db_index] => 1
         )

     [loaded_version_modules] => Array
         (
             [0] => datatype
         )

)
  [pid 17321 on line 479 of  
"/home/horde/horde-webmail-1.2.6/lib/Horde/Share/sql.php"]

---------------------------------------------------------------------------------------
Failing connection:
cat error-db.txt
Aug 18 18:44:36 HORDE [error] [kronolith] MDB2 Error: not found:  
[Error message: Could not select the database:  
dwo/dbrmz.robbienet.local]
  [pid 17321 on line 835 of  
"/home/horde/horde-webmail-1.2.6/lib/Horde/Share/sql.php"]
Aug 18 18:44:36 HORDE [notice] [kronolith] RMZ: Error _write_db  
MDB2_Driver_oci8 Object
(
     [string_quoting] => Array
         (
             [start] => '
             [end] => '
             [escape] => '
             [escape_pattern] => @
         )

     [identifier_quoting] => Array
         (
             [start] => "
             [end] => "
             [escape] => "
         )

     [uncommitedqueries] => 0
     [db_index] => 1
     [dsn] => Array
         (
             [phptype] => oci8
             [dbsyntax] => oci8
             [username] => horde
             [password] => HORDE
             [protocol] =>
             [hostspec] =>
             [port] =>
             [socket] =>
             [database] =>
             [mode] =>
             [persistent] =>
         )

     [connected_dsn] => Array
         (
             [phptype] => oci8
             [dbsyntax] => oci8
             [username] => horde
             [password] => HORDE
             [protocol] =>
             [hostspec] =>
             [port] =>
             [socket] =>
             [database] =>
             [mode] =>
             [persistent] =>
         )

     [connection] => Resource id #34
     [opened_persistent] =>
     [database_name] => dwo/dbrmz.robbienet.local
     [connected_database_name] =>
     [connected_server_info] =>
     [supported] => Array
         (
             [sequences] => 1
             [indexes] => 1
             [affected_rows] => 1
             [summary_functions] => 1
             [order_by_text] => 1
             [transactions] => 1
             [savepoints] => 1
             [current_id] => 1
             [limit_queries] => 1
             [LOBs] => 1
             [replace] => emulated
             [sub_selects] => 1
             [triggers] => 1
             [auto_increment] =>
             [primary_key] => 1
             [result_introspection] => 1
             [prepared_statements] => 1
             [identifier_quoting] => 1
             [pattern_escaping] => 1
             [new_link] => 1
         )

     [options] => Array
         (
             [ssl] =>
             [field_case] => 0
             [disable_query] =>
             [result_class] => MDB2_Result_%s
             [buffered_result_class] => MDB2_BufferedResult_%s
             [result_wrap_class] =>
             [result_buffering] => 1
             [fetch_class] => stdClass
             [persistent] =>
             [debug] => 1
             [debug_handler] => Array
                 (
                     [0] => Horde_Share_sql Object
                         (
                             [_db] => MDB2_Driver_oci8 Object
  *RECURSION*
                             [_write_db] => MDB2_Driver_oci8 Object
  *RECURSION*
                             [_params] => Array
                                 (
                                     [persistent] =>
                                     [username] => horde
                                     [password] => HORDE
                                     [database] => dwo/dbrmz.robbienet.local
                                     [charset] => utf-8
                                     [phptype] => oci8
                                     [hostspec] =>
                                 )

                             [_table] => kronolith_shares
                             [_shareObject] => Horde_Share_Object_sql
                             [_app] => kronolith
                             [_root] =>
                             [_cache] => Array
                                 (
                                 )

                             [_shareMap] => Array
                                 (
                                 )

                             [_listcache] => Array
                                 (
                                 )

                             [_sortList] =>
                         )

                     [1] => _selectDB
                 )

             [debug_expanded_output] =>
             [default_text_field_length] => 2000
             [lob_buffer_length] => 8192
             [log_line_break] =>

             [idxname_format] => %s_idx
             [seqname_format] => %s_seq
             [savepoint_format] => MDB2_SAVEPOINT_%s
             [statement_format] => MDB2_STATEMENT_%1$s_%2$s
             [seqcol_name] => id
             [quote_identifier] =>
             [use_transactions] => 1
             [decimal_places] => 2
             [portability] => 81
             [modules] => Array
                 (
                     [ex] => Extended
                     [dt] => Datatype
                     [mg] => Manager
                     [rv] => Reverse
                     [na] => Native
                     [fc] => Function
                 )

             [emulate_prepared] =>
             [datatype_map] => Array
                 (
                 )

             [datatype_map_callback] => Array
                 (
                 )

             [nativetype_map_callback] => Array
                 (
                 )

             [lob_allow_url_include] =>
             [bindname_format] => (?:\d+)|(?:[a-zA-Z][a-zA-Z0-9_]*)
             [max_identifiers_length] => 30
             [default_fk_action_onupdate] => RESTRICT
             [default_fk_action_ondelete] => RESTRICT
             [DBA_username] =>
             [DBA_password] =>
             [database_name_prefix] =>
             [emulate_database] =>
             [default_tablespace] =>
             [result_prefetching] =>
         )

     [sql_comments] => Array
         (
             [0] => Array
                 (
                     [start] => --
                     [end] =>

                     [escape] =>
                 )

             [1] => Array
                 (
                     [start] => /*
                     [end] => */
                     [escape] =>
                 )

         )

     [wildcards] => Array
         (
             [0] => %
             [1] => _
         )

     [as_keyword] =>  AS
     [warnings] => Array
         (
         )

     [debug_output] =>
     [in_transaction] =>
     [nested_transaction_counter] =>
     [has_transaction_error] =>
     [offset] => 0
     [limit] => 0
     [phptype] => oci8
     [dbsyntax] => oci8
     [last_query] => ALTER SESSION SET CURRENT_SCHEMA =  
"DWO/DBRMZ.ROBBIENET.LOCAL"
     [fetchmode] => 1
     [modules] => Array
         (
         )

     [destructor_registered] => 1
     [_debug] =>
     [_default_error_mode] =>
     [_default_error_options] =>
     [_default_error_handler] =>
     [_error_class] => PEAR_Error
     [_expected_errors] => Array
         (
         )

)
  [pid 17321 on line 836 of  
"/home/horde/horde-webmail-1.2.6/lib/Horde/Share/sql.php"]








More information about the bugs mailing list