Feedback
Did this article resolve your question/issue?

   

Article

DataDirect Troubleshooting tips for "ORA-03114 not connected to ORACLE"

« Go Back

Information

 
TitleDataDirect Troubleshooting tips for "ORA-03114 not connected to ORACLE"
URL Name3032
Article Number000143210
EnvironmentProduct : Connect for ODBC and Connect for JDBC Oracle drivers
Version : All supported versions
OS: All supported versions
Database: Oracle
Application: All supported applications
Question/Problem Description
The Connect for JDBC and ODBC Oracle Wire Protocol driver connects and the application is able to retrieve results, but after a certain period of inactivity (idle), the Oracle error "ORA-03114 not connected to ORACLE" is returned when the application tries to continue its activity.

 

Steps to Reproduce
Clarifying Information
Error MessageORA-03114 not connected to ORACLE
Defect Number
Enhancement Number
Cause
The network connection has been terminated, possibly because a firewall or router has determined that the connection is idle and terminates it.
-
Resolution

1. Verify there is no firewall or router setting which terminates connections which are active for longer than x minutes.

2. Verify there is no firewall or router setting which terminates connections which are idle for longer than x minutes.

3. Set SQLNET.EXPIRE_TIME on the Oracle database so that the database will send a packet every x minutes, so that the firewall, router, etc does not close the connection due to being idle.

1. The Oracle documentation lists the following details for the  sqlnet.ora parameter: SQLNET.EXPIRE_TIME

Purpose:
Use parameter SQLNET.EXPIRE_TIME to specify the time interval, in minutes, to send a probe to verify that client/server connections are active. Setting a value greater than 0 ensures that connections are not left open indefinitely, due to an abnormal client termination. If the probe finds a terminated connection, or a connection that is no longer in use, it returns an error, causing the server process to exit. This parameter is primarily intended for the database server, which typically handles multiple connections at any one time.

Limitations on using this terminated connection detection feature are: 
- It is not allowed on bequeathed connections. 
- Though very small, a probe packet generates additional traffic that may downgrade network performance. 
- Depending on which operating system is in use, the server may need to perform additional processing to distinguish the connection probing event from other events that occur. This can also result in degraded network performance.

Default:  0
Minimum Value: 0
Recommended Value: 10
Example:
SQLNET.EXPIRE_TIME=10

Perform the following test:

  • Stop your Oracle database instance
  • Edit the $ORACLE_HOME/network/admin/sqlnet.ora file and add SQLNET.EXPIRE_TIME=3
  • Restart the Oracle database instance
  • Do a full connect with the Oracle WP driver via ODBCTest as SYSTEM/MANAGER
  • Execute the following stored procedure: {call dbms_lock.sleep(3000)} (sleeps for 50 minutes). Adapt the value to your needs.
2. Check the Oracle setting 'connection idle time limit.
 
  • This can be set in the Oracle Enterprise Manager Console.
  • Select the database you are using and click down to the "security\profile\\idle time".
  • Setting this to something lower than 60 minutes will cause the user to be disconnected after that XX minutes of inactivity.
Workaround
Notes
References to other documentation:
Progress article:
 Broken pipe error when connecting to Oracle databases
Last Modified Date11/20/2020 7:08 AM
Files
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.