You are previewing Oracle Net8 Configuration and Troubleshooting.
O'Reilly logo
Oracle Net8 Configuration and Troubleshooting

Book Description

Net8 is the fundamental Oracle technology that allows Oracle services and clients to communicate with each other over a network. Net8 is most often used to connect client software to Oracle database servers. It may also be used to connect database servers to one another, allowing communication between distributed databases. This practical guide provides the information that readers, especially database administrators, need to know in order to install configure, tune, and troubleshoot Net8. It discusses how Oracle's network architecture, products, and name resolution methods work, and it provides the details of client and server configuration using a variety of Oracle protocols and networking products, including:

  • The Oracle Internet Directory (OID), Oracle's implementation of the standard Lightweight Directory Access Protocol (LDAP). This directory can be used to maintain a central repository of net service names that can be referenced by all clients.

  • Oracle Names, a networking component used mainly in earlier versions of Oracle, that allows net service names to be defined centrally.

  • Multi-Threaded Server (MTS), an environment in which the client connections share access to a pool of shared server processes.

  • Oracle Connection Manager, a Net8 component that acts much like a router and provides protocol conversion, connection concentration, and access control.

The book also describes the utilities Oracle provides to help manage a Net8 environment; these include the Listener Control Utility (lsnrctl), the Oracle Names Control Utility (namesctl), the Oracle Connection Manager Control Utility (cmctl), tnsping, and Net8 Assistant. In addition, it provides a variety of networking troubleshooting techniques and commonly encountered Net8 configuration problems, and provides complete syntax for all networking files and commands.

Table of Contents

  1. Oracle Net8 Configuration and Troubleshooting
    1. Preface
      1. Audience
      2. Which Platform and Version?
      3. Structure of This Book
      4. Conventions Used in This Book
      5. Comments and Questions
      6. Acknowledgments
        1. From Hugo
        2. From Jonathan
    2. I. How Net8 Works
      1. 1. Oracle’s Network Architecture and Products
        1. Goals of Net8
          1. Location Transparency
          2. Platform Independence
          3. Protocol Transparency
        2. Net8 Components
          1. Dedicated Server
          2. Multi-Threaded Server
          3. Oracle Internet Directory
          4. Oracle Names
          5. Connection Manager
        3. Stack Communications
          1. The IIOP Stack
          2. The JDBC Stack
        4. Management Utilities
          1. Listener Control
          2. Names Control
          3. Connection Manager Control
          4. tnsping
          5. Net8 Assistant
          6. Net8 Easy Config
          7. Net8 Configuration Assistant
      2. 2. Name Resolution
        1. Local Naming
        2. Directory Naming
        3. Centralized Naming
          1. Redundancy and Scalability
          2. Name Storage
        4. Host Naming
        5. External Name Resolution
        6. Choosing the Method to Use
    3. II. Net8 Configuration
      1. 3. Client Configuration
        1. The Overall Process
        2. Installing the Net8 Client Software
          1. Automatic Protocol Detection
          2. Network Configuration Under Windows
          3. Net8 Configuration Assistant
          4. What Software Is Installed?
        3. Configuring Your Profile
          1. Choosing a Naming Method
            1. Syntax for NAMES.DIRECTORY_PATH
            2. Choose what you use
          2. Choosing a Default Domain
            1. Syntax for NAMES.DEFAULT_DOMAIN
            2. How default domains are used
          3. Choosing the Trace File Location
          4. Choosing the Log File Location
          5. Using the Net8 Assistant to Configure Your Net8 Profile
        4. Defining Net Service Names
          1. Advanced Connection Options
          2. Syntax for TNSNAMES Entries
            1. Connect data options
            2. TCP/IP connections
            3. Bequeath connections
            4. IPC connections
            5. SPX connections
            6. Named Pipes connections
          3. Net8 Easy Config
          4. Net8 Assistant
        5. Using LDAP
          1. Identifying the LDAP Directory
          2. Choosing a Default Admin Context
        6. Using Oracle Names
          1. Identifying Names Servers
            1. Discovery using NAMESCTL
            2. Discovery using Net8 Assistant
            3. Defining preferred names servers
          2. Other Names-Related Parameters
            1. NAMES.INITIAL_RETRY_TIMEOUT
            2. NAMES.REQUEST_RETRIES
        7. Using External Naming Methods
          1. Configuring NDS Naming
          2. Configuring NIS Naming
        8. Testing Client Connectivity
      2. 4. Basic Server Configuration
        1. The Overall Process
        2. Software to Install
        3. Configuring a Listener
          1. Why Use Multiple Listeners?
          2. Locating the listener.ora File
          3. Understanding the listener.ora File
          4. The Listener Address Entry
            1. Listener addresses
            2. Protocol stacks
            3. A listener address example
            4. Supporting multiple network interface cards
          5. The SID_LIST Parameter
            1. A SID_LIST example
          6. Prespawned Dedicated Server Processes
            1. Creating prespawned dedicated server processes
            2. How prespawned dedicated server processes are used
            3. Specifying the PRESPAWN_MAX value
            4. Guidelines for setting POOL_SIZE and PRESPAWN_MAX
          7. External Procedures
            1. listener.ora parameters to support external procedure calls
            2. tnsnames.ora parameters to support external procedure calls
            3. External procedure security
          8. Control Parameters
        4. The Listener Control Utility
          1. Starting a Listener
          2. Stopping a Listener
          3. Starting the Listener at Boot Time
            1. Starting a listener at boot time on Windows NT systems
            2. Starting a listener at boot time on Linux and Unix systems
          4. Other Ways to Execute Listener Control Commands
            1. Executing Listener Control commands from the operating-system command line
            2. Executing Listener Control commands from a script file
        5. Securing a Listener
          1. Setting an Unencrypted Password
          2. Setting an Encrypted Password
          3. Using the SET PASSWORD Command
            1. SET PASSWORD for unencrypted passwords
            2. SET PASSWORD for encrypted passwords
        6. Modifying and Deleting a Listener
          1. Modifying a Listener
            1. Using the Listener Control utility to modify a listener
            2. Saving your listener’s configuration
            3. Automatically saving changes
            4. Reloading listener parameters
          2. Deleting a Listener
            1. Listener service names on Windows NT
            2. Deleting a service from the registry
        7. Detecting Dead Connections
          1. Why Worry About Dead Connections?
          2. Setting the SQLNET.EXPIRE_TIME Parameter
      3. 5. Multi-Threaded Server
        1. Understanding MTS
          1. The Problem
          2. The Benefits
          3. The Trade-offs
          4. The Implementation
            1. Session-specific memory
            2. Dispatchers
          5. The Bottom Line
        2. Planning for MTS
          1. What Protocols to Support?
          2. How Many Dispatchers?
          3. How Many Shared Server Processes?
          4. Providing for Dedicated Server Connections
          5. How Much Memory?
        3. Database Initialization File Changes
          1. MTS_DISPATCHERS
            1. MTS_DISPATCHERS for standard connections
            2. The MTS_DISPATCHERS LISTENER attribute
            3. MTS_DISPATCHERS for IIOP connections
            4. Forcing an address with MTS_DISPATCHERS
          2. MTS_SERVERS and MTS_MAX_SERVERS
          3. MTS_MAX_DISPATCHERS
          4. LOCAL_LISTENER
          5. LARGE_POOL
        4. Forcing a Dedicated Server Connection
          1. tnsnames.ora
          2. sqlnet.ora
        5. Viewing MTS Status
          1. Operating-System Commands
          2. Listener Control
          3. Dynamic Performance Views
            1. Dispatcher status
            2. Dispatcher utilization
            3. Queue size and wait time
            4. Users and dispatchers
            5. Shared server utilization
            6. Other shared server statistics
        6. Online MTS Modifications
          1. Changing the Number of Shared Server Processes
          2. Changing the Number of Dispatchers
            1. Adding dispatchers
            2. Removing dispatchers
      4. 6. Net8 and LDAP
        1. What Is LDAP?
          1. Entries, Attributes, and Object Classes
          2. Directory Hierarchies
            1. Hierarchical versus relational
            2. Distinguished names
          3. Uses for LDAP
          4. Oracle Internet Directory
        2. Client Configuration for LDAP
          1. Specifying the LDAP Naming Method
          2. Addressing an LDAP Server
            1. DIRECTORY_SERVERS
            2. DIRECTORY_SERVER_TYPE
          3. Specifying a Default Administrative Context
          4. Specifying Net Service Names
        3. Defining Net Service Names in an LDAP Directory
          1. Prerequisites and Process
          2. Creating an Administrative Context
            1. Creating the gennick.org domain
            2. Creating the OracleContext entry
          3. Creating an LDAP User to ManageNet Service Names
            1. Creating an LDAP user
            2. Granting access to an LDAP user
          4. Creating a Net Service Name
          5. Testing a Net Service Name
      5. 7. Oracle Names
        1. Configuring a Names Server
          1. Creating the Repository Database
            1. Creating the repository user
            2. Creating the repository tables
          2. Defining the Names Server
            1. Starting the Names Wizard
            2. Entering the Names server name
            3. Specifying the Names server address
            4. Using a region database
            5. Specifying the database’s listener address
            6. Specifying the region database
            7. Choosing the region
            8. Saving the newly configured Names server
            9. Contents of the names.ora file
        2. Managing a Names Server
          1. The Names Control Utility
          2. Remote Management and Security
            1. The SET SERVER command
            2. Other ways to specify server names
            3. Names server passwords
          3. Starting and Stopping a Names Server
            1. Using Net8 Assistant
            2. Using Names Control
          4. Checking Names Server Status
            1. Using Net8 Assistant
            2. Using Names Control
          5. Defining Net Service Names
            1. Using Net8 Assistant
            2. Using Names Control
          6. Loading and Unloading Net Service Names
            1. Using Net8 Assistant
            2. Using Names Control
        3. Discovery and Client Configuration
          1. Discovery
            1. Discovery using Net8 Assistant
            2. Discovery using Names Control
            3. Manually generating .sdns.ora
          2. NAMES.PREFERRED_SERVERS
        4. Domains and Regions
          1. Configuring the Root Names Server
          2. Configuring a Region Names Server
          3. Configuring Clients
          4. Delegating Domains to Regions
      6. 8. Net8 Failover and Load Balancing
        1. Failover
          1. Connect-Time Failover
            1. Failover with multiple listener addresses
            2. Failover with multiple descriptions
            3. Failover and Net8 Assistant
            4. Failover and Oracle Names
          2. Transparent Application Failover
            1. TAF failover types
            2. TAF failover methods
            3. TAF limitations
            4. Configuring TAF to connect to a backup instance
            5. Retries and delays
            6. TAF and connect-time failover
            7. TAF status from V$SESSION
        2. Load Balancing
          1. Client Load Balancing
            1. Load balancing with multiple listener addresses
            2. Load balancing with multiple descriptions
            3. Load balancing and Net8 Assistant
            4. TAF with client load balancing
          2. Listener Load Balancing
            1. Prerequisites for listener load balancing
            2. Listener and client load balancing combined
      7. 9. Connection Manager
        1. Connection Manager Benefits
          1. Connection Concentration
          2. Multi-Protocol Support
          3. Network Address Translation
          4. Access Control
        2. Connection Manager Architecture
        3. Configuring Connection Manager
          1. Connection Manager Addresses
          2. Connection Manager Profile Settings
          3. Access Control Rules
            1. Creating a rule
            2. Wildcarding access control rules
            3. Rules in a multi-protocol environment
            4. Rules interpretation when multiple hops are involved
          4. Database Server Settings (or MTS Settings)
        4. Configuring a Client
          1. Connection Concentration
            1. Using multiple connection manager instances
            2. Connection concentration and the Net8 Assistant
          2. Multi-Protocol Support
            1. Combining multi-protocol support and connection concentration
            2. Multi-protocol support and the Net8 Assistant
        5. Managing Connection Manager
          1. Starting and Stopping Connection Manager
            1. Stopping Connection Manager
            2. Starting and stopping just one process
          2. Viewing Statistics and Other Information
            1. Connection Manager status
            2. Connection Manager statistics
            3. Examining relays
            4. Examining rules
          3. Managing Log Files
            1. Setting the log level in the profile
            2. Using cmctl to change the log level
            3. Rule list lookup logging
    4. III. Net8 Troubleshooting
      1. 10. Net8 Troubleshooting Techniques
        1. Testing Connectivity to the Server
          1. Connectivity-Related Error Messages
          2. The Connectivity Path
          3. Testing Network Connectivity
          4. Verifying Name Resolution
            1. Naming method and location of configuration files
            2. Default domain
            3. tnsnames.ora
            4. Oracle Names
          5. Testing Net8 Connectivity
            1. tnsping
            2. tnsping options
          6. Verify That the Database Is Open
            1. Verifying that the database is open
            2. Verifying that the service is registered
          7. Using Log and Trace Files
        2. Looking at Net8 Log Files
          1. Client and Server Log Files
          2. Listener Log Files
            1. Start and stop events
            2. Client connections
            3. Service registration and other events
          3. Names Server Log Files
          4. Connection Manager Log Files
        3. Generating Net8 Trace Files
          1. A Hypothetical yet Real Problem
          2. Trace File Locations and Names
          3. Trace Levels
          4. Trace File Contents
          5. Tracing and Other Net8 Features
      2. 11. Solutions to Common Problems
        1. Net8 General Problems
          1. Net8 Cannot Resolve a Service Name
            1. Symptom
            2. Possible solution
          2. Windows Prompts to Make a Dial-up Connection
            1. Symptom
            2. Possible solution
          3. Your Firewall Blocks Redirects
            1. Symptom
            2. Possible solution
          4. Net8 Assistant Can’t Find Your Configuration Files
            1. Symptom
            2. Possible solution
          5. You Get an ORA-12545 Error While Trying to Connect
            1. Symptom
            2. Possible solution
          6. You Don’t Get a Trace File When You Ask for One
            1. Symptom
            2. Possible solution
          7. You Want to Change the Session Data Unit Size
            1. Symptom
            2. Possible solution
          8. You Get an ORA-12538 Error When Trying to Connect
            1. Symptom
            2. Possible solution
          9. Instance Registers with Wrong Listener
            1. Symptom
            2. Possible solution
          10. Net Service Name Doesn’t Work with Enterprise Manager
            1. Symptom
            2. Possible solution
          11. Net8 Easy Config Complains About Corrupt Files
            1. Symptom
            2. Possible solution
          12. You Have an Unwanted Listener Service in Windows NT
            1. Symptom
            2. Possible solution
          13. Developer 2000 Won’t Connect to Personal Oracle
            1. Symptom
            2. Possible solution
        2. Connection Manager Problems
          1. CMAN Refuses to Start
            1. Symptom
            2. Possible solution
          2. CMADMIN Is Running and Cannot Be Stopped
            1. Symptom
            2. Possible solution
          3. You Have Hung Connections
            1. Symptom
            2. Possible solution
        3. Multi-Threaded Server Problems
          1. Your Instance Won’t Start
            1. Symptom
            2. Possible solution
          2. You Get an ORA-00101 Error When Starting an Instance
            1. Symptom
            2. Possible solution
        4. Oracle Names Problems
          1. Discovery Does Not Work
            1. Symptom
            2. Possible solution
          2. DUMP_TNSNAMES Does Not Work
            1. Symptom
            2. Possible solution
          3. Names Servers Do Not Access the Repository Database
            1. Symptom
            2. Possible solution
          4. You Can’t Unregister a Service
            1. Symptom
            2. Possible solution
          5. Your .sdns.ora File Is Corrupt
            1. Symptom
            2. Possible solution
    5. IV. Appendixes
      1. A. The sqlnet.ora File
        1. BEQUEATH_DETACH
        2. DAEMON.TRACE_DIRECTORY
        3. DAEMON.TRACE_LEVEL
        4. DAEMON.TRACE_MASK
        5. DISABLE_OOB
        6. LOG_DIRECTORY_CLIENT
        7. LOG_DIRECTORY_SERVER
        8. LOG_FILE_CLIENT
        9. LOG_FILE_SERVER
        10. NAMES.DCE.PREFIX
        11. NAMES.DEFAULT_DOMAIN
        12. NAMES.DIRECTORY_PATH
        13. NAMES.INITIAL_RETRY_TIMEOUT
        14. NAMES.MAX_OPEN_CONNECTIONS
        15. NAMES.MESSAGE_POOL_START_SIZE
        16. NAMES.NIS.META_MAP
        17. NAMES.PREFERRED_SERVERS
        18. NAMES.REQUEST_RETRIES
        19. NAMESCTL.INTERNAL_ENCRYPT_PASSWORD
        20. NAMESCTL.INTERNAL_USE
        21. NAMESCTL.NO_INITIAL_SERVER
        22. NAMESCTL.NOCONFIRM
        23. NAMESCTL.SERVER_PASSWORD
        24. NAMESCTL.TRACE_DIRECTORY
        25. NAMESCTL.TRACE_FILE
        26. NAMESCTL.TRACE_LEVEL
        27. NAMESCTL.TRACE_UNIQUE
        28. OSS.SOURCE.LOCATION
        29. OSS.SOURCE.MY_WALLET
        30. SQLNET.AUTHENTICATION_KERBEROS5_SERVICE
        31. SQLNET.AUTHENTICATION_SERVICES
        32. SQLNET.AUTHENTICATION_GSSAPI_SERVICE
        33. SQLNET.CLIENT_REGISTRATION
        34. SQLNET.CRYPTO_CHECKSUM_CLIENT
        35. SQLNET.CRYPTO_CHECKSUM_SERVER
        36. SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT
        37. SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER
        38. SQLNET.CRYPTO_SEED
        39. SQLNET.ENCRYPTION_CLIENT
        40. SQLNET.ENCRYPTION_SERVER
        41. SQLNET.ENCRYPTION_TYPES_CLIENT
        42. SQLNET.ENCRYPTION_TYPES_SERVER
        43. SQLNET.EXPIRE_TIME
        44. SQLNET.INDENTIX_FINGERPRINT_DATABASE
        45. SQLNET.IDENTIX_FINGERPRINT_DATABASE_PASSWORD
        46. SQLNET.INDENTIX_FINGERPRINT_DATABASE_USER
        47. SQLNET.IDENTIX_FINGERPRINT_METHOD
        48. SQLNET.KERBEROS5_CC_NAME
        49. SQLNET.KERBEROS5_CLOCKSKEW
        50. SQLNET.KERBEROS5_CONF
        51. SQLNET.KERBEROS5_KEYTAB
        52. SQLNET.KERBEROS5_REALMS
        53. SQLNET.RADIUS_ALTERNATE
        54. SQLNET.RADIUS_ALTERNATE_PORT
        55. SQLNET.RADIUS_ALTERNATE_RETRIES
        56. SQLNET.RADIUS_ALTERNATE_TIMEOUT
        57. SQLNET.RADIUS_AUTHENTICATION
        58. SQLNET.RADIUS_AUTHENTICATION_INTERFACE
        59. SQLNET.RADIUS_AUTHENTICATION_PORT
        60. SQLNET.RADIUS_AUTHENTICATION_RETRIES
        61. SQLNET.RADIUS_AUTHENTICATION_TIMEOUT
        62. SQLNET.RADIUS_CHALLENGE_KEYWORD
        63. SQLNET.RADIUS_CHALLENGE_RESPONSE
        64. SQLNET.RADIUS_CLASSPATH
        65. SQLNET.RADIUS_SECRET
        66. SQLNET.RADIUS_SEND_ACCOUNTING
        67. SSL_CIPHER_SUITES
        68. SSL_CLIENT_AUTHENTICATION
        69. SSL_VERSION
        70. TNSPING.TRACE_DIRECTORY
        71. TNSPING.TRACE_LEVEL
        72. TRACE_DIRECTORY_CLIENT
        73. TRACE_DIRECTORY_SERVER
        74. TRACE_FILE_CLIENT
        75. TRACE_FILE_SERVER
        76. TRACE_LEVEL_CLIENT
        77. TRACE_LEVEL_SERVER
        78. TRACE_UNIQUE_CLIENT
        79. USE_CMAN
        80. USE_DEDICATED_SERVER
      2. B. The tnsnames.ora File
        1. Net Service Name Definitions
          1. Descriptions and Description Lists
          2. Protocol Addresses and Address Lists
          3. Connection Data
        2. The Parameters
          1. Net Service Name
          2. DESCRIPTION_LIST
          3. DESCRIPTION
          4. ADDRESS_LIST
          5. ADDRESS
          6. CONNECT_DATA
          7. FAILOVER_MODE
      3. C. The listener.ora File
        1. Listener Addresses
          1. Listener Address
        2. Static Services
          1. SID_LIST_listener_name
          2. SID_LIST
          3. SID_DESC
          4. PRESPAWN_MAX
          5. PRESPAWN_LIST
          6. PRESPAWN_DESC
        3. Control Parameters
          1. CONNECT_TIMEOUT_listener_name
          2. LOG_DIRECTORY_listener_name
          3. LOG_FILE_listener_name
          4. LOGGING_listener_name
          5. PASSWORDS_listener_name
          6. SAVE_CONFIG_ON_STOP_listener_name
          7. STARTUP_WAIT_TIME_listener_name
          8. TRACE_DIRECTORY_listener_name
          9. TRACE_FILE_listener_name
          10. TRACE_FILELEN_listener_name (new in Oracle8i )
          11. TRACE_FILENO_listener_name (new in Oracle8i )
          12. TRACE_LEVEL_listener_name
          13. TRACE_TIMESTAMP_listener_name (new in Oracle8i )
          14. USE_PLUG_AND_PLAY_listener_name
      4. D. The names.ora File
        1. NAMES.ADDRESSES
        2. NAMES.ADMIN_REGION
        3. NAMES.AUTHORITY_REQUIRED
        4. NAMES.AUTO_REFRESH_EXPIRE
        5. NAMES.AUTO_REFRESH_RETRY
        6. NAMES.CACHE_CHECKPOINT_FILE
        7. NAMES.CACHE_CHECKPOINT_INTERVAL
        8. NAMES.CONFIG_CHECKPOINT_FILE
        9. NAMES.CONNECT_TIMEOUT
        10. NAMES.DEFAULT_FORWARDERS
        11. NAMES.DEFAULT_FORWARDERS_ONLY
        12. NAMES.DOMAIN_HINTS
        13. NAMES.DOMAINS
        14. NAMES.FORWARDING_AVAILABLE
        15. NAMES.FORWARDING_DESIRED
        16. NAMES.KEEP_DB_OPEN
        17. NAMES.LOG_DIRECTORY
        18. NAMES.LOG_FILE
        19. NAMES.LOG_STATS_INTERVAL
        20. NAMES.LOG_UNIQUE
        21. NAMES.MAX_OPEN_CONNECTIONS
        22. NAMES.MAX_REFORWARDS
        23. NAMES.MESSAGE_POOL_START_SIZE
        24. NAMES.NO_MODIFY_REQUESTS
        25. NAMES.NO_REGION_DATABASE
        26. NAMES.PASSWORD
        27. NAMES.REGION_CHECKPOINT_FILE
        28. NAMES.RESET_STATS_INTERVAL
        29. NAMES.SAVE_CONFIG_ON_STOP
        30. NAMES.SERVER_NAME
        31. NAMES.TRACE_DIRECTORY
        32. NAMES.TRACE_FILE
        33. NAMES.TRACE_FUNC
        34. NAMES.TRACE_LEVEL
        35. NAMES.TRACE_UNIQUE
      5. E. Environment and Registry Variables
        1. Net8 Environment Variables
          1. TNS_ADMIN
          2. LOCAL
          3. TWO_TASK
          4. USE_SHARED_SOCKET
        2. Net8 Variables and Windows NT
          1. Setting Environment Variables Under Windows NT
          2. Setting Net8 Variables in the Windows NT Registry
      6. F. MTS Initialization Parameters
        1. LOCAL_LISTENER
        2. MTS_DISPATCHERS
        3. MTS_MAX_DISPATCHERS
        4. MTS_MAX_SERVERS
        5. MTS_SERVERS
      7. G. MTS Performance Views
        1. V$CIRCUIT
        2. V$DISPATCHER
        3. V$DISPATCHER_RATE
        4. V$MTS
        5. V$QUEUE
        6. V$SHARED_SERVER
    6. Index
    7. Colophon