IOException: сетевой адаптер не может установить соединение - PullRequest
3 голосов
/ 26 ноября 2010

Я пытаюсь подключиться к базе данных Oracle из моего приложения Java.Я использую oracle.jdbc.driver.OracleDriver, версия: 0/1 для подключения к базе данных.Но DriverManager.getConnection () дает мне «Сетевой адаптер не может установить соединение».Это не происходит всегда.Это происходит только иногда, может быть один раз в 8-10 раз.Трассировка стека, которую я получаю:

Driver Class : oracle.jdbc.driver.OracleDriver, version 0/1
java.sql.SQLException: Io exception: The Network Adapter could not establish the connection
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:334)
at oracle.jdbc.ttc7.TTC7Protocol.handleIOException(TTC7Protocol.java:3678)
at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:352)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:365)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:547)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:347)
at java.sql.DriverManager.getConnection(DriverManager.java:316)
at java.sql.DriverManager.getConnection(DriverManager.java:297)

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

Ответы [ 3 ]

2 голосов
/ 26 ноября 2010

Возможно, это проблема сети:

  • Есть ли брандмауэр, который доставляет вам неприятности? Попробуй телнет к порту. Межсетевой экран с состоянием?

  • Слишком медленный DNS (используйте IP-адрес вместо имени хоста, попробуйте поиск DNS)

  • Вы закрываете соединения? Вы перегружаете слушателя?

2 голосов
/ 02 марта 2013

У меня была похожая проблема, я попытался использовать IP-адрес вместо имени хоста в URL базы данных, и это сработало для меня.

Пример jdbc:

...(DESCRIPTION=(ADDRESS.....(HOST=1.1.1.1)..)
0 голосов
/ 26 ноября 2010

Я бы посмотрел поближе и, возможно, установил точку останова в

at oracle.jdbc.ttc7.TTC7Protocol.handleIOException(TTC7Protocol.java:3678)

, чтобы увидеть точное IOException. Это покажет вам причину, которая может помочь в диагностике проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...