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:
- 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 with SSL
- Named Pipes
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)
To monitor Shared Servers there are several dictionary views:
I’ve seen that column V$SESSION.SERVER has mainly three values:
- DEDICATED, when shared servers are not configured or a client connect specifing “SERVER=DEDICATED” in tnsnames.ora
- 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.
- 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.