I have an Oracle 9i (9.2.0.1.0) database running on an old RedHat 8 server.
I have workstations running Ubuntu 8.04 using Oracle Instant Client 11.1.0.7.0 for Linux 32-bit.
Users of the servers and the workstations are defined in an OpenLDAP database and authentication is configured to use LDAP. Only root is defined in the workstations local /etc/passwd.
User root and users defined in the workstation local /etc/password can run sqlplus and connect using either TNSNAMES or EZCONNECT just fine.
User only defined in LDAP hang when trying to run sqlplus. When run interactively, it hangs right after sqlplus asks for username and password.
The client sqlnet.ora has
...
NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
SQLNET.AUTHENTICATION_SERVICES = (NONE)
TRACE_LEVEL_CLIENT=16
...
I have tried variations of these (and other) parameters and gotten the same results.
Review of the cli_XXXXX.trc file indicates it is finding and correctly resolving the TNSNAMES or building the correct EZCONNECT name.
It seems to be hanging when trying to authenticate the user at the operating system level
Does anyone have any fixes, workarounds, what-have-you? Right now the only fix I can come up with is adding all the users to the workstations thus negating much of the benefit of having LDAP.
The problem is that OpenLDAP is not supported by Oracle, so you're on your own with that problem.
The next thing I would try is to trace OpenLDAP (I'm sure there are some debugging options) to see
if it gets an LDAP request and what happens with it.
Also, concerning the hang: did you wait long enough?
If there is a network problem, it could be that you have to wait for a TCP timeout, which can take several minutes.
Then maybe you get an error, which might help you.
While the system is hanging, try running "netstat" to see if there are any connections in SYN_SENT status.
If a connection has that status for a longer time, something is probably not working, and there will be a timeout eventually.