Я использую приведенный ниже код для подключения oracle 10g и получения некоторых данных.Проблема с соединением Java с Oracle
public static void main(String[] args) {
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521/orcl","scott","tiger");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from emp");
while(rs.next())
System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getString(3));
con.close();
}
catch(Exception e)
{
System.out.println(e);
}
}
Он отлично работает некоторое время, но через некоторое время она бросает ниже ошибки и не подключается:
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12518, TNS:listener could not hand off client connection
The Connection descriptor used by the client was:
127.0.0.1:1521/orcl
Вы используете oracle 9i? ORA-12518, как известно, встречается в Oracle Net Services версии 9.2.0.5-10.2.0.1, в котором попытка новых подключений в базе данных выдает ORA-12518 или TNS-12518. ORA-12518 появляется в журнале слушателя при подключении нового пользователя. – dev
Я предлагаю вам попробовать http://stackoverflow.com/questions/13624464/ora-12518-tnslistener-could-not-hand-off-client-connection –
Хотя я очень сомневаюсь, что это причина: 'oracle.jdbc.driver .OracleDriver' устарел на века, вы должны использовать 'oracle.jdbc.OracleDriver'. Также, какую версию драйвера JDBC вы используете? Вы можете проверить это с помощью 'con.getMetaData(). GetDriverVersion()' –