ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione
Richiesta:
SISV9I.dominio.IT =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = oraSISV9I)(Port = 1521))
)(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SISV9I)))
1) Da una macchina server verifico che il ping funziona
Problemi connessione oraSiSV9i.
Di seguito il tnsnames.ora.
SISV9I.dominio.IT =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = oraSISV9I)(Port = 1521))
)(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SISV9I)))
errore che ricevo dall'applicazione:
ORA-12514: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione
tnsping oraSISV9i
TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 24-JAN-2019 12:05:31
Copyright (c) 1997, 2009, Oracle. All rights reserved.
Used parameter files:
/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/sqlnet.ora
Used HOSTNAME adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)
(HOST=xx.yyyy.zzz.n)(PORT=1521)))
(HOST=xx.yyyy.zzz.n)(PORT=1521)))
OK (0 msec)
2) Provare da un client locale, inserendo nel tnsname la stringa di connessione fornita.
Da cmd con il comando sqlplus risalgo alla versione del client così da capire che il tnsname considerato è la versione corretta.
In generale è presente sotto questo path in locale:
In generale è presente sotto questo path in locale:
D:\app\oracle\product\11.2.0\client_1\network\admin\tnsnames.ora
2.2) Collegarsi con SqlDeveloper e scegliere come “Database = SISV9I.dominio.IT” 2.3) Se non funziona la connessione verificare anche da cmd che il tnsping funzioni correttamente.
Copyright (c) 1997, 2010, Oracle. All rights reserved.
File di parametri utilizzati:
D:\app\oracle\product\11.2.0\client_1\network\admin\sqlnet.ora
╚ stato utilizzato l'adattatore EZCONNECT per risolvere l'alias
Tentativo di contattare (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)
(HOST=xx.yyyy.zzz.n)(PORT=1521)))
OK (0 msec)
C:\Users\Utente_locale>tnsping oraSISV9i
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 24-GEN-2019 12:15:08 Copyright (c) 1997, 2010, Oracle. All rights reserved.
File di parametri utilizzati:
D:\app\oracle\product\11.2.0\client_1\network\admin\sqlnet.ora
╚ stato utilizzato l'adattatore EZCONNECT per risolvere l'alias
Tentativo di contattare (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)
(HOST=xx.yyyy.zzz.n)(PORT=1521)))
OK (0 msec)
Verifichiamo che il tnsnames.ora che abbiamo sul nostro server sia lo stesso
SISV9I.WORLD = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oraSISV9I)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SISV9I) ) )
Cambio solo l’alias “SISV9I.WORLD =” e quindi non ha importanza.
Controllare invece il file sqlnet.ora
# SQLNET.ORA Network Configuration File: /u01/app/oracle/product/9.2.0/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES)
NAMES.DEFAULT_DOMAIN = world
o metti ".WORLD" dopo l'alias come segue
SISV9I.dominio.IT.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = oraSISV9I)(Port = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SISV9I)
)
)
oppure inserisci il domain "world" nel file sqlnet.ora con la seguente stringa. NAMES.DEFAULT_DOMAIN = world
Se viene effettuata una connessione di tipo easy connect naming method.
SQL> connect username/password@host[:port][/service_name]
E se riceviamo sempre il messaggio in oggetto allora occore aggiungere al file
E se riceviamo sempre il messaggio in oggetto allora occore aggiungere al file
sqlnet.ora
questa stringa
NAMES.DIRECTORY_PATH= (TNSNAMES,EZCONNECT)
In effetti, quando si utilizza questo metodo non è richiesto alcun sistema di denominazione o directory poiché fornisce connettività immediata.
Estende la funzionalità del metodo di denominazione host consentendo ai client di connettersi a un database con una porta e un nome di servizio opzionali oltre al nome host del database.