Just what do you get when you install Net8? What are the tangible components that you as the DBA need to know about and manage? The answers to these questions depend on the complexity of your environment and on the options that you choose or choose not to implement. The next few sections talk about the following Net8 configurations:
As you read these sections, bear in mind that these configurations are not mutually exclusive. They are presented separately to keep the diagrams simple and to keep the discussion focused. The simplest configuration, and the one you’ll get by default when you do a fresh install of Oracle, is a dedicated server configuration that does not use any of the other components. However, it’s entirely possible for a Net8 environment to use Oracle Internet Directory (or Oracle Names) and Connection Manager to implement the multi-threaded server option, and to still use dedicated server connections as well.
A dedicated server environment is one in which each database session communicates with a corresponding server process that has been dedicated to it. Figure 1.3 shows an example of this environment. The term refers to the dedicated server processes that are started for each client connection to the Oracle database.
The following list describes the major components that you’ll need to deal with in a simple dedicated server configuration such as that shown in Figure 1.3.
- Net8 listener
A process that runs on the server and monitors the network for incoming connection requests. When a connection is made, the listener starts up a dedicated server process and hands off the connection to that process. The listener does not stay involved in the connection after that point.
- Net8 session layer
The low-level software that enables Net8 communication over a network. The session layer consists of a generic network interface; a routing, naming, and authentication layer; and the Transparent Network Substrate (TNS). You’ll read more about these later in this chapter in Section 1.3.
- sqlnet.ora file
- tnsnames.ora file
- listener.ora file
Although Figure 1.3 only shows one listener, it is
possible to configure Net8 to use multiple listener processes on one
machine. When you configure multiple listeners, you still have only
listener.ora file. All the parameters for
all the listeners are in that one file. See Chapter 4, for details on configuring Net8 listeners.
A multi-threaded server environment is one in which the client connections share access to a pool of shared server processes. In a dedicated server environment, as the number of client connections to an Oracle database increases, the resulting dedicated server processes can quickly eat away at the available CPU and memory resources on the server. This has an adverse impact on scalability; you won’t be able to support as many users as you might like. If you expect to have a large number of client connections to your database, you may be able to improve scalability by using Net8’s multi-threaded server (MTS) option. The MTS option, illustrated in Figure 1.4, allows one server process to handle more than one client connection.
Using the MTS option adds one component to the Net8 environment—the dispatcher process. Whereas in a dedicated server environment each new connection is handed off to a dedicated server process, in an MTS environment, each new connection is handed off to a dispatcher process. Each dispatcher process can handle a large number of client connections. When a client sends a SQL statement to the database to be executed, the dispatcher routes that SQL statement to an available shared server process. The shared server process is analogous to a dedicated server process, except that it is shared by more than one connection. The shared server process takes care of executing the SQL statement, and then returns the results back to the client.
The multi-threaded server option is only beneficial in cases where your client connections sporadically use the database. The idea is that while one connection is sitting idle, another connection can be serviced. Clients with little or no idle time should be connected to dedicated server processes. You can learn more about the MTS option in Chapter 4.
Oracle Internet Directory (OID) is not, strictly speaking, a Net8 component. It’s an implementation of a standards-based Lightweight Directory Access Protocol (LDAP) directory server. An LDAP directory server such as OID can be used to maintain a central repository of net service names that can be referenced by all clients.
When you connect to an Oracle database, you specify the database in
question by supplying a net service name. Somehow, Net8 needs to
resolve that service name into a specific Oracle instance on a
specific server. One way to do that is through the use of
files. These are text files
that sit on each client machine, and also on the servers, and that
contain the information needed to resolve each net service name.
Because they must reside on each machine,
tnsnames.ora files do not represent a very
scalable solution to the problem of resolving net service names.
Every time changes are made, the
files on all your machines need to be refreshed. You can imagine how
burdensome and error-prone that task becomes as the number of
machines increases. OID, shown in Figure 1.5,
allows you to define net service names in one central
OID is shipped with the Enterprise Edition of the Oracle database software. Currently, if you are licensed for the Enterprise Edition, that confers a license to use OID for the purposes of net service name resolution. Read Chapter 6, for more information on using LDAP with Net8.
Oracle Names is a soon-to-be obsolete Net8 component that allows net service names to be defined centrally. It functions in much the same manner as the OID. To resolve a net service name, clients contact an Oracle Names server. The Names server sends back the definition for the name, and the client uses that definition to connect to a database service.
Using Oracle Names allows you to dispense with the
tnsnames.ora files, and adds the following two
components to your Net8 environment:
Oracle Names is a proprietary solution, and it has always been somewhat buggy and difficult to use. Oracle still supports Names because there are sites that continue to use it, but the future lies with OID and LDAP. If you need a centralized net service name repository, we strongly recommend the use of the OID/LDAP solution. If you are currently using Oracle Names, you should already be planning your switch to a directory-based name resolution solution.
The Oracle Connection Manager is an optional Net8 component that functions much like a router. Connection Manager is shown in Figure 1.6 and provides the following functionality:
- Protocol conversion
- Connection concentration
- Access control
Figure 1.6 shows Connection Manager being used for both protocol conversion and connection concentration.
Read Chapter 9, for detailed information on using and configuring Connection Manager.