una puedo developer datos crear conexion conectarse conectar 12c java oracle exception jdbc

java - puedo - El adaptador de red no pudo establecer la conexión al conectarse con Oracle DB



jdbc:oracle:thin:@localhost:1521:xe (4)

Al intentar conectar con una base de datos Oracle remota a través de JDBC, recibo la siguiente excepción:

java.sql.SQLRecoverableException: IO-fout: The Network Adapter could not establish the connection at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:419) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:536) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521) at java.sql.DriverManager.getConnection(DriverManager.java:322) at java.sql.DriverManager.getConnection(DriverManager.java:358)

El siguiente es mi configuración:

Database: Oracle 10g Release 2 Standard Edition JDBC library: ojdbc6.jar JDBC driver: oracle.jdbc.driver.OracleDriver JDBC URL: jdbc:oracle:thin:@9.2.2.2:1521:ORCL where ORCL is database''s SID JDBC User/pwd: Correct username / password

Lo extraño de este problema es que la conexión funciona bien cuando trabajo desde el trabajo. Sin embargo, cuando intento conectarme desde casa a través de una conexión VPN de AT&T, no funciona.

He confirmado que puedo acceder a la dirección IP y también he telneteado la IP en el puerto 1521, que funciona bien. Conectarse al origen de datos desde un servidor de aplicaciones WebLogic local también funciona bien. Además, cuando intento conectarme a la base de datos a través del desarrollador de SQL también puedo acceder a la base de datos.

Sin embargo, necesito acceder a la base de datos desde una aplicación independiente (para propósitos de prueba). ¿Alguien tiene una idea de por qué ocurre este problema? ¿Y si existen alternativas para conectarse a una base de datos Oracle remota, alternativas que tal vez usen sqldeveloper y weblogic?

Aquí hay un extracto del código que intenta conectarse con la base de datos:

public static void main(String args[]) throws ClassNotFoundException, SQLException { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@9.2.2.2:1521:ORCL", "user", "pwd"); }


Cuando un cliente se conecta a un servidor Oracle, primero se conecta al servicio de escucha de Oracle. A menudo redirige al cliente a otro puerto. Por lo tanto, el cliente tiene que abrir otra conexión en un puerto diferente, que está bloqueado por el firewall.

Por lo tanto, es posible que haya encontrado un problema con el firewall debido a la redirección de puertos de Oracle. Debería ser posible diagnosticarlo con un monitor de red en la máquina cliente o con el software de administración de firewall en el firewall.



Si está en una caja de Linux, sugeriría que agregue el nombre de IP de la base de datos y la resolución de IP a /etc/hosts .

Tengo el mismo error y cuando hacemos lo anterior, funciona bien.


Tuve un problema similar antes. Pero esto se resolvió cuando comencé a usar el nombre de host en lugar de la dirección IP en mi cadena de conexión.