ORA-12514 TNS:listener non conosce attualmente il servizio richiesto nel descrittore di connessione

Abbiamo un'applicazione in esecuzione in locale dove stiamo riscontrando il seguente errore:

ORA-12514: TNS:listener non conosce attualmente il servizio richiesto nel descrittore di connessione

Ho testato la connessione usando TNSPing che si è risolto correttamente e Ho provato con SQLPlus per provare la connessione, che è fallita con lo stesso errore di cui sopra. Ho usato questa sintassi per SQLPlus:

sqlplus username/password@addressname[or host name]

Abbiamo verificato che:

  • il TNS Listener sul server sia in esecuzione.
  • Oracle stesso sul server è in esecuzione.

Non siamo a conoscenza di alcuna modifica apportata a questo ambiente. C'è qualcos'altro che possiamo testare?

Soluzione

Ho avuto questo problema e la soluzione è stata assicurarsi che in tnsnames.ora il SERVICE_NAME sia un nome di servizio valido nel vostro database. Per trovare i nomi dei servizi validi, puoi usare la seguente query in oracolo:

select value from v$parameter where name='service_names'

Una volta che ho aggiornato tnsnames.ora a:

TEST =
   (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = **)(PORT = **))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = **)
    )
)

poi ho eseguito:

sqlplus user@TEST

Successo! L'ascoltatore ti sta praticamente dicendo che qualsiasi nome di servizio tu stia usando non è un servizio valido secondo il DB.

( Stavo eseguendo sqlplus dalla workstation client Win7 al DB remoto e dare la colpa ai DBA ;) )

Commentari (10)

Controllate che il database sia attivo. Accedi al server, imposta la variabile d'ambiente ORACLE_SID al tuo SID del database ed esegui SQL*Plus come connessione locale.

Commentari (1)

Questo errore può verificarsi quando un'applicazione crea una nuova connessione per ogni interazione con il database o le connessioni non vengono chiuse correttamente. Uno degli strumenti gratuiti per monitorare e confermare questo è Oracle Sql developer (anche se questo non è l'unico strumento che si può utilizzare per monitorare le sessioni DB).

potete scaricare lo strumento dal sito oracle Sql Developer

qui c'è uno screenshot di come monitorare le sessioni. (se vedete molte sessioni che si accumulano per l'utente dell'applicazione quando vedete l'errore ORA-12514 allora è una buona indicazione che potreste avere un problema di connection pool).

Commentari (0)