powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA: вопрос новичка по MobiLink
2 сообщений из 2, страница 1 из 1
ASA: вопрос новичка по MobiLink
    #33951180
Марсель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть начальные вопросы по MobiLink (сильно не пинайте)
1. При работе с SQLRemote наткнулся с проблемой, когда глючил в непрырывном режиме, пришлось запускать в пакетном режиме через nncron.
С dbmlsync.exe делать также, т.е. запускать через внешний шедулер?
2. SendDownloadACK - стоит ли его ставить в ON, иначе как разрулится ситуация с закомитченным download потоком в консалидированной БД
и незокомитченным в удаленной?
3. При применении download потока, смогут ли пользаватели в это время писать/читать эти таблицы?
4. Т.к. конструкция "if current remote user is not null then ..." не работает с MobiLink, поможет ли след. код для применения переменной
cvFromRemoteSite в тригерах (if cvFromRemoteSite = 0 then ...)

current remote user - это для DBRemote (т.к. он тоже будет работать)
LOCATE(connection_property('Name'), 'DBMLsync') - для удаленной БД
begin_connection - для центральной БД
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
CREATE PROCEDURE "DBA"."sp_Init" ()
BEGIN
  CALL sp_login_environment ();

  CREATE VARIABLE cvFromRemoteSite bit;
  if (current remote user is not null) or (LOCATE(connection_property('Name'), 'DBMLsync') <>  0 ) then
    set cvFromRemoteSite =  1 ;
  else
    set cvFromRemoteSite =  0 ;
  end if;
END;

CREATE PROCEDURE dbml_begin_connection(IN @ml_username VARCHAR( 128 ))
BEGIN
  set cvFromRemoteSite =  1 ;
END;

CALL ml_add_connection_script ('1', 'begin_connection', 'CALL dbml_begin_connection()');
COMMIT;
...
Рейтинг: 0 / 0
ASA: вопрос новичка по MobiLink
    #33951633
yourij_mw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажу как непрофи новичку
МарсельЕсть начальные вопросы по MobiLink (сильно не пинайте)
2. SendDownloadACK - стоит ли его ставить в ON, иначе как разрулится ситуация с закомитченным download потоком в консалидированной БД
и незокомитченным в удаленной?

Если download не делает модификаций данных то стоит его отсавить off, т.к. в противном случае данные в СУБД данные будут блокироватся до того времени пока не применится выгрузка в удалённой СУБД включая передачу по модему а это часто может быть больше пяти минут. dbmlsync и dbmlsrv сверяют потом между собой дату последней загрузки (last_dowload_timestamp), потому не стоит беспокоится о том как установить более раннюю дату, и неприменённыё данныё окажутся в потоке загрузки снова если для фильтраици вы исползуете дату
Марсель
3. При применении download потока, смогут ли пользаватели в это время писать/читать эти таблицы?

...download поток применяеться быстро ... об этом не стоит беспокоится если включена его буфферизация. Конечно же соответсвующие данные блокируються в момент применения но это 2-3 секунды.
Там есть опции блокировки таблиц клиента ON | OFF | SHARE | EXCLUSIVE которые начинают действовать с момента upload включающие передачу и применение данных в центральной, прийом и применение в удалённой. У нас он OFF, и это означает что можно писать в эти таблицы . Если с момента выгрузки данные поменяются, и строки с этими же PK окажутся в download потоке с другими значениями (это эдинственняодна особая ситуация), то download не будет применятся и вместо этого снова пройдёт выгрузка новых данных, и загрузка. Так конечно же может происходить много раз. Но какраз те таблицы котрые у нас постоянно меняются у клиента (тоесть и в момент синхронизации) - мы не загружаем а делаем только выгрузку и по этому нас ето устраивает.
Марсель
4. Т.к. конструкция "if current remote user is not null then ..." не работает с MobiLink, поможет ли след. код для применения переменной
cvFromRemoteSite в тригерах (if cvFromRemoteSite = 0 then .

я так понял это проверка того не Mobilinком ли меняються данные.
В Mobilink удалённый пользователь не то что SQLRemote (хотя с последним не очень знаком). Я проверяю по suser_name()
Для этого на сервере мы завели отдельного пользователя "Mobilink", и от имени его подключаемся..
..в триггерах местами if suser_name() = 'Mobilink' return и всё такое..
на счёт скриптов на подлючение то следует к примеру учитывать к примеру то исполняються они в спмогательном подключенни мобилинка или в том котором происходит модификация и выборка данных. Но с ними я не очень балуюсь. Просто создаю таблицы временно для сеанса и не более, потому более ничего не могу сказать.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA: вопрос новичка по MobiLink
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]