ЦФТ-Банк. Расчетный Центр. Зависания при обработке док-тов
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Пт Фев 01, 2008 17:03  ЦФТ-Банк. Расчетный Центр. Зависания при обработке док-тов |
|
Полезность: 4
|
Запостил в ЦФТ следующий трабл:
Обнаружены сильнейшие торможения при обработке документов РЦ. Начались они примерно неделю назад. Момент начала торможений локализовать не удалось.
Пользователь запускает операцию "Документы РЦ \ Переадресовать". Сессия зависает на глупейшем запросе:
Код: | select count(1) from Z#DOC_IN_FOLD where collection_id is null; |
После долгих и утомительных умозаключений стало понятно, что все дело в DOCUM_RC.LIB_1. Там есть кусок:
Код: | begin
if folder.[DOCS_IN_FOLD]%size(0) = 0 then
-- Удалим папку
folder.[DELETE#ALL];
end if;
exception when others then
if sqlcode <> -20999 then -- если папка уже была удалена при удалении документа, возникает exception c кодом 20999 - не будем ломаться в таком случае
raise;
end if;
end;
|
Судя по комментарию программист допускает попадание сюда при отсутствии папки. НО именно в этом случае возникает при подсчете количества документов упомянутый выше "тупой" запрос.
Если поместить этот кусок в блок
Код: | if folder is not null then
...
end if; |
то запрос исчезает. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|