2015-03-01 4 views
0

Я пытаюсь подключиться к базе данных Oracle 12c, используя java в затмении. Это исключение, которое продолжает попадаться.Не удается подключиться к базе данных оракула

Exception in thread "main" java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743) 
    at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:666) 
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) 
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:566) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at DBHelper.makeConnection(DBHelper.java:31) 
    at Main.main(Main.java:37) 
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection 
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:470) 
    at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:506) 
    at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:595) 
    at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:246) 
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:264) 
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452) 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496) 
    ... 7 more 
Caused by: java.net.ConnectException: Connection refused: connect 
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source) 
    at java.net.PlainSocketImpl.connect(Unknown Source) 
    at java.net.SocksSocketImpl.connect(Unknown Source) 
    at java.net.Socket.connect(Unknown Source) 
    at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:161) 
    at oracle.net.nt.ConnOption.connect(ConnOption.java:159) 
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:428) 
    ... 13 more 

Ниже то, что я сделал

main.java

import java.sql.Connection; 

import java.sql.ResultSet; 
import java.sql.SQLException; 


public class Main { 

    public static void main(String[] arg) throws SQLException{ 

     DBHelper dbconn = new DBHelper("system", "reborn78"); 
     Connection conn = dbconn.makeConnection(); 


     ResultSet result = dbconn.runQuery(conn, "SELECT A,B FROM NEWS"); 

     System.out.println(result); 
    } 
} 

DBHelper.java

import java.sql.Connection; 
import java.sql.Driver; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.Properties; 


public class DBHelper { 

    private String userName; 
    private String passWord; 
    private final String url = "jdbc:oracle:thin:@localhost:1521/ORCL"; 

    public DBHelper(String userName, String passWord) throws SQLException{ 
     Driver myDriver = new oracle.jdbc.driver.OracleDriver(); 
     DriverManager.registerDriver(myDriver); 
     this.userName = userName; 
     this.passWord = passWord;  
    } 


    public Connection makeConnection() throws SQLException{ 
      Properties props = new Properties(); 
      props.setProperty("user", this.userName); 
      props.setProperty("password", this.passWord); 


      return DriverManager.getConnection(this.url,props); 




    } 

    public ResultSet runQuery(Connection conn, String sqlQuery) throws SQLException{ 
     PreparedStatement preStatement;  
     ResultSet result; 

      Statement statement = conn.createStatement(); 
      preStatement = conn.prepareStatement(sqlQuery); 
      statement.execute(sqlQuery); 
      result = preStatement.executeQuery(); 
      return result; 


    } 
} 

ниже мой listener.ora файл

# listener.ora Network Configuration File: E:\app\Usama\product\12.1.0\dbhome_1\NETWORK\ADMIN\listener.ora 
# Generated by Oracle configuration tools. 

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = CLRExtProc) 
     (ORACLE_HOME = E:\app\Usama\product\12.1.0\dbhome_1) 
     (PROGRAM = extproc) 
     (ENVS = "EXTPROC_DLLS=ONLY:E:\app\Usama\product\12.1.0\dbhome_1\bin\oraclr12.dll") 
    ) 
) 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
) 

ниже мой tnsnames.ora файл

# tnsnames.ora Network Configuration File: E:\app\Usama\product\12.1.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora 
# Generated by Oracle configuration tools. 

LISTENER_ORCL = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 


ORACLR_CONNECTION_DATA = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
    (CONNECT_DATA = 
     (SID = CLRExtProc) 
     (PRESENTATION = RO) 
    ) 
) 

ORCL = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl) 
    ) 
) 

SQL подключен с помощью SQLPlus и слушателя запущен и подключен к SQL Developer, как хорошо! Ниже ссылка на изображения https://www.dropbox.com/sh/vbv0gkfcz2g59t5/AACtIVR1-bIen99DNN4HDsWaa?dl=0

Я впустую три дня получает это право, я был в состоянии получить его вчера, но сегодня работает, когда я перезагрузки моей системы, такая же ошибка возвращается. Я попробовал все, но ничего не работает сегодня. Заранее благодарен

+0

Ваш сервер Oracle работает локально? Это работает вообще? – GolezTrol

+0

Да, вы проверили прикрепленные фотографии? –

+0

https://www.dropbox.com/s/2i5xp87vam97779/sql%20developer%20running%20and%20connected.jpg?dl=0 Пожалуйста, проверьте это, я уверен, что он работает –

ответ

1

РЕШЕНИЕ.

Мне удалось запустить его, переконфигурировав базу данных с помощью помощника по настройке базы данных, а затем настроив сетевые службы сетевым помощником конфигурации.

Оказывается, как я понимаю, это единственный способ запустить службы, необходимые для подключения через слушателя. Я должен сделать это вручную и протестировать сетевое соединение в сетевом помощнике конфигурации каждый раз, когда я перезапускаю систему.

Благодарим вас за поддержку.

+1

Можете ли вы рассказать о проблеме и ее решении? Это может быть полезно для будущих посетителей, у которых такая же проблема. – GolezTrol

+0

Мне удалось запустить его, переконфигурировав базу данных с помощью помощника по настройке базы данных, а затем настроив сетевые службы сетевым помощником по настройке.Оказывается, как я понимаю, это единственный способ запустить службы, необходимые для подключения через слушателя. Я должен сделать это вручную и протестировать сетевое соединение в сетевом помощнике конфигурации каждый раз, когда я перезапускаю систему. –

Смежные вопросы