ORA-609 : OPIODR ABORTING PROCESS UNKNOWN OSPID
ORA-609 : opiodr aborting process unknown ospid
WARNING: inbound connection timed out (ORA-3136)
Cause:
The ORA-609 error is thrown when a client connection of any kind failed to complete or aborted the connection
process before the server process was completely spawned.
Beginning with 10gR2, a default value for inbound connect timeout has been set at 60 seconds.
This is also triggered, when a DB session is killed/aborted manually from the OS prompt.
Solution:
Increase the values for INBOUND_CONNECT_TIMEOUT at both listener and server side sqlnet.ora file as a preventive measure.If the problem is due to connection timeouts,an increase in the following parameters should eliminate or reduce the occurrence of the ORA-609s.
Sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT=180
Listener.ora: INBOUND_CONNECT_TIMEOUT_listener_name=120
ORA-609
ORA-609 is an error message that you may see as a result of timeout issues. In this case, no modification to the actual code is needed; instead, you must examine the connection and figure out what may be triggering the timeout.
The Problem
When facing ORA-609, you will see the following error message:
ORA-609: opiodr aborting process unknown ospid
The error indicates that a client connection has failed to complete or that the connection was aborted without being successfully connected. This happens when the 60-second default timeout passes or is triggered when the database session is aborted from the operating system prompt.
The Solution
To resolve this error, you must increase the values for INBOUND_ CONNECT_ TIMEOUT on both the listener side and the server side. If you are getting ORA-609 because of a connection timeout issue, increasing the values should fix the problem. You should change INBOUND_ CONNECT_ TIMEOUT to read as the following:
Sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT=180
Listener.ora: INBOUND_CONNECT_TIMEOUT_listener_name=120
Above, the timeout seconds are being set to 120 in place of the default 60. While this simple change should fix most ORA-609 errors, if you continue to see this error then you should try to locate which client is causing the error. Set the sqlnet.ora file parameter to
sqlnet.ora file: DIAG_ADR_ENABLED = OFF
and reload the listener. Take a look at the PROGRAM and HOST fields to make sure that the timestamps of the sqlnet.log and alert.log errors are the same. After locating the client causing the error, you can enable client tracing. For client tracing assistance, consider contacting an Oracle expert or customer service provider.
You can also take a look at the listener.log to find timestamps that match the ORA-609 error in the alert.log. Again, once you locate the client causing the error, you can enable client tracing.
Looking Forward
Resetting the INBOUND_ CONNECT_ TIMEOUT should fix or at least reduce the chances of seeing error ORA-609. If you are unable to resolve the error by increasing the timeout seconds, you may want to contact your database administrator or Oracle consultant to resolve the issue. Locating and fixing the client causing the error may not be something that programmers who are just beginning to code can fix on their own. As always, check the credentials and certifications of the Oracle consultant before accepting services.
Have you gotten an ORA-00609 error or ORA-609 error? Learn how to fix it and what the cause is in this article.
Two Errors with Similar Codes
There are two ORA-609 errors that I have seen:
ORA-00609: could not attach to incoming connection ORA-609: opiodr aborting process unknown ospid
If you’re looking for a solution to either of them, you have come to the right place!
ORA-609: opiodr aborting process unknown ospid Cause and Solution
This error is usually a secondary error. This means that the actual cause of the issue is another error in the stack trace or list of errors.
If you get this error, take a look at the other errors that you can see.
ORA-00609: could not attach to incoming connection Cause
This error is usually due to timeout issues. It indicates that a client connection has failed, or that a connection was aborted without finishing the connection.
To resolve this error, you can either look for the issue that is causing the timeout to occur, or increase the timeout limit.
If you want to increase the timeout limit, change the INBOUND_CONNECT_TIMEOUT value on both the listener and server side. This can be done in the sqlnet.ora file and the listener.ora file.
If you can’t resolve this error using any of these methods, then contact your database administrator or contact Oracle support. There could be a range of things specific to your environment that cause this error.
Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!
ORA-609 with
TNS-12537: TNS:connection closed
We almost time receive an error such as ora-609 which shows
in alert log as
TNS- TNS-12537: TNS:connection closed
ns secondary err code: 12560
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
opiodr aborting process unknown ospid (12345) as a result of
ORA-609
This error means could not attach to incoming
connection, so our database process was aborted or closed because incoming
connection was not passed to it by listener. In our case we found sqlnet error
stack as shown below
TNS-12537: TNS:connection
closed
It means the dedicated process didn’t have a client connection
anymore to work.
As we all know the process of client connections:
1. First
Client initiates a connection to the
database so it connects to the listener.
2. Then
listener starts a dedicated DB process that will receive this connection or
session.
3. After
that, this dedicate process is started and listener passes the connection from
the client to this process.
4. Then
the sever process takes the connection from the listener to continue the
handshake with the client.
5. After
that Server process and client exchange messages or information required for
establishing a session or user logon.
6. Then
the session is opened now.
In
our case, it may be when the dedicated process tries to communicate with the
client it finds that connection was closed.
Solution or
Work around:
We
can eliminate this error by increasing the value of SQLNET.INBOUND_CONNECT_TIMEOUT
in sqlnet.ora file.
By default the SQLNET.INBOUND_CONNECT_TIMEOUT value is 60
seconds.
The
sqlnet.ora file can be found in RDBMS_HOME/network/admin.
For example:
$ cd $ORACLE_HOME/network/admin
$vi sqlnet.ora
And change the value of SQLNET.INBOUND_CONNECT_TIMEOUT as:
SQLNET.INBOUND_CONNECT_TIMEOUT=300
Then
save the file.
There are many more possibilities which can cause this error
such as:
1. This can happen suppose our client closed the
connection immediately after initiating it.
2. This may occur
when firewall kill the connection.
3. Sometimes, it may happen because of Database, OS or network
performance problem.
4. This error may occur when some client crashes.
Hope this may also useful here:
Hope this may useful and helpful.
Please let us know for any concerns either by below comments or write to @contact us: https://ora-data.blogspot.in/
Regards,
ora-data Team
Introduction
Different databases have their own set of common errors. In Oracle databases, ORA-00609 is one such error. This error can be a tricky one to solve, as it requires knowledge of the Oracle database and a bit of troubleshooting. This guide will provide a step-by-step guide on how to troubleshoot this issue.
Troubleshooting Steps
Identify the name of the database for which the error is generated. This can be done using the SELECT DATABASE_NAME
statement.
Determine the cause of the issue by running the SELECT * FROM V$DIAG_WARNING
statement in the database.
Check the permissions for the operating system user that is used to start the database. This user should have permission to read and write to the database files.
Check the process parameter by running the SELECT * FROM v$parameter
statement in the database. Ensure that the process parameter value is set to the correct value.
Check the log files in the Oracle database directory. This can be done by running the tail -f <Oracle_Log_File_Path>
command. Check the log files for any errors that were generated during the startup of the database.
If none of the above steps corrected the issue, then it is likely that the database was not shut down properly. In this case, the database needs to be shutdown and restarted using the SHUTDOWN IMMEDIATE
and STARTUP
commands.
ORA-00609: could not attach to incoming connection ORA-609: opiodr aborting process unknown ospid ORA-609: opiodr aborting process unknown ospid Cause and Solution — Doyensys Blog
ORA-00609: could not attach to incoming connection This error is usually a secondary error. This means that the actual cause of the issue is another error in the stack trace or list of errors. If you get this error, take a look at the other errors that you can see. Cause: could not attach to […]
Doyensys BlogDoyensys
FAQ
What is ORA-00609?
ORA-00609 is an Oracle database error that is related to connection establishment fails. This error is generated by Oracle when a process cannot attach to an incoming connection
What is the common cause of ORA-00609?
The common cause of this error is improper permission for the operating system user used to start the database, process parameter value being set wrongly, lack of access to the Oracle log files, or the database not being shut down properly.
What is the solution for ORA-00609?
The solution for this error depends on the cause. To start, identify the database name and run the SELECT * FROM V$DIAG_WARNING
statement. Check the permissions for the operating system user, the process parameter, the log files and make necessary changes. If none of these solutions work, the database needs to be shutdown and restarted.
How can I track down the root cause of ORA-00609?
The root cause of this error can be found by running a series of troubleshooting steps, as mentioned earlier. First, identify the database name and run the SELECT * FROM V$DIAG_WARNING
statement. Check the permissions for the operating system user, the process parameter, the log files and make necessary changes. If none of the changes work, then it is likely that the database was not shut down properly and needs to be restarted.
What is the difference between ORA-00609 and ORA-03135?
ORA-00609 is related to connection establishment and is generally caused by improper permissions or process parameters being set incorrectly. ORA-03135 is an error generated by Oracle when a client connection is terminated due to abnormal circumstances. This could be due to network errors or the client exiting unexpectedly.
Cause: The ORA-609 error is thrown when a client connection of any kind failed to complete or aborted the connection process before the server process was completely spawned. Beginning with 10gR2, a default value for inbound connect timeout has been set at 60 seconds. This is also triggered, when a DB session is killed/aborted manually from the OS prompt. Solution: Increase the values for INBOUND_CONNECT_TIMEOUT at both listener and server side sqlnet.ora file as a preventive measure. If the problem is due to connection timeouts,an increase in the following parameters should eliminate or reduce the occurrence of the ORA-609s. Sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT=180 Listener.ora: INBOUND_CONNECT_TIMEOUT_listener_name=120 For more details -- refer to metalink note [ID 1121357.1]
opiodr aborting process unknown ospid
as a result of ora-609
opiodr aborting process unknown ospid as a result of ora-609
TNS-12560: TNS:protocol adapter errorORA-609 : opiodr aborting process
unknown ospid (2230_87567)
· Details
on the ORA-609 error, see MOSC note 1121357.1.
As a general error, the ORA-609 error indicates that a client
connection failed to complete. This can be an ORA-609 from an abort or
killing an Oracle session.
To diagnose any error, you start by using the OERR
UTILITY to display the ORA-609 error:
Example :
bash-3.2$ oerr ora 609
00609, 00000, «could not attach
to incoming connection»
// *Cause: Oracle process
could not answer incoming connection
// *Action: If the situation
described in the next error on the stack
//
can be corrected, do so; otherwise contact Oracle Support.
The ORA-609 error is thrown when a client connection
of any kind failed to complete or aborted the connection process before the
server process was completely spawned. Beginning with 10gR2, a default value
for inbound connect timeout has been set at 60 seconds. This is also
triggered when a DB session is killed/aborted manually from the OS prompt.Solution:
Increase the values for INBOUND_CONNECT_TIMEOUT at
both listener and server side sqlnet.ora file as a preventive measure.
If the problem is due to connection timeouts, and
increase in the following parameters should eliminate or reduce the occurrence
of the ORA-609 error.
ü Sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT=180
ü Listener.ora:
INBOUND_CONNECT_TIMEOUT_listener_name=120
ORA-12560: TNS: protocol adapter error
Cause: A generic protocol adapter error occurred.
Action: Check addresses used for proper
protocol specification. Before reporting this error, look at the error stack
and check for lower level transport errors. For further details, turn on
tracing and re-execute the operation. Turn off tracing when the operation is
complete.
Expected
Fix :
1.
Check
environment variable like $ORACLE_HOME, $PATH, $ORACLE_BASE
2.
TNS_ADMIN
is set properly
3.
Verify
firewall that not blocking ports
I am running a batch java application. The application runs every 10/20 minutes in my Production and UAT environment and I get database alerts like this:
Thu Feb 06 15:15:08 2014
opiodr aborting process unknown ospid (28246400) as a result of ORA-609
After researching a bit on the internet the suggested fix for these alerts is to change INBOUND_CONNECT_TIMEOUT as:
Sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT=180
Listener.ora: INBOUND_CONNECT_TIMEOUT_listener_name=120
We have changed the setting on the database server side but don’t know where to change in the client application. We are using c3p0 to create a connection pool and we are setting only these parameters:
dataSource.setAcquireRetryDelay(30000);
dataSource.setMaxPoolSize(50);
dataSource.setMinPoolSize(20);
dataSource.setInitialPoolSize(10);
We have other web services running on the same server as the batch application and they use Tomcat’s DBCP pool and they don’t seem to create any alerts. Also strangely enough, our batch application doesn’t generate the alerts in lower test environments. They happen once in a while but the UAT and PROD environments get these alerts very frequently based on the schedule. Any suggestions what configurations to set in the c3p0 pool or should I try changing to another pool API like DBCP?
Update: I have added a few more parameters in the datasource and the frequency of alerts has reduced. I added the following and the number of alerts have gone down from 15 an hour to 4 an hour.
dataSource.setLoginTimeout(120);
dataSource.setAcquireRetryAttempts(10);
dataSource.setCheckoutTimeout(60000);