IOException: Сетевой адаптер не может установить соединение [дубликат]

На этот вопрос уже есть ответ:

Сетевой адаптер не может установить соединение при соединении с БД Oracle 4 ответа

У нас периодически возникала проблема «Сетевой адаптер не мог установить соединение» в нашей производственной среде, я много гуглял и задавал здесь некоторые вопросы, но все еще не нашел решения.

Вот некоторая информация о нашей среде:

Мы используем RAC с двумя экземплярами Oracle (версия 10.2.0.4). У нас есть несколько серверов приложений (JBoss AS5), работающих поверх RAC. URL-адрес подключения в oracle-ds.xml: "jdbc: oracle: thin: @ (ОПИСАНИЕ = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = db1_vip) (PORT = 1521)) (ADDRESS = (PROTOCOL = TCP) (HOST = db2_vip) (PORT = 1521)) (LOAD_BALANCE = yes)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = G1db) (FAILOVER_MODE = (TYPE = SELECT) (METHOD = BASIC) (RETRIES = 120) (DELAY = 5)))) " Мы добавили db1_vip / db2_vip, а также фактический ip 2 экземпляров oracle к / etc / hosts обоих серверов приложений Существует межсетевой экран между экземплярами Oracle и серверами приложений, но мы открыли порт 1521 на обоих экземплярах Oracle.

Мы выполнили следующие тесты, чтобы проверить, есть ли какие-либо проблемы в сети или в прослушивателе TNS: o

Выполните команду ping с серверов приложений на оба экземпляра Oracle, все работает без потери пакето Telnet порт 1521 от серверов приложений к обоим экземплярам Oracle, ничего страшного.tnsping тоже отлично работает. Мы проверили журнал прослушивателя, но ничего ценного не нашли.

Самое странное, что эта ошибка возникает около 10 раз в час на одном сервере приложений, но только 1 или 2 раза в день на другом сервере приложений.

Кто-нибудь может пролить свет на эту ошибку?

Благодарност

[EDIT4]: Мы обнаружили проблему тайм-аута при tnsping одного экземпляра oracle, поэтому мы изменили URL-адрес jdbc для подключения только одного экземпляра и обнаружили, что IOException больше никогда не возникало, поэтому мы думаем, что проблема связана с базой данных, и команда DBA продолжит поиск в это.

[EDIT3]: мы сделали следующие попытки:

отключил межсетевой экран между серверами приложений и серверами баз данных Используйте ip вместо имени хоста Используйте Wireshark, чтобы проверить, есть ли проблема с пакетом tcp.

Никто из них не преуспел, кто-то, пожалуйста, помогите ~

[EDIT]: трассировка стека ошибок:

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.<init>(PhysicalConnection.java:414)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
    at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:207)
    ... 5 more

Ответы на вопрос(2)

Ваш ответ на вопрос