Hi.
I'm having trouble against an Oracle 10 database using: - Solaris 10 Sparc - OpenLDAP 2.4.32 - unixODBC 2.2.14 - Oracle Instant Client 10.2.0.5.0
I get this errors:
50ae749e backsql_oc_get_attr_mapping(): error executing at_query "SELECT name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_r eturn,sel_expr_u FROM ldap_attr_mappings WHERE oc_map_id=?" for objectClass "inetOrgPerson" with param oc_id=1 50ae749e Return code: -1 50ae749e <==backsql_load_schema_map() 50ae749e backsql_db_open(): schema mapping failed, exiting 50ae749e backend_startup_one (type=sql, suffix="app=contentfilter,ou=app,ou=vodafone-pt,c=pt,o=vodafone"): bi_db_open failed! (1)
when I use this configuration file:
bash-3.2# cat ldap.conf # # See slapd.conf(5) for details on configuration options. # This file should NOT be world readable. # include /usr/local/etc/openldap/schema/core.schema include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/conf/inetorgperson.schema
pidfile /app/users/ldap/slapd.pid argsfile /app/users/ldap/slapd.args idletimeout 0 threads 32 timelimit 5
modulepath /opt/csw/libexec/openldap moduleload back_sql.la
####################################################################### # sql database definitions #######################################################################
database sql suffix "app=contentfilter,ou=app,ou=vodafone-pt,c=pt,o=vodafone" rootdn "vfsid=root,app=contentfilter,ou=app,ou=vodafone-pt,c=pt,o=vodafone" rootpw cu906B2H04cNE #dbname ORACLE10_FREE dbname ORACLE10 dbuser EREXTENSION dbpasswd ERSINPRD subtree_cond "UPPER(ldap_entries.dn) LIKE CONCAT('%',UPPER(?))" insentry_stmt "INSERT INTO ldap_entries (id,dn,oc_map_id,parent,keyval) VALUES (ldap_entry_ids.nextval,?,?,?,?)" upper_func UPPER has_ldapinfo_dn_ru no
readonly on access to * by dn="vfsid=root,app=contentfilter,ou=app,ou=vodafone-pt,c=pt,o=vodafone" read by users read by * auth
So I added this line to ldap.conf (oc_map_id=1 instead of oc_map_id=?) and this way I'm able to start LDAP: at_query "SELECT name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_r eturn,sel_expr_u FROM ldap_attr_mappings WHERE oc_map_id=1"
But then I get other issues related to the character "?" for example I'm unable to get results from the database if I use that character:
50afc6d1 backsql_get_attr_vals(): error executing attribute count query 'SELECT COUNT(*) FROM accounts,customer_attributes_values_t WHERE accounts.id=? AND customer_attributes_values_t.account_id=accounts.id and customer_attributes_values_t.attribute_id = 83' 50afc6d1 Return code: -1
50afc6d1 backsql_get_attr_vals(): error executing attribute count query 'SELECT COUNT(*) FROM ldap_entry_objclasses,ldap_entries,accounts WHERE accounts.id=? AND ldap_entries.id=ldap_entry_objclasses.entry_id AND ldap_entries.keyval=accounts.id and ldap_entries.oc_map_id=1' 50afc6d1 Return code: -1
Strange thing is that I have other machine which I'm migrating that works fine against same Oracle database but it uses: - Solaris 9 - OpenLDAP 2.3.24 - unixODBC 2.2.12 - Oracle Instant Client 10.2.0.3.0
I may try to downgrade to the "working" versions of unixODBC and Oracle Instant Client but I prefer to keep the ones I installed in the new machine. Same thing regarding OpenLdap version. Anyway I would like to understand the issue I'm facing instead of changing versions of software. Does someone know (and understand) what's going on with this?
Thanks, Nuno Barros