Technology Network Community
Oracle Database
Fusion Middleware
Development Tools
Server & Storage Systems
Enterprise Management
Berkeley DB Family
Cloud Computing
Big Data
Business Intelligence
Migration and Modernization
E-Business Suite
PeopleSoft Enterprise
JD Edwards World
JD Edwards EnterpriseOne
User Productivity Kit Pro (UPK) and Tutor
Governance, Risk & Compliance (GRC)
Master Data Management (MDM)
Oracle CRM On Demand
On Demand: SaaS and Managed Applications
AutoVue Enterprise Visualization
Agile PLM
Endeca Experience Management
Fusion Applications
Archived Forums



General Questions

TNS-12560: TNS:protocol adapter error

So, here's my problem:  I've been told to go play with Oracle Designer 10g so that I can tutor some developers on how to test forms that they create (I don't know anything about Designer; everything I've done to this point has dealt exclusively with the Oracle Database Server and Oracle Application Server). It seems like only one repository can be installed on a database at a time, and in my mucking around I really don't want to blow away our developers' work, so I decided I'd install a new instance of a database on my RHEL3 box and create a new Designer repository that I can screw around with.  Installing the database appeared to go smoothely... now I need to talk to it.  I can `ping` the box that the database is on just fine, but if I try a `tnsping` to the database instance, I receive: TNS-12560: TNS:protocol adapter error  Naturally, attempting to connect to the database instance produces: ORA-12560: TNS:protocol adapter error  I'm not really sure where to start troubleshooting this one. Thus far, I have done the following: Made sure the listener is up. Made sure the database is up. Made sure the database instance appears in `lsnrctl status` with a READY status. Triple-checked the syntax of my tnsnames.ora file. `tnsping` does correct identify the connect string to the database, and it does have the correct parentheses. Connected to the database locally (`sqlplus username@database` from the machine with "database"). Connected to another database from the new server (`sqlplus username@anotherDatabase` from the machine with "database"). Attempted to turn on tracing on the client machine: # sqlnet.ora Network Configuration File: $ORACLE_HOME/network/admin/sqlnet.ora # Generated by Oracle configuration tools.  NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) TRACE_LEVEL_CLIENT = USER no avail, I might add (haven't been able to locate the trace file, or it isn't being created).  Does anyone have any thoughts as to why I'm seeing this error? Is there even the slightest hope that someone will answer when threads only stay on the first page of postings for about 30 minutes on this forum?

Hi Pls post contents of your TNS and Listener files. Rgds Adnan

Database server's listener.ora:  # listener.ora Network Configuration File: /opt/oracle/jersalem/network/admin/listener.ora # Generated by Oracle configuration tools.  # trace levels 0=NONE 4=USER 10=ADMIN 16=SUPPORT  SID_LIST_LISTENER =   (SID_LIST =     (SID_DESC =       (SID_NAME = PLSExtProc)       (ORACLE_HOME = /opt/oracle/jersalem)       (PROGRAM = extproc)     )   )  LISTENER =   (DESCRIPTION_LIST =     (DESCRIPTION =       (ADDRESS_LIST =         (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))       )       (ADDRESS_LIST =         (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))       )     )   )  Database server's tnsnames.ora:  # tnsnames.ora Network Configuration File: /opt/oracle/jersalem/network/admin/tnsnames.ora # Generated by Oracle configuration tools.  JERSALEM =   (DESCRIPTION =     (ADDRESS = (PROTOCOL = TCP)(HOST = = 1521))     (CONNECT_DATA =       (SERVER = DEDICATED)       (SERVICE_NAME =     )   )  EXTPROC_CONNECTION_DATA =   (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))     )     (CONNECT_DATA =       (SID = PLSExtProc)       (PRESENTATION = RO)     )   )  Client's sqlnet.ora:  # sqlnet.ora Network Configuration File: D:\oracle\devsuite-101202\network\admin\sqlnet.ora # Generated by Oracle configuration tools.  SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH = (TNSNAMES)  Client's tnsnames.ora:  # tnsnames.ora Network Configuration File: D:\oracle\devsuite-101202\network\admin\tnsnames.ora # Generated by Oracle configuration tools.  EXTPROC_CONNECTION_DATA =   (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = TCP)(HOST = = 1521))     )     (CONNECT_DATA =       (SID = PLSExtProc)     )   )  JERSALEM =   (DESCRIPTION =     (ADDRESS = (PROTOCOL = TCP)(HOST = = 1521))     (CONNECT_DATA =       (SERVER = DEDICATED)       (SERVICE_NAME =     )   ) 

...I've been down this road of troubleshooting with several other Oracle-certified coworkers already, however, so I doubt the contents of the $ORACLE_HOME/network/admin directories are to blame.

 Is there even the slightest hope that someone will   answer when threads only stay on the first page of   postings for about 30 minutes on this forum?  Umm, maybe.  Some of us do read beyond the first page...  It seems to me that your database server's listner.ora file is only configured for handling EXTPROC calls.  Don't you need the GLOBAL_DB or at least some other SID name in there as well?  That would explain why you can connect locally but not remotely.  Cheers, APC

Well, we've been using a working server's files as a template when we've been making changes. The working server is able to receive connections from anywhere.  Working server's listener.ora  # listener.ora Network Configuration File: /opt/oracle/oasdev/network/admin/listener.ora # Generated by Oracle configuration tools.  SID_LIST_LISTENER =   (SID_LIST =     (SID_DESC =       (SID_NAME = PLSExtProc)       (ORACLE_HOME = /opt/oracle/oasdev)       (PROGRAM = extproc)     )   )  LISTENER =   (DESCRIPTION_LIST =     (DESCRIPTION =       (ADDRESS_LIST =         (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))       )       (ADDRESS_LIST =         (ADDRESS = (PROTOCOL = TCP)(HOST = oasdev)(PORT = 1521))       )     )   )  This looks almost identical to the listener.ora on the server, and has never been edited by human hands (except, of course, for my muddling with this copy to present the file nicely in HTML). In other words, this file was generated for us by the Oracle Installer, and it works perfectly for every client we've tried to connect to it with.  This is where my Oracle-certified coworkers became confused. Why would we be seeing connection errors on one machine but not the other? Why only with Oracle software? Neither machine is using iptables or any other firewall.  The only way in which the machines differ is that Oasdev is 64-bit RHEL3 (Taroon) and Jersalem is 32-bit CentOS 4.1 (Final). They are otherwise 100% identical - they were even assembled into the same model number of case.

I think your problem is in the use of localhost in the listener.ora, you need to have the server name.  Compare the "working" server with the other one.  localhost is generally which is the wrong IP address.  Database server listener.ora LISTENER =   (DESCRIPTION_LIST =     (DESCRIPTION =       (ADDRESS_LIST =         (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))       )       (ADDRESS_LIST =         (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))       )     )   )  Working server listener.ora LISTENER =   (DESCRIPTION_LIST =     (DESCRIPTION =       (ADDRESS_LIST =         (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))       )       (ADDRESS_LIST =         (ADDRESS = (PROTOCOL = TCP)(HOST = oasdev)(PORT = 1521))       )     )   ) HTH John

Jeez.  I've been fighting this issue on and off for a few weeks.  I pretty much tried all the recommendations in this string already.  I entered a TAR forwarding all my client and server traces.  Oracle worked with me several days.  The short of it was that they determined that the client was performing correctly but that the listener was not receiving the connection request so it must be the server or network.  My server and Linux (RH 2.6.9-22.0.1.ELsmp) admins have checked and rechecked, removed all security, etc to try to resolve this.  No luck to date.  So I'm sitting here with a new server and a new Oracle install.  In short, all dressed up and no place to go!   Frustration level: Meltdown  My recent TAR 4846448.993 - TNSPING FAILS (TNS-12560, TNS-00538 BETWEEN WIN XP CLIENTS AND LINUX DB SERVER. if you want Oracle to refer to anything to support your claims!

Hmm... yeah, that could cause problems.   I fixed that and restarted the listener, to no avail. Just to be sure, I did `ping hostname` from the server to make sure that the IP was resolving correctly (and not to again). Then I restarted both the listener and the database server, just in case Oracle had some undocumented relations (don't get me started on what Oracle doesn't document...), and I'm still not able to make a connection from my Windows client to the Linux server.  The error message isn't even changing... (grr...)  Oh yeah, one other note: I'm not just seeing connection difficulties between this server and Windows XP installations. I can't make any Oracle software connect to this server from anywhere (but can still SSH, SFTP, ICMP-ECHO, etc), including other CentOS, RHEL3, Mandriva, and Solaris, and Windows 2000 platforms.  There may be other networking issues gumming up the process, but I've been similarly assured that there's no reason this thing shouldn't be talking back to everybody.

Same here.  All Oracle client connections from any Windows XP, 2000, and Linux box fails with the 12560.  All other connectivity SSH, etc like you listed works great.  My underlying TNSPING trace records a primary transport protocol error of 538.  For me this error happens when a trying to create and use a socket after a "tcp.validnode_checking not turned on" entry.  Try adding a TNSPING trace on your client SQLNET.ORA if you haven't already.  Set the trace level to 16.  I'm still trying to figure out how to decode this error.  An old Oracle note 117976,1 says to reference /usr/include/sys/errno.h.  I don't see anything in there I can use however.

I have the same problem with 10g on a XP machine when I try to use sqlplus /nolog to start the database. I always get the adapter error. I have to start it using window's services and I can only log in from sql*plus.  thanks.  ben

Hi,      I'm also facing this error from last few days.I'm not gettitng any solution even though I've created a tar for it.I've installed on linux RHEL4. Both listener and database are running fine on the server,but when I'm doing tnsping from the client XP it's not working and giving the error TNS-12560.Please provide the solution at the earliest.

My problem is solved!!  Issue a telnet <host> <port> and see if the attempt fails.  If it does, that means the Oracle port (1521 in my case) is blocked.  Go into the Security Level Configuration on your Linux server.  In Other Ports, specifically enter <port>:tcp, (example 1521:tcp.  When I did this, my connectivity issues vaporized!  Hopefully yours does as well...  Now I'm going to buy myself a well deserved cup of coffee!  Also in celebration, I will now demonstrate the proper way to perform a cartwheel for my coworkers:-)  Dale

omg  ...who's bright idea was it to put a "firewall" on top of a perfectly good iptables install/config? (Well, that solves my problems... now I feel really incompetent...)

Hi,      I'm installing 8i on my windows 2000 server.While creating database during the installation it's throwing the error ORA-12560 TNS:protocol adapter error.Please guide.

Related Links

delete duplicate rows and store in a new table
tracing user
regarding lob column
import only rows
How to extend temp segments
Database buffer cashe and process
In 2 Node RAC clients always connect to Node 2...
Which user is running the oracle database software?
Looking RAC Courses
How to check which query is consuming most resources....
Can I access data from second database while working in first database
query regarding Core_dump_dest
oracle does not start automatically on AIX
Database Performance.
Sql loder