Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Опыт и разработки пользователей ИРБИС :  ИРБИС Irbis
 
CORREC - максимальное количество корректируемых записей
Пользователь: iLq (IP-адрес скрыт)
Дата: 08, September, 2011 15:07

Хочу сворачивать статистику в веб-каталоге за год в одну запись. В глобальной корректировке использую команду CORREC по удалению записей за год, то есть много. Но выдает ошибку (Ошибка глобальной: -8888). Если у CORREC указываю конкретное число 1000, то глобальная работает нормально. Если указываю 2000, то уже всё - та же ошибка.

Вот это максимальное кол-во где-то параметризуется? Или вшито ограничение?

Можно конечно отдельной глобальной дополнительно удалять после создания "годовой" записи, но это лишнее телодвижение.

С уважением, Лазарев Илья (Научная Библиотека ВятГУ)

Re: CORREC - максимальное количество корректируемых записей
Пользователь: Gena (IP-адрес скрыт)
Дата: 08, September, 2011 21:53

Эм... Илья, ты вызываешь корректировку одного документа, от которого обращаешься к другим? Или по очереди корректируешь каждый документ, а от него передаешь данные в конкретный, после чего удаляешь обрабатываемый документ? Можешь показать корректировку? Про ограничения - они точно были, а вот какой порядок - надо поискать в старых темах, это обсуждалось в этом году

Re: CORREC - максимальное количество корректируемых записей
Пользователь: iLq (IP-адрес скрыт)
Дата: 09, September, 2011 09:08

Пример глобальной моей:
IF
if v920='STATYEARS' then if v100^a:'1' then '1' else '0' fi, fi
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
ADD
100^c
F
(if p(v100) then if p(v100^a) then if v100^a='1' then &uf('+3SLOGDB,0,','|','<.>DB=IBIS<.>*<.>START=1<.>*<.>COM=S<.>*<.>DTY=',v100^b,'<.>','|',',') fi,else # fi/fi)
XXXXXXXXXXXXXXXXXXX
CORREC
'*'
(if p(v100) then v100^b/ fi)
(if p(v100) then if v100^a='1' then 'DTY=',v100^b fi / fi)

DELR
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
END
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
DEL
100^a
*
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
FI
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX

Еще её доделывать буду - только пока начал.
Смысл какой: завожу запись для сбора годовой статистики (возможно и помесячно тоже буду собирать). Указываю в подполе v100^a "1", означающей, что надо собрать за год, указанный в v100^b. После сохранение в автоине должно собрать статистику, удалить все записи по этому году (словарь "DTY="v907*4.4), потом удалить подполе v100^a.

Если, конечно, ограничение имеет смысл, то тогда придется просто через автоин собирать статистику, а удалять "вручную": выбирать в словаре DTY= нужный год и глобальной DELR.

С уважением, Лазарев Илья (Научная Библиотека ВятГУ)

Re: CORREC - максимальное количество корректируемых записей
Пользователь: ochagova (IP-адрес скрыт)
Дата: 13, September, 2011 16:09

"Конкретное число" - этот параметр введен для ОГРАНИЧЕНИЯ кол-ва опереторов CORREC, если есть подозрение, что их будет слишком много. Каждый оператор CORREC приводит к захватыванию памяти и, видимо, где-то есть предел. Это происходит в сервере приложений и есть ли там контроль - не могу сказать. С технологами есть специальная договоренность, что они не делают глобальныхзаданий со слишком большим циклом CORREC. Это надо как-то обходить.
У клинета не происходит реальной записи в БД пока не выполнятся ВСЕ CORREC одного прохода, т.е. захват памяти м.б. слишком велик. У глобальной Администратора это не происходит, там каждый CORREC тут же пишет рез-ты в БД. Кстати, рез-ты CORREC (у клиента) нельзя использовать в этом же проходе задания.



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.