Here are some detailed tuning measures that should help:
The ora-12571 usually indicates an instability between Oracle and the network. Try performing the following to eliminate the
error:
- Shutdown the database
- Stop the listener
- Remove all the *.dat files
in the c:\orant\otrace80\admin directory
- Specify the parameter HASH_JOIN_ENABLED = FALSE
in the file
INIT(sid).ORA file
- Specify the parameter EPC_DISABLED =TRUE
in the registry
(REGEDT32 -> HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE)
- Restart the database
- Specify the parameter TCP_KEEPALIVE
in the Windows NT registry
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
Edit - Add value : KeepAliveTime (REG_DWORD)
Decimal -> 180000 (for example = 3 minutes)
- Edit the file listener.ora. Configure the parameter
TRACE_LEVEL_LISTENER = OFF
- Remove unused protocol addresses, like Named Pipes and SPX, from the LISTENER.ORA file - Start the listener
- Specify the SQLNET.EXPIRE_TIME = 0 parameter
in the sqlnet.ora file
- Monitor your network
This can also be a result of a client machine abnormally disconnecting (such as a PC rebooting while a query is running), the
server process tries to communicate with the client, the client is no longer there, thus the
error is generated.
This
error can also be caused by a client issuing a CTRL-C while query results are being returned.
This
error i sometimes caused by poorly written applications that do not wait for all data to be returned before continuing. The
server tries to send data to the client, but the client is not waiting for data.
The listener may be timing out. Go to the listener.ora file to see what the CONNECT_TIMEOUT_ parameter is set to. Try increasing this
in
increments of 5 (10 to 15). Once the parameter is changed, stop and restart the listener.
It is important to note that the 'LISTENER' part of this parameter is really the listener name, and is not a static part of the parameter name.
There should be one CONNECT_TIMEOUT_ for each and every listener defined
in the listener.ora file. A default value of 10 seconds will be used if one is not specified
in CONNECT_TIMEOUT_ parameter.
Also, checking the listener.log may provide more detailed
error messages.