Oracle Net Services provide a variety of options to help you design and manage networks that are both flexible and easy to use. With Oracle Net Services enhanced scalability and manageability features, you can develop a network to support a wide range of environments, whether they be simple workgroups or large mission critical enterprises.

This chapter describes considerations for planning a network using Oracle Net Services. It explains the relationships of the network products, and options for expanding and better managing your future network.

Deploying a Network Inside an Organization

As Figure 7-1 shows, an internal network often has a diverse client makeup. Besides traditional clients that need access to the database servers, Web clients also need access. The type and number of clients, as well as other networking issues, affect the types of features to consider deploying.

Scalability

For an organization with hundreds or thousands of clients, scalability is of the utmost importance. Oracle Net Services offers a number of features that can improve database server scalability, including shared server, connection pooling, and session multiplexing.

Shared Server

With a shared server architecture, a small pool of server processes can serve a large number of clients. This reduces the server's memory requirements. Connection pooling and session multiplexing features are enabled through shared server.

Connection Pooling

Connection pooling enables the database server to time-out protocol connections and to use those connections to service an active session.

Session Multiplexing

Session multiplexing, available with Oracle Connection Manager, enables multiple client sessions to funneled through a single protocol connection.

When session multiplexing is used with connection pooling, you can increase the total number of client sessions the server can handle.

Table 7-1 summarizes the relative advantages of using connection pooling and session multiplexing and provides recommendations for using them in the network.

Table 7-1 Connection Pooling and Session Multiplexing

Feature

Advantages

Disadvantages

Recommended for

Connection Pooling

Reduces the number of network resources used for each process

Supports larger client populations

Maximizes the number of client/server sessions over a limited number of process connections

Enables middle-tier application Web servers or applications that need to access backend database to support additional services, such as Oracle9i Application Server

Requires only a single transport for clients with multiple applications

Requires only a single network connection for database links

Database sessions should use the IDLE_TIME resource parameter.

Networks where many clients run interactive "high think/search time" applications such as messaging and OLAP

Session Multiplexing

Limits the number of network resources used for each process

Supports large client populations

Maximizes the number of client/server sessions over a limited number of process connections

Optimizes resource utilization

Enables identification and monitoring of real users

Enables mid-tier applications to support additional services

Requires only a single transport for clients with multiple applications

Requires only a single network connection for database links

Provides support for pre-Oracle8 clients

Clients must connect to Oracle Connection Manager.

Networks where continuous connectivity is required.

Availability

Availability to the database is crucial for any internal network. You can configure multiple listeners to handle client connection requests for the same database service. This is especially ideal in an Oracle9i Real Application Clusters configuration, where each instance has a listener associated with it. Multiple listener configurations enable you to utilize connect-time failover and connection load balancing features.

Connect-Time Failover

Connect-time failover enables clients to request a different listener (usually on a different node) if the first listener fails.

Client Load Balancing

Client load balancing enables clients to randomize requests to the multiple listeners (usually on different nodes).

These features can be used together or separately. Together, they ensure access to the database and distribute the load so as not to overburden a single listener.

Tuning and Performance

Oracle Net Services offers a number of features that can help reduce round-trip time across the network, increase listener performance, and reduce the number of protocols used.

Session Data Unit (SDU) Size

Before sending data across the network, Oracle Net buffers and encapsulates data into the session data unit (SDU). Oracle Net sends the data stored in this buffer when the buffer is full, flushed, or when database server tries to read data. When large amounts of data are being transmitted or when the message size is consistent, adjusting the size of the SDU buffers can improve performance, network utilization, or memory consumption. You can deploy SDU at the client, the application Web server, and the database server.

Listener Queue Size

If you anticipate receiving a large number of connection requests for a listening process, you can increase the size of the listener queue.

Protocol Conversion

The database only needs to be configured to listen on one protocol address, even though clients may use other protocols. Oracle Connection Manager provides a protocol conversion feature that enables a client and database server configured with different networking protocols to communicate with one another.

Deploying a Network for the Internet

As Figure 7-2 shows, an Internet network is usually consists of Web clients that access firewall-protected application Web servers, that then connect to a database. An Internet network has many of the same requirements as an internal network, but it also has its own unique set of requirements. This section examines both requirements.

Figure 7-2 Internet Network Layout

Scalability

Like an internal network, scalability can be improved in an Internet network with shared server, connection pooling, and session multiplexing features configured on the database server. Session multiplexing can also be configured on the application Web server tier. This can help offload some of the network I/O of the application Web servers, increasing throughput.

Availability

Availability to the database is crucial for any Internet network with a firewall. It is important to deploy at least two Oracle Connection Manager firewalls or Oracle Net Firewall Proxies in the event that one firewall goes down.

Naming Methods

For an Internet network, configure the application Web servers needed to connect to the databases with the local naming method.

JDBC Drivers

Security

Security in an Internet network is crucial to control access to the database.

Access Control

Granting and denying access to the a database is crucial for a secure network environment. You can configure access control through a firewall or on the database. For firewall support, you can configure Oracle Connection Manager to function as a firewall, whereby it grants or denies clients access to a particular database service or a computer based on a set of filtering rules. For the database, you can configure access control parameters in the sqlnet.ora file to specify that clients using a particular protocol are allowed or denied access.

Listener and Database Server Connection Limits

To prevent unauthorized clients from attempting denial-of-service attacks on the listener or database server, you can configure limits that constrain the time in which resources can be held prior to authentication. Client attempts to exceed the configured limits will result in connection terminations and an audit trail containing the IP address of the client being logged.

Tuning and Performance

Naming Considerations

Table 7-2 summarizes the relative advantages and disadvantages of each naming method and provides recommendations for using them in the network.

Table 7-2 Naming Methods: Advantages and Disadvantages

Naming Method

Advantages/Disadvantages

Recommended for:

Local Naming

Advantages:

Provides a relatively straightforward method for resolving net service name addresses

Resolves net service names across networks running different protocols

Disadvantage: Requires local configuration of all net service name and address changes

Simple distributed networks with a small number of services that change infrequently.

Directory Naming

Advantages:

Centralizes network names and addresses in a single place, facilitating administration of name changes and updates. This eliminates the need for an administrator to make changes to what potentially could be hundreds or even thousands of clients.

Advantage: Centralizes network names and addresses in a single place, facilitating administration of name changes and updates. For example, whenever a change is made to an existing server or a new server is added to the network, the change is made only once on one Oracle Names server. This eliminates the need for an administrator to make changes to what potentially could be hundreds or even thousands of clients.

Performance Considerations

Listener Queue Size

If you anticipate receiving a large number of connection requests for a listening process (such as a listener, Oracle Connection Manager, or Oracle Names server) over TCP/IP, Oracle Net enables you to configure the listening queue to be higher than the system default.

Session Data Unit Size for Data Transfer Optimization

Tuning your application to reduce the number of round trips across the network is the best way to improve your network performance. If this is done, it is also possible to optimize data transfer by adjusting the size of the session data unit (SDU).

The SDU is a buffer that Oracle Net uses to place data into before transmitting it across the network. Oracle Net sends the data in the buffer either when requested or when it is full.

Table 7-3 SDU Considerations

The data coming back from the server is fragmented into separate packets

You are on a wide area network (WAN) that has long delays

The packet size is consistently the same

Large amounts of data are returned

The application can be tuned to avoid the delays listed in the Modify SDU size when column

You have a higher speed network where the effect of the data transmission is negligible

Your requests return small amounts of data from the server

Persistent Buffer Flushing for TCP/IP

Under certain conditions for some applications using TCP/IP, Oracle Net packets may not get flushed immediately to the network. Most often, this behavior occurs when large amounts of data are streamed. The implementation of TCP/IP itself is the reason for the lack of flushing, causing unacceptable delays. To remedy this problem, specify no delays in the buffer flushing process.