2015-07-17 2 views
0

Мой код выглядит следующим образом.Исключение произошло при подключении java к оракулу 10g

java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 
java.sql.Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "ims", "_ims"); 

Исключение происходит во второй строке, которая приводится ниже.

java.sql.SQLException: Listener refused the connection with the following error: 
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor 
The Connection descriptor used by the client was: 
localhost:1521:xe" 

Что означает исключение? Что не так в моем коде?

Редактируйте Гириш

listener.ora файла:

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

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
     (ADDRESS = (PROTOCOL = TCP)(HOST = Girish-PC)(PORT = 1521)) 
    ) 
) 

DEFAULT_SERVICE_LISTENER = (XE) 

tnsnames.ora файл:

XE = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = Girish-PC)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = XE) 
    ) 
) 

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

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

В выше, оба tnsnames.ora и listener.ora содержимое файла.

+0

является файлом 'listener.ora', доступным под' oracle \ admin \ network'. Если доступно, проверьте «порт» и «сервис». – Satya

+0

Да, доступны оба файла, а также записи в этом файле. – Girish

+0

см. Мое обновленное редактирование. – Satya

ответ

2

Я заменил мой оракул **. Баночку с новым, н свою работу. Я думаю, что была проблема с моим старым оракулом **. Jar. Спасибо всем за поддержку.

1

Это означает, что данный сид (xe) недоступен.

Слушатель не может распознать или найти его в файле listener.ora или tnsnames.ora. Пожалуйста, проверьте файлы и проверьте, присутствует ли запись для xe sid.

Если запись присутствует в вышеуказанных файлах, проверьте, работает ли прослушиватель или нет.

** Обновлено **

Использование ниже URL JDBC

JDBC: оракул: тонкий: @myserver: 1521/XE

+0

оба (как вы сказали) файлы .ora доступны, также работают оракулы. – Girish

+0

записи для xe sid присутствуют в этих файлах ?, можете ли вы отправить содержимое здесь ... – Anjali

+0

Записи доступны в обоих файлах. – Girish

1

ваши используют жало как

jdbc:oracle:thin:@myserver:1521:XE 

попробовать подобные

jdbc:oracle:thin:@myserver:1521/XE 

Потому что я уже сталкивался с такой же проблемой. с этим я решил это.

Убедитесь, что OracleServiceXE, OracleXETNSListener работает.

Still facing issue

+0

Я делал это согласно вашему предложению, но следующее исключение происходило: 'java.sql.SQLException: исключение Io: сетевой адаптер не смог установить соединение – Girish

+0

, поэтому проверьте имя пользователя и пароль, вводите ли вы правильные или нет. Также может быть настроена сеть. Убедитесь, что «OracleServiceXE», «OracleXETNSListener» запущен. – Satya

+0

И имя пользователя, и пароль верны – Girish

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