On-line: PSP, Haz, гостей 0. Всего: 2 [подробнее..]
АвторСообщение
Pasha
Администратор




Пост N: 2416
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 22.06.12 18:14. Заголовок: Leto DB Server (продолжение 8)


Немного доработал документацию к letodb

Спасибо: 0 
Профиль
Ответов - 273 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 All [только новые]


Pasha
Администратор




Пост N: 2744
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.03.13 19:34. Заголовок: Dima пишет: А в чем..


Dima пишет:

 цитата:
А в чем разница между leto_RecLock() и RLock() если база открыта с RDD Leto и нужно
залочить текущую запись ?



leto_RecLock предназначена для использования исключительно на сервере, в udf-функциях. А с клиента надо работать стандартными средствами rlock/flock/dbRLock

На сервере их использовать нельзя, поскольку смысл блокировок на сервере другой. Сервер открывает файлы (при стандартном режиме) монопольно, и блокировки там выполняются логически.

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 2718
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.03.13 19:36. Заголовок: Pasha Спасибо за ра..


Pasha
Спасибо за разъяснения !

Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 2745
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.03.13 21:29. Заголовок: Dima пишет: еще наб..


Dima пишет:

 цитата:
еще наблюдение. если пересобрать клиентское приложение то в 30% после первого
запуска LETO_CONNECT выдаст -1



Я тоже напоролся на это. Пока 2 предположения: или служба "еще не до конца запустилась", а клиент уже коннектится к ней и валит ее (я службу постоянно останавливаю-пересобираю-запускаю-запускаю тест).
Либо все-таки есть какой то баг в операциях с памятью, связанный с BM
Но у меня эта ситуация возникает только в момент первого запуска теста после старта службы.

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 2720
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.03.13 22:03. Заголовок: Pasha пишет: Но у м..


Pasha пишет:

 цитата:
Но у меня эта ситуация возникает только в момент первого запуска теста после старта службы


я тоже обратил на это внимание , закономерности пока не понял. в течении дня таких глюков больше не было.
Pasha пишет:

 цитата:
Либо все-таки есть какой то баг в операциях с памятью, связанный с BM


Не знаю. Еще до того как начинаю юзать BM то падало на LETO_CONNECT()
Если мне не изменяет память то еще до ввода BM такой глюк имел место ,
возможно сервис LetoDB еще не до конца запустился. В свое время именно
из за этого я и не стал тестить Leto. Поживем , посмотрим , может и найдем что.
А вообще LetoDB мне уже начинает нравиться ;)

Мне вот просто интересно. В плане надежности имеет значение как юзать сервер
Leto , как SERVICE или DAEMON ? Чисто в теории разницы в надежности и стабильности
быть не должно.

Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 2746
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.03.13 22:24. Заголовок: Сбросил изменения на..


Сбросил изменения на CVS
Для того, чтобы по команде SET FILTER формировался bitmap-фильтр, надо в letodb.ini задать параметр:

ForceOpt = 1

А насчет демона - я, как только появилась служба, демон не использовал ни разу. Служба намного удобнее. Нет проблем с правами доступа. Запускает ее сама система, не нужен вход пользователя.


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 2721
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.03.13 22:42. Заголовок: Pasha пишет: Сброси..


Pasha пишет:

 цитата:
Сбросил изменения на CVS


Спасибо , завтра проверю. Отпишу тут.

Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 2748
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.03.13 22:55. Заголовок: Кстати, маленький нь..


Кстати, маленький ньюанс
Я службу останавливать/запускать батником стал недавно, а до этого делал это через диспетчер служб. Там процесс запуска отображается на экране, и видно, когда служба запустилась.
Поэтому тест "в процессе" никогда не коннектился.
Если это делать из батника, то окончания запуска не видно, вот наверное и возникают накладки.

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 2724
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.03.13 23:24. Заголовок: Pasha пишет: Я служ..


Pasha пишет:

 цитата:
Я службу останавливать/запускать батником стал недавно


Ну смотря как батник устроен. Если echo off то не видать ни чего а если echo on тогда
виндец ошибку выдаст если что.
Что то типа такого
 
The requested service has already been started.

More help is available by typing NET HELPMSG 2182.


Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 2749
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.03.13 09:30. Заголовок: Есть еще пара момент..


Есть еще пара моментов. Во первых, при вызове LBM_dbSetFilterArray(), надо сбрасывать skip-буфер. Это я добавлю вечером.
Во-вторых, я хочу все-таки сделать, чтобы не всякий фильтр строился как bitmap, а только если на клиенте также установлен _SET_FORCEOPT. Для этого эту настройку надо передавать серверу вместе с фильтром.
Таким образом, на клиенте можно будет управлять, какой фильтр будет bitmap, а какой - обычный.

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 2726
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.03.13 10:56. Заголовок: Да все заработало. П..


Да все заработало.
По команде Set filter to так же ставится опт. фильтр. Но в этом случае LBM_DBGETFILTERARRAY() вернет 0 а это не правильно.
Со сбросом фильтра все нормально.

Есть правда не удобство но к нему можно и привыкнуть.
LBM_DBSETFILTERARRAY({1,590,234,2345,7899,9000,700000})
go top // видим 7 записей

LBM_DBSETFILTERARRAY({1,590)
go top // видим 2 записи

Тут все норм.

А вот так нет
Set filter to nomer==5
go top // видим 30 записей

dbclearfilter() // нужно принудительно сбросить фильтр после Set filter to.......
LBM_DBSETFILTERARRAY({1,590)
go top // если фильтр не снять не увидим ни чего

То есть поведение LBM_DBSETFILTERARRAY и у dbsetfilter() разное а должно быть одинаковое. В BMDBFCDX именно так

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 2727
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.03.13 11:19. Заголовок: Dima пишет: copy fi..


Dima пишет:

 цитата:
copy file test.txt to (cserv+"test1.txt")


Pasha пишет:

 цитата:
Надо использовать функции leto_MemoWrite и leto_FileWrite



Да работает
leto_memowrite(cserv+"test1.txt",leto_memoread(cserv+"test.txt"))
или же можно поблочно , считывать и писать с помощью
Leto_FileRead , Leto_FileWrite

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 2729
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.03.13 11:29. Заголовок: Pasha Закроешь эту ..


Pasha
Закроешь эту тему когда посчитаешь нужным. Продолжение будет в Leto DB Server (продолжение 9)

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 2730
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.03.13 14:12. Заголовок: Pasha я тут подумал..


Pasha
я тут подумал. может оставить в покое DBsetfilter и пусть он работает как и работал до введения BM , если это сложно.
для установки BM фильтра вполне достаточно иметь LBM_DBSETFILTERARRAY а оптимально заполнить
массив как бы и не проблема.

Спасибо: 0 
Профиль
Ответов - 273 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 406
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет