![]() |
#12 |
Участник
|
Видимо стандартный алгоритм класса SystemSequence, который ведет буфер зарезервированных идентификаторов внутри AOS-а, работает следующим образом:
X++: AOS getBufferSize , BufferSize Для примера для bufferSize = 250 будет такая трассировка: 1. делаем flushCache() --> N = 0 (количество неиспользованных идентификаторов), SystemSequence.NextVal = 10000000 2. первое выделение nextVal() 2.1. т.к. N = 0 < 250, то выделяем очередной блок --> N = 250, SystemSequence.NextVal = 10000250 2.2. используем первый из полученных идентификаторов, в итоге N = N-1 = 249 3. второе выделение nextVal() 3.1. т.к. N=249 < 250, то выделяем очередной блок --> N = 249 + 250 = 499, SystemSequence.NextVal = 10000500 3.2. используем очередной из полученных идентификаторов, в итоге N = N-1 = 498 4. очередное выделение nextVal() 4.1. т.к. N=498 > 250, то больше новых блоков пока не выделяем --> N = 498, SystemSequence.NextVal = 10000500 4.2. используем очередной из полученных идентификаторов, в итоге N = N-1 = 497 При нескольких AOS-ах поведение каждого отдельного AOS-а подчиняется тому же самому алгоритму. |
|
Теги |
recid, документация, systemsequences, ax3.0 |
|
![]() |
||||
Тема | Ответов | |||
Как сформировать RecId | 18 | |||
поля, содержащие RecId | 15 | |||
Assegnare Recid a una Tabella manualmente | 5 | |||
aEremenko: Дефрагментация RecID | 2 | |||
Два RecId у одной записи таблицы | 33 |
|