А можно ли не делать явное освобождение всех ресурсов при работе с XML DOM (имеются в виду вызовы методов DBMS_XMLDOM.freeXXX)? Сработает ли какой-нибудь сборщик мусора по выходу из хранимой процедуры, или в конце концов вся память утечет?
Здравствуйте, α, Вы писали:
α> А можно ли не делать явное освобождение всех ресурсов при работе с XML DOM (имеются в виду вызовы методов DBMS_XMLDOM.freeXXX)? Сработает ли какой-нибудь сборщик мусора по выходу из хранимой процедуры, или в конце концов вся память утечет?
Должен сработать. Если не оставить ссылок где-нибудь, например в пакетных переменных.
Здравствуйте, α, Вы писали:
α>А можно ли не делать явное освобождение всех ресурсов при работе с XML DOM (имеются в виду вызовы методов DBMS_XMLDOM.freeXXX)? Сработает ли какой-нибудь сборщик мусора по выходу из хранимой процедуры, или в конце концов вся память утечет?
Сработает обязательно, но по дисконнекту сессии.
В некоторых окружениях, напоминаю, дисконекта не бывает месяцами.
?>А можно ли не делать явное освобождение всех ресурсов при работе с XML DOM (имеются в виду вызовы методов DBMS_XMLDOM.freeXXX)? Сработает ли какой-нибудь сборщик мусора по выходу из хранимой процедуры, или в конце концов вся память утечет?
Можно. Но любое мал-мала длительное общение с XML DOM выжрет все предоставленные ресурсы и поимеешь ты проблемы на ровном месте. Ходят слухи, что в 12с сие поправили, но насколько это правда — я не знаю, а качать гигабайты лениво. Сырое оно пока еще.
Здравствуйте, LuciferNovoros, Вы писали:
LN>Можно. Но любое мал-мала длительное общение с XML DOM выжрет все предоставленные ресурсы и поимеешь ты проблемы на ровном месте. Ходят слухи, что в 12с сие поправили, но насколько это правда — я не знаю, а качать гигабайты лениво. Сырое оно пока еще.
Так вот насколько длительное?
Транзакция, область видимости (процедура-блок), сессия?
Не скажу что не умею гуглить, но этой информации с лету не нашел.
Там есть еще такие например ньюансы: скажем, есть итерация по DOMNodeList, в каждой итерации получаю DOMNode. Надо его освобождать явно или нет?
Или там, будут ли автоматически прихлопнуты все узлы документа, на которые ссылаются переменные хранимой процедуры, если вызвать freeDocument?