Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

In Oracle 10g (10.2.0), there are 4 types of names resolution:

  1. Easy Connect(10g added this new method)
  2. Local naming
  3. Directory
  4. External naming

It is said that if Easy connect is used by the clients, then it may overload the listener on the server (as client queue increases). How can this happen as it is the server's duty to distribute load from one listener to another? (Please correct me if my concepts are wrong.)

And how exactly does Directory and External naming work.

share|improve this question
add comment

2 Answers

When you need to connect any database , you need to provide connection string. Oracle is the same. What you need to provide is following information basically.

  1. Database Server Name or IP.
  2. Database Name, Oracle SID or Service Name
  3. Datapase Port
  4. Username and password

First connection method is Local naming which uses Oracle Net. Before TCP/IP was standardized a lot of third party networking protocols existed. To overcome this problem, oracle used Oracle NET. According to Oracle Documentation Local Naming : "Resolves a net service name stored in a tnsnames.ora file stored on a client". tnsnames.ora file contains 1-3 of above. Therefore you only need to provide (4) username and password. Below an example line of tnsnames.ora can be seen.

(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=my-server) (PORT=1521)))

Second easy connect is same. You provide information contained in tnsnames.ora in command line. Here host = 1 , port (2), service_name = (3). As you can see it is same as first one. You give same information to connector as before. You may skip default information like port.

CONNECT username/password@host[:port][/service_name]

http://docs.oracle.com/cd/B13789_01/network.101/b10775/naming.htm#i476040

Third is Directory Server, LDAP Server like Microsoft Active Directory. Here you provide a key and directory server gives you back connection string. You use this connection string to connect to oracle.

Fourth one is same as Directory server , you only use other network services. As explained in oracle documentation. "Configuring External Naming Methods

External naming refers to the method of resolving a net service name, stored in a non-Oracle naming service, to a network address." According to NIS wikipedia: "Network Information Service, or NIS is a client–server directory service protocol for distributing system configuration data ...over time other modern and secure distributed directory systems, most notably LDAP, came to replace it." As you can see, External Naming is same as Directory Server, only uses a different server technology (older) than LDAP.

http://docs.oracle.com/cd/B13789_01/network.101/b10775/naming.htm#i476040

These are four connection methods. I do think other than where do they get connection string information, they differ. Therefore easy connect should not have less performance than local naming.

share|improve this answer
1  
It could be the ability for one connection protocol to use DEDICATED vs SHARED. I don't see where you'd specify that in Easy Connect as you can in the other connection strings. –  Rob Jan 30 '12 at 0:53
add comment

From the Oracle documentation:

Local Naming

The local naming method stores connect descriptors, identified by their net service name, in a configuration file on the client named tnsnames.ora. This file is located in the ORACLE_HOME/network/admin directory.

Directory Naming

The directory naming method stores connect identifiers in a centralized, LDAP-compliant directory server.

Easy Connect Naming

The easy connect naming method enables clients to connect to an Oracle database server by using only a TCP/IP connect string consisting of a host name and optional port and service name:

CONNECT username/password@host[:port][/service_name]

For example:

CONNECT hr/hr@my-server:1521/mydb

The easy connect naming method requires no configuration.

External Naming

The external naming method stores net service names in a supported non-Oracle naming service. These supported third-party services include:

  • Network Information Service (NIS) External Naming
  • Distributed Computing Environment (DCE) Cell Directory Services (CDS)

This should make the distinction between the different naming methods very clear. How the EZ connect overloads the listener is not clear to me (is this from a rumormonger?). Basically this only converts a EZ connect alias to the common TNS alias. However more advanced connection attributes like CLB/RLB or connection pooling cannot be specified with a EX connect string.

share|improve this answer
    
Thanks Steve - can you add a link to the docs you quote? The closest I could find is this –  Jack Douglas Jan 30 '12 at 15:06
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.