JDBC Connections Are Not Load Balanced Across SCAN Listeners
Last updated on DECEMBER 01, 2017
Applies to:JDBC - Version 126.96.36.199.0 and later
Information in this document applies to any platform.
When SCAN (Single Client Access Name) naming is in use in an Oracle database cluster, we typically recommend that JDBC applications are configured to use the SCAN name, rather than a list of VIP interface names or IP numbers. This makes it easier to manage the cluster topology centrally -- adding a node, for instance, will not require any changes to the JDBC application. SCAN works at the DNS level -- the site DNS must provide a list of IPs that match the designated SCAN name. The Oracle JDBC driver resolves the SCAN name to a particular IP in the usual way, using Java networking API calls, which ultimately result in native calls to the name resolution libraries. The DNS server provides a different IP number from its list on each request for the SCAN name.
Customers have reported that, in some set-ups, a particular JDBC client will make all its connections to the same SCAN listener. This may be the case even though the DNS server appears to be serving multiple IPs for the SCAN name. There are concerns that this will hinder the load balancing operation of the cluster.
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms