we have a dot net application and it connecting to Oracle and fetching data and moving to SQL server. it was working very fine. just started giving error ORA-12560: TNS:protocol adapter error . Tnsping also giving this error. but if i stop this application and tnsping then its success. again starting the application on the first 10 minutes its working perfectly and gain giving same error. every 5 seconds this application connecting to Oracle databse.
any idea what is this error; and how to resolve. there is lots of questions over here,but didnt find a soulution .
highly appreciate your comments against this query
It seems you have some sort of resource leak. Do you close connections properly ?
Also, as ar said in comment, why don't you just keep this connection open ? IIRC Establishing conn is costly operation in any DBMS.
Also, from documentation:
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 reexecute the operation. Turn off tracing when the operation is complete.
UPDATE:
Problem could be caused by overflow of Windows event journal. Check Oracle's events here:
Start menu => Control Panel => Administrative Tools => Event Viewer
You should either clear journal manually or increase its' size
Related
Status : Failure -Test failed: Listener refused the connection with the following error:
ORA-12518, TNS: listener could not hand off client connection
Please follow below mentioned steps:
1.Processes parameter and verified by the v$resource_limit view.
2.If you are using a shared server, you may increase the number of dispatchers.
3.Check the alert log for any possible errors.
4.Check the swap, memory usage of the OS.
5.Check the Sid name of database
Action: Turn on listener tracing and re-execute the operation. Verify that the listener and database instances are properly configured for direct handoff.
I am getting the error as 'ORA-03135: connection lost contact' from my C# code while making connection to oracle DB. The same job works just fine from our test server. But it failed with ORA-03135: connection lost contact error from prod server.
The C# code use ODAC to connect to oracle DB.
Appreciate your inputs.
Thank you
This error is most likely caused by a firewall blocking the connection request. Check for any firewalls in your network or on the database server and make sure your access rules are configured correctly.
Also check this link for more troubleshooting tips: http://www.dba-oracle.com/t_ora_03135_connection_lost_contact.htm
ORA-03135: connection lost contact tips
What can I do to avoid the ORA-03135 error?
Answer: The oerr utility shows this for the ORA-03135 error:
ORA-03135: connection lost contact
Cause:
1) Server unexpectedly terminated or was forced to terminate.
2) Server timed out the connection.
Action:
1) Check if the server session was terminated.
2) Check if the timeout parameters are set properly in
sqlnet.ora.
The ORA-03135 error is common when connecting remotely when a firewall
terminates the connection.
One solution for the ORA-03135 error is to increase the value of the
sqlnet.ora expire_time parameter in the sqlnet.ora file or to check
for a expire parameter in a SQL*Plus profile.
To diagnose the ORA-03135 error, start by checking to see if the OS
PID still exists, using the "ps -ef | grep" syntax.
Check to see if there is a Network Address Translation (NAT) between
the client and server
In Windows, check to see if a Windows firewall is checking for your
local connections.
...
Also, setting the parameters sqlnet.inbound_connect_timeout and
inbound_connect_timeout_listenername to 0 can stop the ORA-03135
error.
When our application tries to connect Oracle database, this exception is thrown:
java.sql.SQLRecoverableException: Connection has been administratively disabled by console/admin command. Try later. java.lang.Exception: It was disabled at Tue Oct 20 23:55:14 CEST 2015
But, from Weblogic console the connection test returns OK.
Weblogic version: 12.1.3.0.0
Any explanation is welcome. Thanks
The reason the test works is because that is creating a connection and running a test query. That is not what your code is doing when it is using the data source in an ejb. The code is going through the connection pool and that is what has been marked as bad. There is no solution provided by Oracle that I have found except to: restart the server and that will re-enable the connection pool.
I suspect you have "Test connections on reserve" set because that is when this usually arises. What Weblogic does is: before it returns a connection from the pool it will run a test query, if the test query fails it waits and runs it one more time. If the query fails again it marks the connection as unhealthy. If all the connections in the pool become unhealthy it will mark the pool as disabled and gives you the error message you see: 'Connection has been administratively disabled by console/admin command. Try later.'
In regards to the 'Try Later' part of the error message, as far as I can tell Oracle is wrong about trying again later. I have never seen it recover later.
I'd like to share this article that help me out to understand better my problem:
https://www.techpaste.com/2012/09/connection-administratively-destroyed-reconnect-oracle-weblogic-server/
The “java.sql.SQLException: Connection has been administratively destroyed.” is expected:
the DB was shutdown; even if it was restarted later, the JDBC connection are pointing to DB processes
that have been destroyed.
You need to restart your WebLogic Server to recreate new JDBC connections.
All the current transactions are lost, as the database was shutdown.
High availability of your RDBMS is required to minimize this issue.
Is there any other error before that one ?
Maybe in the log you can find that connection is been closed.
You can avoid this by selecting "Test on Connection Reserve" in the datasource.
I am facing an issue where my test suite randomly fails with an socket exception
oracle.jdbc.driver.T4CStatement 1267 - Throwing SQLException: java.net.SocketException: Software caused connection abort: recv failed
The test suite fails with this exception when a given set of test cases are executed in a particular order. I got the above error log after enabling the oracle jdbc driver logs. The query which leads to this error is always a "DROP SEQUENCE query". There is nothing special about this query since it is fired 'n' number of times during the execution flow.
One of the blog link points out that the above error is because the server side sockets gets closed before the client expects. To troubleshoot more on this point I tried analyzing the Oracle TNSListener logs - listener.log file but was not able to gather much information since the log file only contained information about the socket CONNECT function call.
What could be the possible causes of the above error in addition to the one the blog link mentions?
How can I configure the Oracle TNSListener to provide more detailed information about the socket communication? For e.g. Trace information when the server socket close event is fired.
I would appreciated if anyone could point out to a possible cause of this error or provide more information which could help me to troubleshoot this issue further based on the above two points
You can set the trace level if you have access to the lsnrctl utility:
LSNRCTL> show trc_level
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx)(PORT=1521)))
LISTENER parameter "trc_level" set to off
The command completed successfully
LSNRCTL> set trc_level admin
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx)(PORT=1521)))
LISTENER parameter "trc_level" set to admin
The command completed successfully
LSNRCTL> show trc_level
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx)(PORT=1521)))
LISTENER parameter "trc_level" set to admin
The command completed successfully
LSNRCTL>
From the docs, trc_level is one of:
Specify one of the following trace levels:
off for no trace output
user for user trace information
admin for administration trace information
support for Oracle Support Services trace information
I would like to handle an OracleException thrown when my network/database connection is interrupted, where can I find out what error codes I might can receive?
I guess since we are talking about a connection interruption these would be technically TNS errors such as ORA-12560 "TNS:protocol adapter error." But I have noticed a couple others depending on where exactly the connection is lost and would like to get a full list.
Take a look at Oracle Database Error Messages 11g Release 1 (11.1). And here are the search results for TNS errors.
There's a full list here:
http://ora-code.com
But note that some of them, like "TNS:protocol adapter error", can actually mean many different things.
ORA-12154 TNS:could not resolve service name"
ORA-12203 TNS:unable to connect to destination"
ORA-12500 TNS:listener failed to start a dedicated server process"
ORA-12545 TNS:name lookup failure"
ORA-12560 TNS:protocol adapter error"