My Environment

During Installation

SID lab3

Service_Name lab3.domain.com


Some time ago I changed my service_name to just lab3 to match my SID

Select instance_name from v$instance;


Select value from v$parameter where name like '%service_name%';



when i try to connect from my application jdbc:mercury:oracle://;servicename=lab3 doesn't work

jdbc:mercury:oracle://;servicename=lab3.domain.com works while this is not my service name anymore

My application doesn't require any oracle client installed so there is no tons file or anything else on the client side. it's all on server side

Error in Application Logs

java.sql.SQLNonTransientConnectionException: [Mercury][Oracle JDBC Driver][Oracle]ORA-12514 Connection refused, the specified service name (lab3) was not recognized by the Oracle server. at com.mercury.jdbc.oraclebase.ddcr.b(Unknown Source) at com.mercury.jdbc.oraclebase.ddcr.a(Unknown Source) at

lsnrctl status

LSNRCTL for 64-bit Windows: Version - Production on 06-MAR-2016 20:34:40 Copyright (c) 1991, 2011, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))


Alias LISTENER Version TNSLSNR for 64-bit Windows: Version - Production Start Date 06-MAR-2016 20:02:45 Uptime 0 days 0 hr. 32 min. 21 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File C:\oracle\Administrator\product\11.2.0\network\admin\listener.ora Listener Log File C:\oracle\Administrator\diag\tnslsnr\Lab3\listener\alert\log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.\pipe\EXTPROC1521ipc))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Lab3.domain.com)(PORT=1521)))

Services Summary...

Service "CLRExtProc" has 1 instance(s). Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...

Service "lab3.domain.com" has 1 instance(s). Instance "lab3", status READY, has 1 handler(s) for this service...

Service "lab3XDB.domain.com" has 1 instance(s). Instance "lab3", status READY, has 1 handler(s) for this service... The command completed successfully

SQL> show parameter db_domain;


db_domain string domain.com


1 Answer 1


SERVICE_NAME is made up of the values db_unique_name and db_domain parameters. Here is the reference to Oracle Documentation about SERVICE_NAME.
Even if you set lab3 as service name oracle automatically adds value of db_domain on it. Your service_name is 'lab3' and db_domain is 'domain.com' so you end up with the orgianl service name. Instead you can create tns service name to point that service. Example is given below

lab3 =
    (ADDRESS = (PROTOCOL = TCP)(HOST = domain.com)(PORT = 1521))
      (SERVICE_NAME = lab3.domain.com)

Then you can use this tnsname(lab3).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.