Выделение дополнительного ID Block в реплике

       "ClearQuest MultiSite controls how many record ID numbers are allocated to each replica. This allocation is done by using ID blocks (groups of IDs). By default, each replica is given an ID block of 4096 IDs when it is created. When a replica reaches a threshold of 1250 IDs left to use, it is allocated another ID block of 4096 IDs. This ensures that all IDs are unique. ID block allocation is handled internally by the master schema repository site during synchronization operations. Depending on the activity level of a replica family, it may be helpful to increase the size of the ID blocks that are allocated to a replica, to ensure that synchronization flows smoothly. For example, with the default settings, if a synchronization packet contains enough new records to be added to a replica that the receiving replica exceeds the number of IDs remaining in its current ID block, synchronization will fail".
Пути решения
Существует три пути решения данной проблемы:
  • Создание и выгрузка реплики путем стандартного механизма реплицирования, реализуемого multisite.
  • Принудительное увеличение размера блоков идентификаторов текущей реплики с помощью команды chreplica.
  • Ручное изменение размера блока идентификаторов (обходной путь).
    Использование команды chreplica
       Первый вариант использования не рассматривается, так как должен происходить автоматически.
    Использование команды chreplica достаточно тривиально:

    chrep·lica [-cl·an clan-name] [-site site-name] -u·ser username [-p·assword] password [-host hostname replica-selector | -size id-block-size | -thresh·hold id-block-threshold] replica-selector

     

    multiutil chreplica -clan INITDEV -site INITS -u Savitsky -p ***** -size 400 INITS

    Проверить внесенные изменения можно с помощью команды lsreplica:

    lsrep·lica [-cl·an clan-name] [-site site-name] -fam·ily family-name -u·ser username [-p·assword] password [-l·ong | -s·hort | -fmt format |-working·master] [-sib·lings | [-sib·lings ] -infa·mily family | replica... ]

     

    multiutil lsreplica -clan INITDEV -site INITS -fam NPPM -u Savitsky -p ***** -long > lsreplica.text

       Однако вариант использования команды chreplica может не сработать, из-за ошибках в текущем релизе ClearQuest. Например, релиз 2002.05.20 до сих пор не позволяет увеличить размер блока идентификаторов, хотя для того же релиза, но под UNIX, дефект исправлен. Поэтому можно воспользоваться обходным вариантом.
    Ручное изменение размера блока (обходной вариант)
       Ручное изменение размера блока касается двух таблиц в пользовательской базе данных ClearQuest (не репозиторий, а пользовательская база данных):

    1. ratl_id_blocks;
    2. dbglobal;
     
    [ratl_id_blocks] - необходимо выбрать текущую реплику и для нее задать новое значение предела (limit), затем добавить количество доступных идентификаторов (available). Если используются (производятся) другие реплики, то необходимо соответствующим образом заменить базовый идентификатор для реплики (base).
    [dbglobal] - необходимо поправить значения поля последнего допустимого идентификатора (last_aux_id) – сделать его соответствующим ratl_id_blocks.limit.
    Внимание! При использовании ручного выделения блока идентификаторов необходимо быть внимательным и осторожным, дабы не сместить идентификаторы таким образом, чтобы они стали перекрываться. Последствия непредсказуемы.

     Evgeny Savitsky © 2002-2003