"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 больше ожидаемого времени выполнения команды