Форум » LetoDB, HbNetio. » Leto DB Server (продолжение 8) » Ответить

Leto DB Server (продолжение 8)

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

Ответов - 273, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 All

Dima: Dima пишет: Что то не могу обновиться Переустановил TortoiseCVS , заработало ;)

Dima: Pasha А какие то требования к OS Windows есть , там где будет крутится LetoDB Server ? Это должна быть серверная OS или нет ? Я имею в виду что на обычной винде не серверной есть ограничение на кол-во подключений по сети.

PSP: LetoDB не создает клиентскую сессию Windows. Так что эти ограничения его не касаются.


Dima: PSP Спасиб

Dima: Pasha пишет: Да, конечно. При установке фильтра командой set filter сервер пытается выполнить выражение фильтра. Если попытка успешна, то устанавливается серверный фильтр, если нет - фильтр выполняется на клиенте. Это понятно. А серверные фильтры оптимизированы (при наличии соответствующего индекса) как в ADS или SIX ?

Pasha: Dima пишет: А серверные фильтры оптимизированы (при наличии соответствующего индекса) как в ADS или SIX ? Нет, не оптимизированы, поскольку их не поддерживает сам харбор В этом случае фильтр надо самому разделить на 2 части: для индексных полей использовать set scope, для неиндексных - set filter

Dima: Pasha пишет: Нет, не оптимизированы, поскольку их не поддерживает сам харбор А планируется ли такая фича ? По ходу харбор их не поддерживает но ведь они все же поддерживаются в RDDADS а точнее сказать наверное в ADS сервере.

Dima: Pasha пишет: Нет, не оптимизированы, поскольку их не поддерживает сам харбор А это что тогда ? [pre2] SET OPTIMIZE ON | OFF | (<lToggle>) Arguments ON enables optimization. OFF disables optimization. <lToggle> is a logical expression that must be enclosed in parentheses. A value of true (.T.) is the same as ON, and a value of false (.F.) is the same as OFF. Note: The initial default of this setting depends on the RDD. Description The SET OPTIMIZE command determines whether or not to optimize filters in the current work area. Optimization is based on index expressions of indexes open in the current work area. When a filter condition matches with an index expression, the RDD, such as DBFCDX, compares values stored in the index rather than the database. This leads to an enhanced performance since less disk I/O is required during database navigation. [/pre2]

Pasha: Dima пишет: А планируется ли такая фича ? По ходу харбор их не поддерживает но ведь они все же поддерживаются в RDDADS а точнее сказать наверное в ADS сервере. Даже Przemek не упоминал об этом. А rddads поддерживает такие фильтры, поскольку их поддерживает сам Ads.

Dima: Dima пишет: SET OPTIMIZE ON Не фига она не оптимизирует. Нужный индекс есть , ставлю фильтр и получаю такой же тормоз как и без индекса. Упс ;) Не прав. Не ту доку смотрел. Оптимизирует но только "BMDBFCDX"

Andrey: Dima пишет: SET OPTIMIZE ON | OFF | (<lToggle>) Я тоже расстраивался, когда перешел с Клипера на Харбор. Pasha пишет: Вопрос по НАСТРОЙКЕ LetoDB. Как настроить его для внешней и внутренней сети одновременно. Т.е. нужно, чтобы часть рабочих станций работала через внешний IP, а часть по локальной сети предприятия. Как быть в этом случае ?

a_sidorov: Так ты настраивай программу, а не LetoDB. LetoDB будет свой на каждом сервере. А как и где открывать файлы решать программе. Можно часть файлов открывать без Letodb. Я определяю это в зависимости от пути к файлам. Если путь к серверу с LetoDВ, открываю файл VIA LETO. Программе все равно, сколько серверов и сколько LetoDB используется. Я таким образом синхронизирую данные на удаленном сервере со своим сервером, оба на разных LetoDB. Для программы это просто разные пути к файлам, открытые VIA LETO и все.

Pasha: Andrey пишет: Как настроить его для внешней и внутренней сети одновременно. Т.е. нужно, чтобы часть рабочих станций работала через внешний IP, а часть по локальной сети предприятия. Если я правильно понял, letodb сервер планируется поставить один, но часть клиентов будет к нему обращаться по ЛВС, а часть - через интернет. В любом случае на клиенте должна быть настройка адреса сервера. Если это для ЛВС - то это должен быть ip или имя компьютера внутри ЛВС, если через интернет - то внешний ip компьютера, на котором работает сервер letodb.

Andrey: Pasha пишет: Если я правильно понял, letodb сервер планируется поставить один Да, именно так ! А кто так работает, поделитесь статистикой, нормально ли работает ? Можно ли по сотовому модему (медленному) работать с базой через LetoDB ?

Pasha: Andrey пишет: А кто так работает, поделитесь статистикой, нормально ли работает ? Можно ли по сотовому модему (медленному) работать с базой через LetoDB ? Все зависит от того, насколько медленному. Я работал через инет соединение только в качестве теста. С обеих сторон скорость была не очень высокой. Кое-какие операции пришлось оптимизировать. Я в letodb.ini включал опцию "Debug=10", и анализировал лог запросов. Сразу становилось видно, что неоптимально. Те операции, которые в локалке были некритичными, через инет тормозили работу. В результате оптимизации получилось более-менее приемлемо. Но это был только тест.

SergKis: Andrey пишет:А кто так работает, поделитесь статистикой, нормально ли работает ? Можно ли по сотовому модему (медленному) работать с базой через LetoDB ? LetoDB от 21.04.2011, hb 2.0, bcc. Тесты проводил под Петербургом (10 км) операторы Bilain, MTC, в Риге и 40 км от нее (примерно 1.5 года назад). Сервер в Риге. Скорости соединения примерно одинаковые (в Риге чуть быстрее). Про загрузку dbf на сервер я уже писал и там же были базовые исходники тестов. Browse (WVT, 80, 25) длина записи в базе ~3K предел скорости просмотра, добавленный relation к др. области - это все встало. Browse на длину записи в базе ~1K и два relation держит приемлемо, длина записи в базе 50-300 байт - можно сказать летают. Самые быстрые операции - выборка, длина записи в базе 400-1000 байт за 1.5 сек. отбираются ~2000-4000 записей. После тестирования, мы стали использовать rdd MEMIO, куда делаем выборки и Browse работает на MEMIO, связывая MEMIO relation по RecNo или ключам с сервером или с dbf на MEMIO (справочники). Сейчас такую штуку используем при переводе Clipper,WVT на MiniGui MDI (правда пока без сервера - надо интерфейс и алгоритмы перевести и потом подключать сервер). В связи с такой методикой работы, показался очень интересным использовать skip буфер, в новой версии LetoDB (приставал к Паше с вопросами где то выше), что бы в skip буфере использовать список нужных полей и сразу колонку с RecNo dbf сервера, а не весь буфер записи.

Pasha: Добавлю, что надо правильно использовать skip-буфер: скажем, для browse задавать его не меньше кол-ва строк для просмотра. Еще я стал активно использовать seek-буфер, в каких-то случаях очень помогает. В целом все зависит от скорости соединения и от того, как написана программа. Можно и для скорости в десятки мегабит сделать программу так талантливо, что она будет висеть. Для медленного gprs соединения надо уж очень постараться. Для скорости порядка сотен KB - единиц MB тоже надо хорошо приложить руки, чтобы добиться нормальной работы.

a_sidorov: Опыт следующий: Три сервера Letodb, с добавленными функциями и транслированные на xHarbour 1.2.1, расположенными в разных точках Москвы(2 сервера и 1 локалка с сервером LetoDB , подключенная через Синтерра). Пользователи (программа на XHarbour 1.2.1) работают на трех независимых БД из соображения надежности как по питанию, так и по другим критериям. Программа синхронизации на xHarbour 1.2.1 (доступ к серверам через Letodb) раз в час синхронизирует все данные на трех серверах (двух серверах и локалке), перенося измененные данные. Программа синхронизации установлена на одном из серверов, где больше данных. Поскольку это СРМ, считается, что один клиент в течение времени синхронизации не покупает в разных офисах. Индексы NTX.

Dima: По поводу ошибки leto_errInternal!!!!!!!!!!!!!!!!!! в letodb.log [pre2] 1. letodb.exe install (перед этим я остановил и удалил сервис Leto) 2. Лезем в панель управления в службы и стартуем LetoDB (это окно у меня уже было открыто) 3. Запускаем приложение и оно как бы подвисает на строке leto_Connect( "//127.0.0.1:2812/" ) , затем пара-тройка виндовых ошибок вылазит и прога падает при открытии базы с месагой Error leto/1000 data type error В логе видим leto_errInternal!!!!!!!!!!!!!!!!!! [/pre2] А вот так ошибки нет [pre2] 1. letodb.exe install (перед этим я остановил и удалил сервис Leto) 2. net start "LetoDB Service" [/pre2] PS Не понятно кто виновник , винда (XP SP 3) или сервис Leto При чем происходит так через раз.

Dima: Dima пишет: 2. Лезем в панель управления в службы и стартуем LetoDB (это окно у меня уже было открыто) Похоже в этом причина. Окно с сервисами не автообновляется. И если я вижу что сервис запущен то на самом деле он может быть и не запущен вовсе. Что бы увидеть реальную картину окно надо обновить ручками или закрыть/открыть.



полная версия страницы