2011-11-12 41 views
6

Podría alguien por favor me ayude en qué he recibido el siguiente error al intentar conectarse a la base de datos Oracle de Java ....Error al conectar con Oracle DB desde Java

La llamada de conexión es:

Connection con = DriverManager.getConnection(
    "jdbc:oracle:thin:@winson.net:1522/hcrod", 
    "manager", "passing"); 

recibo el siguiente error:

java.sql.SQLException: Listener refused the connection with the following error: 
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor 
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113) 
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263) 
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:389) 
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:454) 
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165) 
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35) 
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:802) 
at java.sql.DriverManager.getConnection(DriverManager.java:582) 
at java.sql.DriverManager.getConnection(DriverManager.java:185) 
at test_sample.main(test_sample.java:15) 

Respuesta

0

suena como el puerto en el servidor no está escuchando, el puerto 1522.

¿Puede telnet el puerto con éxito?

+0

sí, Podría ... – Winz

+0

El host de conexión 'winson.net:1522/hcrod' es correcto, ya que pude conectarlo exitosamente a través de 'devloper de SQL. – Winz

0

sintaxis URI delgada JDBC de Oracle es el siguiente:

jdbc:oracle:thin:[USER/PASSWORD]@//[HOST][:PORT]/SERVICE 

Así:

jdbc:oracle:thin:@//winson.net:1522/hcrod" 

Nota las dos barras añadidas después del símbolo @.

1

He visto este error algunas veces cuando inicio el escucha TNS después de iniciar la base de datos. Cuando la base de datos se inicia, se registra con el oyente si el oyente se está ejecutando, pero si el oyente no se está ejecutando, no puede hacerlo.

Es posible persuadir manualmente a la base de datos para que se registre con el oyente. Para hacer esto, conéctese a la base de datos como SYS y ejecute la instrucción SQL ALTER SYSTEM REGISTER;.

+0

¿Puedes dar los comandos para hacer eso? –

+0

He dado el único comando que necesita. Inicie sesión como sys. Sé que puede hacer esto como lo ha comentado [en esta respuesta] (http://stackoverflow.com/a/11836333) y ejecutar el único comando que he mencionado. –

0

Creo que el número de puerto para Oracle es 1521

6

en un caso similar para mí trabajé un poco otra cadena de conexión: jdbc:oracle:thin:@winson.net:1522:hcrod

realmente sin la // y con: en lugar de /

Cuestiones relacionadas