Исключение сокета: сбой recv с драйвером oracle thin - PullRequest
0 голосов
/ 08 июля 2011

Я столкнулся с проблемой, когда мой набор тестов случайно завершается с исключением сокета


oracle.jdbc.driver.T4CStatement 1267 - Throwing SQLException: java.net.SocketException: Software caused connection abort: recv failed 

Набор тестов завершается с этим исключением, когда данный набор тестов выполняется в определенном порядке. Я получил вышеупомянутый журнал ошибок после включения журналов драйвера oracle jdbc. Запрос, который приводит к этой ошибке, всегда является «запросом DROP SEQUENCE». В этом запросе нет ничего особенного, так как он запускается n раз во время выполнения.

Одна из ссылок в блоге указывает, что вышеуказанная ошибка связана с тем, что сокеты на стороне сервера закрываются до того, как клиент ожидает. Чтобы устранить эту проблему подробнее, я попытался проанализировать журналы Oracle TNSListener - файл listener.log, но не смог собрать много информации, поскольку файл журнала содержал только информацию о вызове функции сокета CONNECT.

  1. Какие могут быть возможные причины вышеуказанной ошибки в дополнение к той, о которой упоминается в блоге?

  2. Как я могу настроить Oracle TNSListener для предоставления более подробной информации о связи через сокеты? Например, Информация трассировки при возникновении события закрытия сокета сервера.

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

1 Ответ

1 голос
/ 09 июля 2011

Вы можете установить уровень трассировки, если у вас есть доступ к утилите lsnrctl :

LSNRCTL> show trc_level
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx)(PORT=1521)))
LISTENER parameter "trc_level" set to off
The command completed successfully
LSNRCTL> set trc_level admin
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx)(PORT=1521)))
LISTENER parameter "trc_level" set to admin
The command completed successfully
LSNRCTL> show trc_level
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx)(PORT=1521)))
LISTENER parameter "trc_level" set to admin
The command completed successfully
LSNRCTL>

Из документов trc_level является одним из:

Укажите один из следующих уровней трассировки:

  • выключен для вывода без трассировки
  • пользователь для информации о трассировке пользователя
  • Администратор для администрирования информации трассировки
  • поддержка информации трассировки службы поддержки Oracle
...