Есть много различных причин возникновения этой ошибки:
конфигурации вашего пула соединений
Проверьте, если подключение к бассейну имеет такие параметры, как таймаута или жизни. У меня возникли проблемы с этим параметром, вызывающим ошибку ORA-03135 после одной минуты бездействия объединенного сеанса. Решение в моем случае состояло в использовании не объединенных соединений, но это небезопасно для большинства приложений. В вашем случае установка более высокого тайм-аута может сделать трюк.
Попробуйте активировать самый высокий уровень отладки на DJango и/или промежуточное программное обеспечение, чтобы узнать, записывает ли он сообщения о сеансах, истекающих в пуле. Перезапустите промежуточное программное обеспечение и время, необходимое для начала сбоя. Если это короткий период времени (например, 60 секунд), вы можете изменить таймаут и убедиться, что в пуле достаточно сеансов для загрузки.
сеть Ошибка/Firewall
Всех видов сетевых проблем, такие как отброшенные пакеты или проблемы сетевой карты может вызвать соединение понижаться.
Чтобы отладить этот, подключитесь к базе данных с помощью Sqlplus и выполните любую данную команду. После этого оставьте сессию неактивной для 10,20,30,60 и 120 минут (по одной попытке за раз). Это даст вам знать, если проблема возникает только через пул соединений или с SQLPLUS. Если последнее верно, то это может быть сетевая проблема или конфигурация (такой тайм-аут брандмауэра), который убивает сеанс из-за неактивности. Это особенно верно, если сеанс всегда умирает после того же интервала (например, через два часа). Попробуйте тот же эксперимент на других машинах, чтобы узнать, все еще происходит тайм-аут. Если это происходит только с определенных хостов, это может быть проблемой с коммутатором, к которому подключен хост. Возможно, вам потребуются ваши сетевые инженеры.
Конфигурация OS Keepalive может помочь в этом случае. Ниже приведена ссылка для Windows. http://blogs.technet.com/b/nettracer/archive/2010/06/03/things-that-you-may-want-to-know-about-tcp-keepalives.aspx
Еще один способ отладки таких ошибок - это трассировка TNS на клиенте и/или сервере. Это делается путем настройки параметров как TRACE_LEVEL_CLIENT и TRACE_LEVEL_SERVER соответственно в файлах клиента и сервера sqlnet.ora. Для этого требуются другие параметры. Проверьте документацию Oracle по этому вопросу.
Oracle стороне сервера разъединение
База данных может отключить сеанс из-за проблемы с ним, ошибка в Oracle или когда сеансы убит администратором. Лучшим способом диагностики таких проблем является поиск в базе данных alert.log, соответствующий времени, когда вы получили ошибку с содержимым журнала. Если сеанс скончался на сервере, появится запись о том, что сеансы были завершены, а путь к файлу трассировки содержит дополнительную информацию об отключении. Если это ошибка Oracle, которая вызывает ее, вам придется искать правильное исправление через Oracle Support.
Кроме того, пользователь может быть связан с профилем Oracle, который настроил CONNECTION_TIME или IDLE_TIME. Чтобы отладить, если это является причиной проблемы, свяжите пользователя с профилем Oracle без таких ограничений.
Вы видите эту тему: https://community.oracle.com/thread/2230671?tstart=0? Если причина не в тайм-ауте, вы видели историю SQL-запросов закрытых сессий? Есть некоторые ошибки в oracle, когда «неправильный» SQL-запрос приводит к прерыванию сеанса (разные SQL в версиях оракула). Например: выберите 1 из двойного объединения выберите 1 из двойного порядка по dbms_random.value. – Dmitry
Я предполагаю, что SID, Serial и Process меняются каждый раз при возврате ошибки. Сколько времени потребуется, чтобы проблема появилась после перезапуска промежуточного программного обеспечения? – Gui