Получение исключения: сетевой адаптер не смог установить соединение в простой программе jdbcJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Получение исключения: сетевой адаптер не смог установить соединение в простой программе jdbc

Сообщение Anonymous »

Я пытался запустить простой код jdbc [с использованием jdk 1.6, oracle 10g] следующим образом:

Код: Выделить всё

package javaapplication2;
import java.text.*;
import java.sql.*;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.BufferedWriter;
/**
* @author animark
*/
public class CallableStatementEx1 {
public CallableStatementEx1(){;}

public static void main(String s[]) throws Exception {
try
{
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Connection con=null;
String url= "jdbc:oracle:thin:@//localhost:1521:orcl" ;
con = DriverManager.getConnection(url,"scott","password");

String query="update emp set HIREDATE=?,ENAME=? where empno=?";

//Step1: Get PreparedStatement
PreparedStatement ps=con.prepareStatement(query);

//Prepare java.sql.Date object
/*
This logic shows how to convert simple String that is in
dd-MM-yyyy format into Date object
*/
SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy");
java.util.Date d=sdf.parse("26-12-2001");
java.sql.Date newdate=new java.sql.Date(d.getTime());

//Step2: set parameters
ps.setDate(1,newdate);
ps.setString(2,"animark");
ps.setInt(3,7839);

//Step3: execute the query
int i=ps.executeUpdate();

System.out.println("record updated count: "+i);
con.close();
}
catch(Exception e)
{
e.printStackTrace();

}
}//main
}//class
Код компилируется правильно. Но когда я пытаюсь его запустить, я получаю следующее исключение.

Код: Выделить всё

java.sql.SQLException: Io exception: The Network Adapter could not establish the connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at javaapplication2.CallableStatementEx1.main(CallableStatementEx1.java:19)
Я проверил службы Oracle, все они работают.

Кроме того, найдите содержимое других файлов как

=========================================================================== tnsnames.ora:

Код: Выделить всё

# tnsnames.ora Network Configuration File: C:\oraclexe\app\oracle\product\10.2.0\server\BIN\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

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

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
=============================================================================

sqlnet.ora

Код: Выделить всё

# sqlnet.ora Network Configuration File: C:\oraclexe\app\oracle\product\10.2.0\server\BIN\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

# This file is actually generated by netca.  But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
===========================================================================

Код: Выделить всё

# listener.ora Network Configuration File: C:\oraclexe\app\oracle\product\10.2.0\server\BIN\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server\BIN)
(PROGRAM = extproc)
)
)

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

Я могу подключиться к экземпляру "orcl" с помощью учетные данные "scott/password", но когда я пытаюсь подключиться с помощью оператора

SQL> connect sys/password@orcl as sysdba

, я получаю следующую ошибку. ORA-12514: TNS: прослушиватель в настоящее время не знает службы, запрошенной в дескрипторе подключения

.

Я также запустил LSNRCTL для orcl и обнаружил

LSNRCTL для 32-битной Windows: Версия 10.2.0.1.0 — выпуск 22 июля 2012 г., 13:42:30

Авторские права (c) 1991, 2005, Oracle. Все права защищены.

Код: Выделить всё

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
The command completed successfully
Пожалуйста, посоветуйте.

Подробнее здесь: https://stackoverflow.com/questions/128 ... ion-in-sim
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»