"ORA-03135: соединение потеряло контакт" при вставке большого файла

Я пытаюсь сделать вставку с потенциально большим количеством двоичных данных в удаленную базу данных Oracle (11g) с помощью Entity Framework (ODP.Net). Он отлично работает для очень маленьких файлов (

Я не думаю, что это тайм-ауту, как исключение происходит в течение секунды после выполнения команды.

Я попытался установить оба из следующих в моей строке подключения, но нет avail:

  • Validate Connection=true
  • Pooling=false

Я также посмотрел в listener.log файл на удаленной машине. Он показывает выполняемые соединения, но никаких признаков исключений или завершенных соединений.

Я за предложенные исправления или методы устранения неполадок.

Edit:

те же операции SQL работают при доступе к экземпляру Oracle в локальной сети.

2 ответов


Это может быть сложная проблема со многими различными возможными причинами и решениями. Начните здесь:

http://www.dba-oracle.com/t_ora_03135_connection_lost_contact.htm

ответ: утилита oerr показывает это для ошибки ORA-03135:

ORA-03135: связь потеряна

Причина: 1) сервер неожиданно завершен или был вынужден завершить работу. или 2) сервер тайм-аут соединения.

действие: 1) Проверьте, был ли завершен сеанс сервера. 2) Проверьте, правильно ли установлены параметры тайм-аута в заменить sqlnet.Ора.

ошибка ORA-03135 распространена при удаленном подключении, когда брандмауэр завершает соединение.

одним из решений для ошибки ORA-03135 является увеличение значения sqlnet.параметр Ora expire_time в sqlnet.файл ora или для проверки параметра expire в профиле SQL * Plus.

чтобы диагностировать ошибку ORA-03135, начните с проверки, существует ли PID ОС, используя синтаксис ps –ef|grep.

проверьте, есть ли преобразование сетевых адресов (NAT) между клиентом и сервером

в Windows проверьте, проверяет ли Брандмауэр Windows ваши локальные подключения:

Windows XP - > панель управления - > безопасность - > вкладка "Дополнительно"

кроме того, настройка параметров заменить sqlnet.inbound_connect_timeout и inbound_connect_timeout_listenername до 0 может остановить ошибку ORA-03135.

также, как и выше, проверьте журнал предупреждений базы данных на наличие ошибок, возникающих одновременно с удалением соединения. Иногда это может быть вызвано ora-600 или ora-7445, например. Он не должен отображаться в журнале прослушивателя, поскольку вы получаете эту ошибку только после завершения рукопожатия.


эта ситуация обычно вызвана отключено / устаревшее соединение берется из пула подключений. Если вы получаете это исключение после Pooling=false, скорее всего, брандмауэр блокирует соединение из-за тайм-аут простоя tcp. убедитесь, что значение тайм-аута простоя tcp больше ожидаемого времени выполнения команды