If you are using a client earlier than Oracle Database 11g Release 2, then you
cannot fully benefit from the advantages of the SCAN because the Oracle Client
cannot handle a set of three IP addresses returned by the DNS for the SCAN.
Instead, it tries to connect to only the first address returned in the list
and ignores the other two addresses. If the SCAN Listener listening on this
specific IP address is not available or the IP address itself is not
available, then the connection fails.
I also discovered this limitation when we tried a rolling patch.
Western Technology Services
p. 519-661-2111 x80357
k. keys.uwo.ca (PGP key)
On Friday October 4 2019 07:26:40 AM Leng wrote:
Have you got the relevant note/bug handy re. 11g clients not attempting all
3 scan listeners? We’ve got 11g clients and they couldn’t connect to our 2
node RaC databases during our rolling patching exercise.
On 3 Oct 2019, at 6:31 am, William Beldman <wbeldma@xxxxxx> wrote:
Ah yes, good point. I read that before and I think it applies to any
All clients that experienced the issue were 12.1 or 12.2 so that doesn't
explain the problem.
On Wednesday October 2 2019 03:23:26 PM Adric Norris wrote:
What version of the Oracle client is being used? IIRC the 184.108.40.206 client
only attempts the first IP returned by DNS, so while impacted IPs are in
the process of being relocated you can definitely get unlucky. 12c+
should recognize that there are multiple IPs, and try each of them before
On Wed, Oct 2, 2019 at 12:51 PM William Beldman <wbeldma@xxxxxx> wrote:
I find the documentation on both SCAN addresses and TNSNames entries is
but is still missing some details.
I have a two node RAC cluster:
$ srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node <NODE 2>
SCAN Listener LISTENER_SCAN2 is enabled
SCAN listener LISTENER_SCAN2 is running on node <NODE 1>
SCAN Listener LISTENER_SCAN3 is enabled
SCAN listener LISTENER_SCAN3 is running on node <NODE 1>
My DNS resolves my SCAN address to 3 different IPs (and I can confirm
round-robin is working, the order is different everytime):
$ nslookup dm01-scan.<suffix>
Address: <IP 1>
Address: <IP 2>
Address: <IP 3>
My TNSNames entry is very basic:
(ADDRESS = (PROTOCOL = TCP)(HOST = dm01-scan.<suffix>)(PORT = 1521)))
(CONNECT_DATA = (SERVICE_NAME = <service name>)
We had a crash on one of the nodes (at least it looks like only one) and
of my processes could not establish a connection to the database. If I
unlucky, I *think* this means 2 out of my 3 scan listeners was not
So I'd like to understand the behavior on the client side when that
What I suspect happened was when my client attempted to connect to the
database, DNS returned a bad IP first, and my client connection failed
If so, would supplying retry and delay parameters mitigate this issue?
importantly, if I do not supply these parameters, what's the default
and where is that documented? What if it keeps returning a bad IP first?
Also, in the event of a sudden disconnect of an ALREADY established
connection, is there any TNSNames parameters I can supply to ask the
to either "pause and wait for the database to come back" or
connection to the same scan address again"? Could I perhaps use the
parameter but have the failover address just be the same scan address?
Description: This is a digitally signed message part.