Ромыч
Дата: 15.12.2002 12:15:13
Наткнулся на интересный баг: при разборе XML документа на сервере посредством вызова sp_xml_preparedocument/OpenXML/sp_xml_removedocument
наблюдаются странности при вызове sp_xml_removedocument. А именно: sp_xml_preparedocument и OpenXML вызываются нормально, набор данных из документа получил, а при удалении документа из памяти при выполнении такого кода:
exec @ret_code=sp_xml_removedocument @xml_handler
@ret_code оказывается равным 1. В BOL написано, что если @ret_code=0, то все ОК, если >0, то ошибка.
Там же написано, что дескать, эту процедуру нужно вызвать, чтоб освободить память сервера.
Стал эксперементировать, в цикле вызвал 10000 раз ХП где все это выполняется, сервер память не жрет. Стоило убрать вызов sp_xml_removedocument, как сервер исчерпал всю память. Т.е. она вроде освобождается. Только почему @ret_code равный 1 возвращает?
Может кто встречал такую вещь?