Организация счетчика

Тема в разделе "Lotus - Программирование", создана пользователем iivvnn, 9 сен 2011.

  1. iivvnn

    iivvnn Active Member

    Регистрация:
    7 сен 2011
    Сообщения:
    37
    Симпатии:
    0
    Есть распределенная система - 2 сервера на которых лежат реплики баз. На каждом сервере с базой работает по одному пользователю (в идеале) - которые создают документы. Как организовать счетчик документов без повторений номеров (после репликации) при ситуации когда оба пользователи в одно время создают документы в своих базах
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    -ввести пулы номеров, кот. сервера будут пераспределять. Т.е. генерим мульён номеров, кот. попеременно закрепляем за серверами и реплицируем пул на сервера, когда пул подходит к опред. отсечке - генерим ышо и реплицируем
    -использовать UNID
    -ввести в состав номера номер сервера
    -ввести практику временных номеров, а глобальные будут формироваться по опред событию (на основе временных)
     
  3. iivvnn

    iivvnn Active Member

    Регистрация:
    7 сен 2011
    Сообщения:
    37
    Симпатии:
    0
    Как использовать UNID в организации порядковой нумерации (№+1)?

    Тетка хочет при нажатии "Создать док" и открытии формы сразу видеть номер документа (до его сохранения). В таком варианте реплицировать пулы (еще при хреновом канале связи?)
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    вам не кажется, что это отсутствовало в начальной постановке вопроса? :)
    а простите - зачем +1?
    и где вы видели схему с репликацией и нумерацией +1? (пример в студию) если нумерация не происходит только на одном узле
     
  5. 1KIA

    1KIA Гость

    я делала так: на одном сервере (админ.) сделала форму, в которой поле с заполненем номера. На postopen берется номер указанный там, на кверисайв изменяется номер на 1, т.е. в той форме, в которой поле с заполненем номера.
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    речь о двух серверах, и всё что вы делали - это UI приблуды и работать при многоюзеровом доступе не будет
     
  7. iivvnn

    iivvnn Active Member

    Регистрация:
    7 сен 2011
    Сообщения:
    37
    Симпатии:
    0
    Ситауция: в Одессе(к примеру) сидит юзер который создает доки от Одессы (нумерация - последний № док из вьюхи+1). Все четко работало - репликой подтягивалась в основную базу инф в Киев. Пока в Киеве не посадили чела которому дали права вводить доки от имени Одессы.
    И вот эти двое начинают активно вводить документы - тот у себя тот у себя - репликация 1 в час. Дубликаты номеров рулят!!!

    Идея у меня такая: отделяная база счетчика документов с минимальным интервалом репликации - всеравно не исключает дубликатов.
    Или что бы одессит брал номер из киевской базы - канал хреновый - это не работа.
    Если есть другие выходы - буду рад выслушать
     
  8. Caspiy

    Caspiy Гость

    Канал постоянный? или Dial-Up (подключаемый по расписанию)?

    Если постоянный, то как вариант:
    1. создаете БД (с документом счетчика)
    2. сервера объединяете в кластер (если есть такая возможность)
    3. для кластерной репликации помечаете только БД с документом счетчика
    4. меняете код (нумератора) для работы с этим документом счетчика.

    Кластерная репликация работает в реальном времени. За счет того, что меняется только 1 документ, данные будут передаваться практически мгновенно! (сам постоянно использую данный способ в распределенных системах единой компании).
     
  9. iivvnn

    iivvnn Active Member

    Регистрация:
    7 сен 2011
    Сообщения:
    37
    Симпатии:
    0
    Канал постоянный.
    Насколько я помню в класте могут обьединяться сервера только одной поименнованой сети? Или ошибаюсь - (сервера в разных NNN)

    PS - а где для серверов кластера выставить реплицировать только одну базу?
     
  10. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    любой, тока доки коннекшинов д.б., тогда
    и если канал с обрывами - для кластера он мало пригоден
    тогда уж можно поднять на одном и серверов типа веб-службы и вызывать её, получая счетчик, можно в амазоне развернуть ;)

    Добавлено:
    в базе кластера (хэлп админа)

    Добавлено: через админский тулз http://www-12.lotus.com/ldd/doc/domino_not...6d?OpenDocument

    Добавлено: а еще надо учесть
    т.е. кластерная репликация - это не абсолютная гарантия ;)
     
  11. Cleric-Lviv

    Cleric-Lviv Lotus team
    Lotus team

    Регистрация:
    3 янв 2008
    Сообщения:
    605
    Симпатии:
    0
    iivvnn

    Я например делаю нумерацию на основе UNID (так как и предлагал lmike ) очень удобно так как если привязать номер к UNID то можна бить увереним что нумерок не повторится.
     
  12. Gandliar

    Gandliar Well-Known Member

    Регистрация:
    16 фев 2004
    Сообщения:
    222
    Симпатии:
    0
    Если канал постоянный, в чем проблема дернуть одесский сервак, получить док счетчика и инкрементить его? При удачном инкременте использовать номер на киевсокм сервере. При неудачном - попробовать еще раз в цикле. Если канал лег вообще - предусмотреть функцию ручного инкремента для оператора из одессы, чтобы можно было узнать номер по телефону. Если канал постоянный. проблем со скоростью быть не должно.
     
  13. Caspiy

    Caspiy Гость

    Для подстраховки конечно надо дополнительную репликацию проводить, но пока с кластерной проблем не наблюдалось (с 2006 года, все работает на отлично)

    Добавлено:
    так то оно конечно уникально получится! Но многим требуется определенный вид номера (а не просто набор из 32 символов)

    PS: если содержание номера "по барабану", то можно и формульную функцию "@Unique" использовать!
     
Загрузка...

Поделиться этой страницей