Как я могу помешать Разработчику SQL Oracle закрывать соединение с БД?

Если Вы говорите о Java (но правила для других языков подобны), он похож на это:

можно (вниз) бросить интерфейс к конкретной реализации, эквивалентность, ссылка, которую Вы бросаете на самом деле, является ссылкой на определенную конкретную реализацию. Это означает

Vehicle v=new Car();
(Car)v // this is OK
(Bus)v // this is not

, ошибка проявляется как ClassCastException в Java.

Вы можете восходящий конкретная реализация интерфейса к интерфейсу свободно.

36
задан Kevin Babcock 20 August 2009 в 22:48
поделиться

4 ответа

Это не похоже на проблему с разработчиком SQL, кстати, я никогда не сталкивался с этим. Вы уверены, что это не что-то другое, например ваша сеть? Что произойдет, если вы подключитесь через SQL plus со своего рабочего стола.

8
ответ дан 27 November 2019 в 05:51
поделиться

У меня нет ответа на этот вопрос, но у меня та же проблема.

Брандмауэр между моим SQL-разработчиком и базой данных автоматически закрывает "неактивные" сессии. Длинный запрос, согласно брандмауэру, является неактивной сессией, поэтому он закрывает ее. Я пока не нашел, как заставить SQL-разработчика посылать пакеты по соединению с длинным запросом, чтобы брандмауэр не закрывал соединение. И я не знаю, возможно ли это вообще.

Поэтому я не думаю, что это проблема SQL-разработчика, а проблема брандмауэра.

-- UPDATE

Существует расширение для SQL-разработчика, позволяющее поддерживать соединения активными: http://sites.google.com/site/keepaliveext/

Оно еще не полностью закончено (например, уведомление, которое вы получите, будет показывать один и тот же тайм-аут независимо от того, какой тайм-аут вы указали), но оно выполняет свою задачу. Я еще не протестировал его в сравнении с последним предварительным релизом SQL Developer, но он работал с SQL Developer 2.2.x

-- UPDATE

Для SQL разработчика 4+ можно использовать: http://scristalli.github.io/SQL-Developer-4-keepalive/

29
ответ дан 27 November 2019 в 05:51
поделиться

Также похоже на проблему с брандмауэром.

Возможно, вам повезет с установкой параметра EXPIRE_TIME в файле SQLNET.ORA сервера. Из документации:

Используйте параметр SQLNET.EXPIRE_TIME для указания временного интервала в минутах для отправки зонда, чтобы проверить, что соединения клиент/сервер активны. Установка значения больше 0 гарантирует, что соединения не останутся открытыми на неопределенное время из-за аномального завершения работы клиента. Если зонд обнаруживает прерванное соединение или соединение, которое больше не используется, он возвращает ошибку, заставляя серверный процесс завершить работу. Этот параметр предназначен в первую очередь для сервера базы данных, который обычно обрабатывает несколько соединений в одно и то же время.

Документация 10g по EXPIRE_TIME

9
ответ дан 27 November 2019 в 05:51
поделиться

В качестве временного решения этой проблемы на стороне «Data Grid» вы найдете вкладку «Вывод СУБД», включите вывод СУБД и установите частоту опроса на подходящее время.

5
ответ дан 27 November 2019 в 05:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: