Configuring the Oracle Network Environment

<back to oca>

Oracle’s Solution to Networking Issues

From Chapter 1 of Oracle Net Services Administrators Guide.

Oracle Net Services provides enterprise wide connectivity solutions in distributed, heterogeneous computing environments. Oracle Net Services ease the complexities of network configuration and management, maximize performance, and improve network diagnostic capabilities.

Main topic are:

  • Connectivity
  • Manageability
  • Internet and Intranet Scalability
  • Network Security

Oracle Net foundation layer uses Oracle protocol support to comunicate with the following industry-standard netwok protocols:

  • TCP/IP
  • TCP/IP with SSL
  • Named Pipes
  • SDP

Use database control to Create additional listeners

Use databaes control to create oracle net service aliases

Control Oracle Net Listeners

Identify when to use shared servers versus dedicated servers

Shared Server configuration is a scalability solution, for environments with a lot of sessions that don’t make a lot of work, that don’t extract large datasets. If the application has his connection pool makes not a lot of sense use shared server connections.

Sharede server is configured mainly with DISPATCHERS database parameter which in turn has several attributes:

  • PROTOCOL (PRO or PROT)
  • ADDRESS (ADD or ADDR)
  • DESCRIPTION (DES or DESC)
  • DISPATCHERS (DIS or DISP)
  • CONNECTIONS (CON or CONN)
  • LISTENER (LIS or LIST)
  • SESSIONS (SES or SESS)
  • SERVICE (SER or SERV)
  • POOL (POO)
  • TICKS default 1 second

One of the first three is mandatory, the other are optional.

Then there are other database parameters to configure shared servers:

  • MAX_DISPATCHERS (default no setting)
  • SHARED_SERVERS (by documentation this parameter is 0 if dispatchers are not configured, and 1 if more than 0 dispatchers are set. But i think that this is not dynamic. I’ve tried to set dispatchers without setting SHARED_SERVERS and with “listener services” i didnt see any info about dispatchers. After setting explicitly SHARED_SERVER to a value greater than 0 instead i could seed “D000” on “listener services” output.
  • SHARED_SERVER_SESSIONS (default no setting)
  • MAX_SHARED_SERVERS (default no setting)
  • CIRCUITS

To monitor Shared Servers there are several dictionary views:

  • V$DISPATCHER
  • V$DISPATCHER_CONFIG
  • V$DISPATCHER_RATE
  • V$QUEUE
  • V$CIRCUIT
  • V$SHARED_SERVER
  • V$SHARED_SERVER_MONITOR
  • V$SESSION

Some notes:

I’ve seen that column V$SESSION.SERVER has mainly three values:

  1. DEDICATED, when shared servers are not configured or a client connect specifing “SERVER=DEDICATED” in tnsnames.ora
  2. NONE when shared servers are configured and a client has not explicitly specified “SERVER=DEDICATED” in tnsnames.ora and the client is not being serviced by a shared server. In this case, V$SESSION.PADDR contains the address of dispatcher process.
  3. SHARED  when shared servers are configured and a client has not explicitly specified “SERVER=DEDICATED” in tnsnames.ora and the client is being serviced by a shared server. In this case, V$SESSION.PADDR contains the address of shared server process servicing the client request.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: