solicitado servicio ora not know given does currently conoce conexion actualmente oracle jdbc

oracle - servicio - ORA-12505, TNS: el oyente no conoce actualmente el SID proporcionado en el descriptor de conexión



ora-12514 tns el listener no conoce actualmente el servicio solicitado en el descriptor de conexion (23)

Compruebe ambos OracleServiceXE y OracleXETNSListener tienen el estado iniciado cuando navega por start->run->services.msc .

Para mi caso solo se inició OracleServiceXE pero OracleServiceXE no se inició, cuando comencé haciendo right clicking -> start y comprobé que la conexión funcionaba para mí

He instalado Oracle 11g Express Edition Release 2 en mi sistema operativo Windows 7 de 64 bits e intenté ejecutar el programa JDBC, y luego recibí el siguiente error:

java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at com.jlcindia.jdbc.JDBCUtil.geOracleConnection(JDBCUtil.java:28) at Lab3O.main(Lab3O.java:15) Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor at oracle.net.ns.NSProtocol.connect(NSProtocol.java:385) at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301) ... 8 more


Compruebe haciendo tnsping y el nombre de la instancia en la máquina host. Le dará la descripción de los tns y la mayoría de las veces el nombre de host es diferente y no coincide.

Resuelvo mi problema igualmente

En máquina Unix $ tnsping (Enter)

Me da una descripción completa de TNS donde encontré que el nombre de host es diferente ... :)


Connection con = DriverManager.getConnection ("jdbc: oracle: thin: @localhost: 1521: xe", "scott", "tiger");

Error que obtuve:

java.sql.SQLException: el oyente rechazó la conexión con el siguiente error: ORA-12505, TNS: el oyente no conoce actualmente el SID proporcionado en el descriptor de conexión. El descriptor de conexión utilizado por el cliente era: localhost: 1521: xe

Cómo lo resolví:

Connection con = DriverManager.getConnection ("jdbc: oracle: thin: localhost: 1521: xe", "scott", "tiger");

(Retirar @)

No sé por qué, pero está funcionando ahora ...


Cuando obtiene este error "ORA-12505, TNS: el oyente no conoce actualmente el SID proporcionado en el descriptor de conexión"

Solución: Abra Servicios, e inicie OracleServiceXE , luego intente conectar ...


En mi caso no funcionaba, finalmente reinicié mi oracle y el oyente de TNS y todo funcionó. Estaba luchando por 2 días.


Encontré algunas razones para esta excepción. Ellos son

1) El nombre de la base de datos XE por defecto. Así la url será " jdbc: oracle: thin: @localhost: 1521: XE ".

2) Asegúrese de que OracleServiceXE, OracleXETNSListener se está ejecutando. Estará en el Panel de control / Todos los elementos del panel de control / Herramientas administrativas / Servicios


Enfrentando un error similar, ninguna de las soluciones anteriores no ayudó. Hubo un problema en el archivo listner.ora. Por error, agregué SID fuera de SID_LIST ver debajo (sección entre las estrellas *).

SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = C:/oraclexe/app/oracle/product/11.2.0/server) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:/oraclexe/app/oracle/product/11.2.0/server) (PROGRAM = extproc) ) ) *(SID_DESC = (SID_NAME = XE) (ORACLE_HOME = C:/oraclexe/app/oracle/product/11.2.0/server) )* LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) ) DEFAULT_SERVICE_LISTENER = (XE)

Corregí este error de la siguiente manera:

SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = XE) (ORACLE_HOME = C:/oraclexe/app/oracle/product/11.2.0/server) ) (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = C:/oraclexe/app/oracle/product/11.2.0/server) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:/oraclexe/app/oracle/product/11.2.0/server) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) ) DEFAULT_SERVICE_LISTENER = (XE)

Detenido y la base de datos

Se detuvo manualmente a los oyentes OracleServiceXE y OracleXETNSListener, ya que no se detuvo automáticamente yendo al Panel de control / Todos los elementos del panel de control / Herramientas administrativas / Servicios. Reinició la base de datos y funcionó como un encanto.


Hay algunas cosas que pueden causar este problema, pero antes de comenzar con JDBC, debe asegurarse de que puede conectarse a la base de datos utilizando SQL * Plus. Si no está familiarizado con SQL * Plus, es una herramienta de línea de comandos para conectarse a bases de datos Oracle que ha sido una parte estándar de Oracle durante mucho tiempo y se incluye con Oracle XE.

Cuando se conecta a una base de datos Oracle utilizando JDBC, no se conecta directamente a la base de datos. En su lugar, se conecta a un oyente TNS, que luego lo conecta a la base de datos. El error ORA-12505 significa que el oyente estaba activo y que usted podría conectarse, pero no pudo conectarse a la base de datos porque no sabe que esa base de datos está activa. Hay dos razones para esto:

  • la base de datos no se ha iniciado,
  • la base de datos no se ha registrado con el oyente, por ejemplo, porque la base de datos se inició antes que el oyente. (Cuando se inicia la base de datos, se registra con un oyente si ya se está ejecutando. Si el oyente no se está ejecutando, la base de datos no se registra, y si el oyente se inicia, no buscará bases de datos que puedan registrarse con él)

ORA-12505 significa que el oyente conoce esa base de datos, pero el oyente no ha recibido una notificación de la base de datos de que la base de datos está activa. (Si intentara conectarse a la base de datos incorrecta, utilizando el SID incorrecto, obtendría un error ORA-12154 "TNS: no se pudo resolver el identificador de conexión especificado").

¿Qué servicios Oracle se están ejecutando en el complemento Servicios? (Ábralo desde el Panel de control> Herramientas administrativas> Servicios, o simplemente en Iniciar> Ejecutar> services.msc ). Necesita los servicios OracleServiceXE y OracleXETNSListener para ejecutar.

Si ambos servicios se han iniciado, ¿puede conectarse a la base de datos en SQL * Plus utilizando cualquiera de los siguientes en un símbolo del sistema? (Supongo que está ejecutando estos en la máquina en la que ha instalado Oracle XE).

sqlplus system/system-password@XE

sqlplus system/system-password

sqlplus / as sysdba

(Reemplace system-password con la contraseña que configuró para los usuarios de SYS y SYSTEM durante la instalación de Oracle XE).

El primero de estos tres se conecta a través del oyente TNS, pero los otros dos se conectan directamente a la base de datos sin pasar por el oyente, y solo funcionan si está en la misma máquina que la base de datos. Si el primero falla pero los otros dos tienen éxito, las conexiones JDBC también fallarán. Si es así, conéctese a la base de datos usando cualquiera de los otros dos y ejecute ALTER SYSTEM REGISTER . A continuación, salga de SQL * Plus e intente de nuevo con el primer formulario.

Si el tercero falla pero el segundo funciona, agregue su cuenta de usuario al grupo ora_dba. Haga esto en el Panel de control> Administración de computadoras> Usuarios y grupos locales.

Una vez que puedes obtener conexiones del formulario

sqlplus system/system-password@XE

para trabajar, debe poder conectarse a Oracle XE a través de JDBC. (Por cierto, no nos ha mostrado el código JDBC que está utilizando para conectarse a la base de datos, pero sospecho que probablemente sea correcto, habría varios otros errores si partes de la cadena de conexión estuvieran equivocadas).


He enfrentado el mismo problema y lo resolví reiniciando el servicio OracleServiceXE. Vaya a Services.msc y luego verifique que el servicio ''OracleServiceXE'' esté ARRIBA y se esté ejecutando


Inicialmente vine aquí con el mismo problema. Jus había instalado Oracle 12c en Windows 8 (64 bits), pero desde entonces lo resolví con ''TNSPING xe'' en la línea de comandos ... Si la conexión no está establecida o no se encuentra el nombre, intente con el nombre de la base de datos, en mi caso era ''orcl'' ... ''TNSPING orcl'' otra vez y si suena con éxito, entonces necesitas cambiar el SID a ''orcl'' en este caso (o cualquier nombre de base de datos que uses) ...


Mi problema se resuelve cuando utilizo el siguiente código:

Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@IPAddress:1521/servicename","userName","Password");



Resolví este problema al corregir mi código JDBC.

la cadena correcta de JDBC debería ser ...

conection = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:xe","system","ishantyagi");

Pero la cadena JDBC que estaba usando era ...

conection = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:orcl","system","ishantyagi");

Entonces, el error de especificar orcl en lugar de xe mostró este error ya que el nombre del SID era incorrecto.


Si usa Oracle Express Edition, debe tener esta url

jdbc: oracle: thin: @localhost: 1521: xe o jdbc: oracle: thin: @localhost: 1521 / XE

Tuve un problema similar con el complemento de configuración de liquibase en pom.xml. Y cambié mi configuración:

`<configuration> <driver>oracle.jdbc.OracleDriver</driver> <url>jdbc:oracle:thin:@localhost:1521:xe</url> <defaultSchemaName></defaultSchemaName> <username>****</username> <password>****</password> </configuration>`


Solucioné este problema al corregir mi cadena jdbc.

Por ejemplo, la cadena jdbc correcta debería ser ...

jdbc:oracle:thin:@myserver:1521/XE

Pero la cadena jdbs que estaba usando es ...

jdbc:oracle:thin:@myserver:1521:XE

(Nota: entre 1521 y XE debe ser un / )

Esta cadena jdbc mala me da un error ORA-12505 también.


Solucioné este problema cambiando " SID " por " SERVICE_NAME " en mi archivo TNSNAMES.ora.

Verifica si tu DB solicita SID o SERVICE_NAME.

Aclamaciones


Tenía un problema similar. El problema comenzó repentinamente: tenemos una URL de conexión de base de datos equilibrada de carga, pero en las conexiones de jdbc apunté directamente a un solo db.

Cambiado para cargar la URL de db balanceada y funcionó.


Tengo el mismo problema de repente después de jugar con algunos cmd. Resultó que el SERVICIO ORACLE XE había dejado de funcionar. Me tomó 2 segundos para reiniciarlo desde las herramientas administrativas. tnx!


Tuve el mismo problema, así que para resolver este problema primero reconfigure mi oyente usando netca después de eso borré mi base de datos anterior que era ORCL usando dbca y luego creé la nueva base de datos usando dbca


Tuve un problema similar en SQL Workbench.

URL:

jdbc: oráculo: delgado: @ 111.111.111.111: 1111: xe

no funciona

URL:

jdbc: oráculo: delgado: @ 111.111.111.111: 1111: asdb

trabajos.

Esto me ayuda en mi situación concreta. Me temo que podría existir muchas otras razones con diferentes soluciones.


Una posibilidad que no he visto ampliamente discutida es que puede haber un problema para resolver el nombre de host en el equipo host. Si no hay entrada para $ (nombre de host) en / etc / hosts, el oyente de Oracle se confunde y no aparece.

Ese fue mi problema, y ​​agregar el nombre de host y la dirección IP en / etc / hosts resolvió el problema.


Yo también enfrenté el mismo problema. Instalé Oracle Express Edition 10g en el sistema operativo Windows XP con VMware y funcionaba bien. Dado que era muy torpe escribir consultas SQL en la utilidad SQL proporcionada por 10g y como estaba acostumbrado a trabajar con el desarrollador de SQL, instalé el desarrollador SQL de 32 bits en XP e intenté conectarme a mi DB SID "XE". Pero la conexión falló con el error-ORA-12505 El oyente TNS no conoce actualmente el SID que figura en el descriptor de conexión. Estaba en el mar sobre cómo ocurrió este problema, ya que funcionaba bien con la utilidad SQL y también había creado algunas asignaciones de Informatica usando el mismo. Busqué mucho sobre esto aquí y apliqué las sugerencias que se me ofrecieron después de hacer ping al estado de "lsnrctl" en los foros públicos, pero fue en vano. Sin embargo, esta mañana traté de crear una nueva conexión de nuevo, y Voila, funcionó sin problemas. Supongo que después de leer en algunas publicaciones que a veces el oyente escucha antes de que el DB se conecte o algo así (perdón por mi referencia cruda ya que soy un novato aquí), pero sugiero que simplemente reinicie la máquina y vuelva a verificar.


Yo también recibí el mismo error, pero cuando los probé, fallaron los tres. Si los tres anteriores fallan. Pruebe el estado de LSNRCTL si encuentra que falta el servicio (XE en mi caso) pruebe este sqlplus /nolog conn system ... password ... connected. alter system register;
exit
lsnrctl stat
...
sqlplus /nolog conn system ... password ... connected. alter system register;
exit
lsnrctl stat
...

Ahora puedes ver el servicio
Incluso si no ves, prueba este
sqlplus /nolog
conn system
... password ... connected.
alter system set local_listener = ''(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))'' scope = both;
... system altered ...
alter system register;
exit
lsnrctl stat

Esto probablemente debería funcionar ...