[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
OpenLDAP and DB2 backend.
Hi list,
i'm trying to use IBM's DB2 as a backend for OpenLDAP. I read the common
documentation and tried it also with PostgreSQL, which worked fine. I
can also connect and query the database with the "isql GOYALDAP -v"
command. The ldap tables are also created and filled with the test data
from the openldap ibm-db2 examples.
But when i fire up the slapd I get the following debug output, which
says, that something is wrong with the database connection:
"SQLConnect() to database 'GOYALDAP' as user 'db2inst1' failed".
Does someone has a clue what the problem is? Or does someone has a
working configuration with OpenLDAP + IBM DB2 + unixODBC and can send it
to me for studying?
Thanks for help, Roman.
---- slapd debug messages ----------------------------------------------
slapd startup: initiated.
==>backsql_db_open(): testing RDBMS connection
backsql_db_open(): concat func not specified (use "concat_pattern"
directive in slapd.conf)
backsql_db_open(): setting 'upper(ldap_entries.dn)=upper(?)' as default
backsql_db_open(): objectclass mapping SQL statement not specified (use
"oc_query" directive in slapd.conf)
backsql_db_open(): setting 'SELECT
id,name,keytbl,keycol,create_proc,create_keyval,delete_proc,expect_return FROM ldap_oc_mappings' by default
backsql_db_open(): attribute mapping SQL statement not specified (use
"at_query" directive in slapd.conf)
backsql_db_open(): setting 'SELECT
name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return,sel_expr_u FROM ldap_attr_mappings WHERE oc_map_id=?' by default
backsql_db_open(): entry deletion SQL statement not specified (use
"delentry_query" directive in slapd.conf)
backsql_db_open(): setting 'DELETE FROM ldap_entries WHERE id=?' by
default
==>backsql_get_db_conn()
==>backsql_open_db_conn()
backsql_open_db_conn: SQLConnect() to database 'GOYALDAP' as user
'db2inst1' failed:
Return code: -1
Native error code: -1013
SQL engine state:
Message:
backsql_get_db_conn(): could not get connection handle -- returning NULL
backsql_db_open(): connection failed, exiting
backend_startup: bi_db_open(0) failed! (1)
slapd shutdown: initiated
==>backsql_db_close()
<==backsql_db_close()
slapd shutdown: freeing system resources.
==>backsql_db_destroy()
==>backsql_free_db_env()
<==backsql_free_db_env()
==>destroy_schema_map()
<==destroy_schema_map()
<==backsql_db_destroy()
slapd stopped.
connections_destroy: nothing to destroy.
---- /etc/odbc.ini -----------------------------------------------------
[GOYALDAP]
Description = Goya DB2
Driver = /opt/IBM/db2/V8.1/lib/libdb2.so
Database = goyaldap
Servername = localhost
UserName = db2inst1
Password = secret
---- /etc/odbcinst.ini -------------------------------------------------
[ODBC]
Trace = Yes
TraceFile = /var/log/odbc-trace.log
---- /etc/ldap/slapd.conf ----------------------------------------------
# include <filename>
#
# Read additional configuration information from the given
# file before continuing with the next line of the current file.
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
# Schema check allows for forcing entries to
# match schemas for their objectClasses's
schemacheck on
# pidfile <filename>
#
# The (absolute) name of a file that will hold the slapd
# server's process ID ( see getpid(2) ) if started without the
# debugging command line option.
pidfile /var/run/slapd/slapd.pid
# argsfile <filename>
#
# The (absolute) name of a file that will hold the slapd server's
# command line options if started without the debugging command line
# option.
argsfile /var/run/slapd.args
# loglevel <integer>
#
# Specify the level at which debugging statements and
# operation statistics should be syslogged (currently logged to the
# syslogd(8) LOG_LOCAL4 facility). Log levels are additive, and
# available levels are:
#
# 1 trace function calls
# 2 debug packet handling
# 4 heavy trace debugging
# 8 connection management
# 16 print out packets sent and received
# 32 search filter processing
# 64 configuration file processing
# 128 access control list processing
# 256 stats log connections/operations/results
# 512 stats log entries sent
# 1024 print communication with shell backends
# 2048 entry parsing
loglevel 256
# modulepath <pathspec>
#
# Specify a list of directories to search for loadable modules.
# Typically the path is colon-separated but this depends on the
# operating system.
modulepath /usr/lib/ldap
# moduleload <filename>
#
# Specify the name of a dynamically loadable module to load. The
# filename may be an absolute path name or a simple filename. Non-
# absolute names are searched for in the directories specified by the
# modulepath option. This option and the modulepath option are only
# usable if slapd was compiled with --enable-modules.
#moduleload back_bdb
moduleload back_sql
# database <databasetype>
#
# Mark the beginning of a new database instance
# definition. <databasetype> should be one of bdb, dnssrv, ldap, ldbm,
# meta, monitor, null, passwd, perl, shell, sql, or tcl, depending on
# which backend will serve the database.
database sql
suffix "o=sql,c=RU"
#rootdn "cn=root,o=sql,c=RU"
#rootpw dub13+
dbname GOYALDAP
dbuser db2inst1
dbpasswd dub13+
subtree_cond "upper(ldap_entries.dn) LIKE CONCAT('%',?)"
insentry_query "insert into ldap_entries (id,dn,oc_map_id,parent,keyval)
values ((select max(id)+1 from ldap_entries),?,?,?,?)"
upper_func "upper"
upper_needs_cast "yes"
create_needs_select "yes"
has_ldapinfo_dn_ru "no"