OID Dynamic Discovery
Date: Wed, 18 Mar 2009 16:40:06 -0700
Message-ID: <bf46380903181640t13bbd113o9ea14d359ffebad2_at_mail.gmail.com>
Is anyone successfully using OID Dynamic Discovery?
Here's why I ask.
I have setup the SRV DNS record that allows this to work: http://download.oracle.com/docs/cd/B28196_01/idmanage.1014/b15991/server.htm#i1053850
The purpose of this is to allow installing Oracle without configuring
sqlnet.ora or ldap.ora
to find the OID server for resolving database names.
It works almost as advertised.
Linux:
/etc/resolv.conf must include a 'domain line'
Windows:
I haven't been able to get it to work without setting the ORA_LDAP_DNS
environment variable
to the IP of our DNS server.
But, even when it works, it is unusable.
When doing a tnsping using and ldap.ora file, the lookup is consistently very fast
When using dynamic discovery, the lookup is consistently slow, but by varying amounts.
The few tests I ran anywhere from 1.5 - 5.5 seconds. Normally this is .1 or less seconds.
Running strace -tt -o oid_tnsping_with_auto_discovery_4.trc tnsping ORCL revealed the problem (this occurs on both linux and windows, though I have no way to trace windows)
Notice that socket # 6 is opened, then waited on for 5 seconds with a
nanosleep call.
Then the socket is closed, and everything proceeds normally.
13:30:39.207371 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 6
13:30:39.207470 sendto(6,
"\0\1\1\0\0\1\0\0\0\0\0\0\6_ldaps\4_tcp\7radisys"..., 41, 0,
{sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("10.1.100.50")},
16) = 41
13:30:39.207594 select(7, [6], NULL, NULL, {4, 0}) = 1 (in [6], left {4, 0})
13:30:39.207798 recvfrom(6,
"\0\1\205\200\0\1\0\0\0\1\0\0\6_ldaps\4_tcp\7radisys"..., 512, 0, NULL,
NULL) = 106
13:30:39.207923 sendto(6,
"\0\2\1\0\0\1\0\0\0\0\0\0\6_ldaps\4_tcp\7radisys"..., 41, 0,
{sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("10.1.100.51")},
16) = 41
13:30:39.208053 select(7, [6], NULL, NULL, {4, 0}) = 1 (in [6], left {4, 0})
13:30:39.208237 recvfrom(6,
"\0\2\205\200\0\1\0\0\0\1\0\0\6_ldaps\4_tcp\7radisys"..., 512, 0, NULL,
NULL) = 106
13:30:39.208347 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 13:30:39.208428 rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0 13:30:39.208499 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0*13:30:39.208560 nanosleep({5, 0}, {5, 0}) = 0* 13:30:44.211217 close(6)
This happens only when dynamic discovery is used.
Imagine trying to use this with an app server that makes several connections a second.
Has anyone else seen this?
Or know if it is a bug, has a patch, etc?
I do have an SR open on this issue, but thought I might find someone else here that has seen it.
Jared Still
Certifiable Oracle DBA and Part Time Perl Evangelist
-- http://www.freelists.org/webpage/oracle-lReceived on Wed Mar 18 2009 - 18:40:06 CDT