ORA-12514: TNS Listener Does Not Currently Know of Service Requested in Connect Descriptor – Complete Oracle DBA Guide
ORA-12514: TNS Listener Does Not Currently Know of Service Requested in Connect Descriptor – Complete Oracle DBA Guide
Published: May 2026
Last Updated: July 2026
Reading Time: 15 Minutes
Applies To: Oracle Database 11g, 12c, 18c, 19c, 21c, 23ai, Oracle RAC, Oracle Data Guard, Oracle Net Services, Oracle Cloud Infrastructure (OCI)
The ORA-12514: TNS listener does not currently know of service requested in connect descriptor error is one of the most common Oracle Net Services errors encountered by Oracle Database Administrators, developers, and application administrators.
This error occurs when a client successfully reaches the Oracle Listener, but the listener cannot find the requested database service. Unlike network connectivity issues where the listener is unavailable, ORA-12514 indicates that communication with the listener has been established; however, the specified SERVICE_NAME has not been registered or recognized.
ORA-12514 commonly appears after database startup, during Oracle Data Guard role transitions, after creating a new Pluggable Database (PDB), when configuring Oracle RAC services, or due to incorrect connection strings in SQL*Plus, SQL Developer, JDBC applications, or enterprise applications.
In this comprehensive guide, you'll learn how Oracle Listener registration works, why ORA-12514 occurs, and how to diagnose and resolve the issue using Oracle-recommended troubleshooting techniques and real-world DBA practices.
Quick Solution
ORA-12514 usually indicates that the requested database service has not been registered with the Oracle Listener.
In most situations, follow these steps:
- Verify the SERVICE_NAME in the client connection string.
- Check the listener status using
lsnrctl status. - Verify registered services using
lsnrctl services. - Ensure the database instance is OPEN.
- Force dynamic registration if necessary.
- Confirm LOCAL_LISTENER configuration.
- Restart the listener only if required.
In many environments, simply starting the database or forcing service registration resolves the issue without modifying listener configuration files.
Table of Contents
- What is ORA-12514?
- Error Message
- How Oracle Listener Works
- Dynamic vs Static Service Registration
- SERVICE_NAME vs SID
- Common Symptoms
- Common Causes
- Step-by-Step Troubleshooting
- Production Case Study
- Best Practices
- Frequently Asked Questions
Error Message
ORA-12514: TNS: listener does not currently know of service requested in connect descriptor
Depending on the Oracle client, additional details may accompany the error, including the service name requested by the client.
What Does ORA-12514 Mean?
Oracle Net establishes communication between client applications and the Oracle Database through the Oracle Listener. When a client connects, the listener examines the requested SERVICE_NAME contained in the connect descriptor.
If the requested service is registered with the listener, the connection is handed off to the appropriate database instance. If the listener cannot locate the requested service, Oracle raises ORA-12514.
In simple terms, the listener is running, but it does not recognize the service that the client is requesting.
One of the biggest misconceptions is that ORA-12514 means the listener is down. In reality, the listener is usually running correctly. The problem is typically an incorrect SERVICE_NAME or a missing service registration.
How Oracle Listener Works
The Oracle Listener is a server-side process that accepts incoming client connection requests and routes them to the appropriate database service.
A typical connection workflow is:
Client Application
│
▼
Oracle Net
│
▼
Oracle Listener
│
▼
Registered Database Service
│
▼
Database Instance
If the requested service is not registered, the connection stops at the listener and ORA-12514 is returned.
Dynamic vs Static Service Registration
Oracle supports two methods for registering database services with the listener.
Dynamic Registration
Dynamic registration is the recommended approach. The database automatically registers its services with the listener using the PMON (or equivalent background registration mechanism in newer releases). This requires correct listener configuration and appropriate initialization parameters such as LOCAL_LISTENER.
Static Registration
Static registration is configured manually in the listener.ora file. It is commonly used for special scenarios such as external procedures, some Data Guard configurations, or when dynamic registration is not suitable.
Whenever possible, rely on dynamic service registration. It simplifies administration and automatically updates the listener when database services start or stop.
SERVICE_NAME vs SID
Although they are often confused, SERVICE_NAME and SID represent different concepts.
| Parameter | Description |
|---|---|
| SERVICE_NAME | Logical database service used by clients for connections. |
| SID | Specific Oracle database instance identifier. |
Modern Oracle client connections should generally use SERVICE_NAME rather than SID, especially in RAC, Data Guard, and Multitenant environments.
Common Symptoms
- Applications fail to connect while the listener is running.
- SQL*Plus returns ORA-12514 immediately after login.
- SQL Developer reports that the requested service is unknown.
- JDBC applications cannot establish database sessions.
- Oracle Enterprise applications fail after database startup.
- Connections fail immediately after creating a new PDB.
- Data Guard clients cannot connect following a role transition.
- Oracle RAC services are unavailable on one or more nodes.
Common Causes
- Incorrect SERVICE_NAME in the client connection string.
- Database instance is not OPEN.
- Service has not yet registered with the listener.
- Incorrect LOCAL_LISTENER parameter.
- Listener started before the database and dynamic registration has not completed.
- Incorrect listener.ora configuration.
- Incorrect tnsnames.ora configuration.
- PDB service is not open.
- Oracle RAC service configuration issues.
- Oracle Data Guard role transition not fully completed.
Why ORA-12514 Happens
When a client requests a connection, the listener checks its list of registered services. If the requested service is absent, the listener cannot route the connection to a database instance and returns ORA-12514.
In many production environments, this occurs immediately after a database startup because dynamic service registration has not yet completed. In other cases, the client simply references an incorrect service name or attempts to connect to a service that no longer exists.
Always verify the service name using lsnrctl services before modifying listener configuration files. Most ORA-12514 incidents are resolved by correcting the client connection string or allowing the database to register its services dynamically.
Next: Part 2 covers complete troubleshooting procedures, including lsnrctl status, lsnrctl services, verifying LOCAL_LISTENER, checking listener.ora and tnsnames.ora, SQL Developer and JDBC troubleshooting, Oracle RAC and Data Guard considerations, and a real-world production case study.
Step-by-Step Troubleshooting
Once ORA-12514 occurs, the objective is to determine why the requested service is unavailable to the Oracle Listener. The following steps represent the troubleshooting process commonly used by Oracle DBAs in production environments.
Solution 1 – Verify the Listener Status
The first step is to confirm that the Oracle Listener is running.
lsnrctl status
A healthy listener should display:
- Listener Name
- Listening Endpoints
- Registered Services
- Instance Status
If the listener is not running, start it using:
lsnrctl start
ORA-12514 usually means the listener is running. If the listener were unavailable, Oracle would typically return ORA-12541 (TNS: No Listener).
Solution 2 – Check Registered Services
Display every service currently registered with the listener.
lsnrctl services
Typical output:
Service "orcl" has 1 instance(s). Instance "orcl", status READY.
If the requested service is missing, the listener cannot establish the connection.
Solution 3 – Verify the Database is Open
Connect locally as SYSDBA.
sqlplus / as sysdba
Check the database status.
SELECT status FROM v$instance; SELECT open_mode FROM v$database;
The database should normally be in OPEN mode.
Solution 4 – Verify SERVICE_NAMES
Display the database service names.
SHOW PARAMETER service_names;
or
SELECT value FROM v$parameter WHERE name='service_names';
Ensure that the SERVICE_NAME used by the client exactly matches one of the registered database services.
Solution 5 – Force Dynamic Registration
Sometimes the listener starts before the database, delaying automatic service registration.
Force immediate registration using:
ALTER SYSTEM REGISTER;
After executing the command, verify registration again.
lsnrctl services
Many ORA-12514 incidents are resolved with this single command.
Solution 6 – Verify LOCAL_LISTENER
Dynamic registration depends on the LOCAL_LISTENER initialization parameter.
Check its value.
SHOW PARAMETER local_listener;
If necessary, configure it correctly.
ALTER SYSTEM SET LOCAL_LISTENER= '(ADDRESS=(PROTOCOL=TCP) (HOST=dbserver) (PORT=1521))' SCOPE=BOTH;
Run:
ALTER SYSTEM REGISTER;
Solution 7 – Verify listener.ora
Review the Listener configuration file.
Typical location:
$ORACLE_HOME/network/admin/listener.ora
Example:
LISTENER= (DESCRIPTION_LIST= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP) (HOST=dbserver) (PORT=1521)) ))
Ensure that the hostname and listener port are correct.
Solution 8 – Verify tnsnames.ora
Incorrect client connection descriptors are one of the most common causes of ORA-12514.
Example configuration:
ORCL= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP) (HOST=dbserver) (PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=orcl) ))
Verify that:
- Hostname is correct.
- Port is correct.
- SERVICE_NAME matches the database.
Solution 9 – SQL Developer Connection
For Oracle SQL Developer:
- Choose Service Name instead of SID (when appropriate).
- Verify Host.
- Verify Port.
- Verify Service Name.
- Test the connection before saving.
Solution 10 – JDBC Applications
Verify the JDBC URL.
Correct example:
jdbc:oracle:thin:@//dbserver:1521/orcl
Many Java applications fail because the service name is misspelled or references an old database service.
Solution 11 – Oracle RAC Considerations
In Oracle RAC environments, services may run on specific nodes.
Check cluster services.
srvctl status service
Also verify:
- SCAN Listener
- VIP configuration
- Preferred instances
- Available instances
Solution 12 – Oracle Data Guard Considerations
ORA-12514 frequently appears immediately after a switchover or failover because the listener has not yet registered the new primary database service.
Recommended actions:
- Verify the database role.
- Verify service registration.
- Execute ALTER SYSTEM REGISTER;
- Restart application services if necessary.
Real Production Case Study
An Oracle 19c production database was restarted during scheduled maintenance.
After startup, application users immediately received:
ORA-12514: listener does not currently know of service requested
The listener was running normally.
Investigation showed that the database service had not yet completed dynamic registration.
The DBA executed:
ALTER SYSTEM REGISTER;
Within a few seconds the service appeared in:
lsnrctl services
Application connectivity was immediately restored without restarting either the database or the listener.
Troubleshooting Checklist
| Verification | Status |
|---|---|
| Listener Running | ☐ |
| Database OPEN | ☐ |
| Service Registered | ☐ |
| LOCAL_LISTENER Verified | ☐ |
| listener.ora Checked | ☐ |
| tnsnames.ora Checked | ☐ |
| Client SERVICE_NAME Verified | ☐ |
| ALTER SYSTEM REGISTER Executed | ☐ |
| Connection Successfully Tested | ☐ |
Oracle Version Considerations
Although ORA-12514 exists across multiple Oracle Database releases, service registration and listener behavior have evolved over time. Understanding these differences helps DBAs troubleshoot connection problems more efficiently.
| Oracle Version | Listener Behavior |
|---|---|
| Oracle 11g | Dynamic service registration through PMON is commonly used. |
| Oracle 12c | Supports Multitenant architecture where each PDB can register its own services. |
| Oracle 19c | Long Term Support (LTS) release with enhanced service management and RAC integration. |
| Oracle 21c / 23ai | Improved cloud integration, service management, and diagnostics. |
Oracle Multitenant (CDB/PDB) Considerations
In Oracle Multitenant databases, services may belong to the Container Database (CDB) or an individual Pluggable Database (PDB). If the required PDB is closed, its service may not be registered with the listener, resulting in ORA-12514.
Verify the current container:
SHOW CON_NAME;
Display all PDBs:
SHOW PDBS;
If necessary, open the required PDB:
ALTER PLUGGABLE DATABASE pdb_name OPEN;
One of the most common causes of ORA-12514 in Oracle 12c and later is that the target PDB is not open, preventing its service from registering with the listener.
Common Mistakes
- Using an incorrect SERVICE_NAME in the client connection string.
- Confusing SID with SERVICE_NAME.
- Restarting the listener before verifying registered services.
- Ignoring the output of
lsnrctl services. - Forgetting to execute
ALTER SYSTEM REGISTER;after changing listener parameters. - Incorrect LOCAL_LISTENER configuration.
- Connecting to a closed Pluggable Database (PDB).
- Editing
listener.orawhen dynamic registration would solve the issue. - Not updating application connection strings after database migration.
Oracle DBA Best Practices
- Use SERVICE_NAME instead of SID for new client connections.
- Monitor listener registration after every database startup.
- Verify services using
lsnrctl services. - Use dynamic registration whenever possible.
- Validate application connection strings before production deployment.
- Keep listener configuration as simple as possible.
- Document all custom listener settings.
- Monitor Oracle Net logs for recurring connection issues.
- Test application connectivity after maintenance or patching.
Frequently Asked Questions (FAQ)
What causes ORA-12514?
ORA-12514 occurs when the Oracle Listener is running but does not recognize the requested database service. This is commonly caused by an incorrect SERVICE_NAME, delayed dynamic registration, or a database service that is unavailable.
How do I check which services are registered?
lsnrctl services
This command displays every service currently registered with the listener.
Can ALTER SYSTEM REGISTER fix ORA-12514?
Yes. If the database is open and dynamic registration has not yet occurred, executing ALTER SYSTEM REGISTER; often resolves the problem immediately.
What is the difference between ORA-12514 and ORA-12541?
ORA-12514 indicates that the listener is running but cannot find the requested service. ORA-12541 indicates that the client cannot communicate with a listener because it is unavailable or unreachable.
Why does ORA-12514 occur after database startup?
Immediately after startup, the listener may not yet have received dynamic service registration from the database. Waiting briefly or executing ALTER SYSTEM REGISTER; typically resolves the issue.
Related Oracle Articles
- Oracle Error Codes Guide
- ORA-12154: TNS Could Not Resolve Connect Identifier
- ORA-12541: TNS No Listener
- ORA-01017: Invalid Username/Password
- ORA-28001: Password Expired
- ORA-01194: File Needs More Recovery
About the Author
Rana Abdul Wahid is a seasoned Oracle Database Consultant with over 15 years of experience in Oracle Database Administration, Oracle E-Business Suite Application DBA, Oracle Cloud Infrastructure (OCI), Oracle RAC, Oracle Data Guard, RMAN Backup & Recovery, Performance Tuning, Linux/Unix Administration, MySQL, Microsoft SQL Server, PostgreSQL, and enterprise database management.
Through this blog, he shares practical Oracle DBA troubleshooting guides, production-tested solutions, Oracle networking best practices, backup and recovery techniques, and performance tuning knowledge to help database professionals solve complex Oracle issues efficiently.
Conclusion
The ORA-12514: TNS listener does not currently know of service requested in connect descriptor error occurs when the Oracle Listener cannot locate the requested database service. In most cases, the issue is caused by an incorrect SERVICE_NAME, delayed dynamic registration, or a service that is unavailable.
By verifying listener status, checking registered services, confirming client connection settings, and using ALTER SYSTEM REGISTER; where appropriate, Oracle DBAs can resolve the issue quickly without unnecessary listener or database restarts.
Before editing listener.ora or restarting Oracle services, always run lsnrctl services. It provides the fastest way to confirm whether the requested service is registered and often points directly to the root cause of ORA-12514.
Did this guide help you resolve ORA-12514? Bookmark this article and explore our Oracle Error Codes Guide for more production-tested Oracle DBA troubleshooting guides and best practices.
Comments
Post a Comment