On-line: tnsr2, гостей 3. Всего: 4 [подробнее..]
АвторСообщение
alkresin
moderator


Пост N: 31
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 31.01.08 11:36. Заголовок: Leto DB Server(продолжение)


Только что открыл на Sourceforge новый проект - Leto DB Server - https://sourceforge.net/projects/letodb

Это мультиплатформенный ( Windows, Unix/Linux ) сервер баз данных, предоставляющий клиентским программам доступ к dbf/cdx файлам, находящимся на удаленном сервере ( можно и на локальном компьютере запускать - в отладочных целях ). В общем, как ADS :).

Проект - на стадии разработки, не все даже базовые функции еще реализованы, до оптимизации дело еще не дошло. Но работает :).
Крутится у меня на сервере несколько дней, подключал до 15 клиентов, пока не падает. Мои программы работают с ним нормально.

Преимущества по сравнению с обычным файл-сервером:
1) Безопасность - базы могут быть в каталоге, недоступном для клиентских компьютеров - никто их случайно не удалит и не повредит.
2) Поскольку базы открываются серверной программой, а не клиентской, ее целостности ничего не грозит при случайном отключении клиентского компьютера.
3) значительное уменьшение сетевого траффика.
4) Должен быть, по идее, выигрыш в скорости.
5) Возможность контроля за пользователями с помощью утилиты manage ( можно придумать и другие формы контроля ).
6) Можно будет сделать транзакции, stored procedures на Харборе, ... и вообще все в наших руках :).

Кто хочет участвовать в разработке, тестировании - пишите.



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


SergejKis



Пост N: 22
Зарегистрирован: 18.02.11
ссылка на сообщение  Отправлено: 10.04.11 16:00. Заголовок: Для Pasha


Дело не в 3G, мой товарищ по работе из дома получает тоже самое, в четверг в офисе в лосалке тоже.
NETIO с 3G, из дома и в локалке копировал файлы нормально.
Ваш testu08.dbf содержит 2118 записей.
К Вам на сервер мой файл ушел отлично.

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




Пост N: 1885
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.04.11 16:17. Заголовок: Да, я вижу, пришло 1..


Да, я вижу, пришло 1801 записей
А теперь я запустил leto2011.exe, Вашу сборку
Запустите еще свой тест, прийдет ли файл
Хотя я уже увидел, что у меня клиент сразу падает на gpf при попытке коннекта с leto2011.exe, и сервер тоже падает, причем это локальный коннект
Значит, какая-то проблема со сборкой
Я соберу с текущим харбором letodb, и посмотрю, что получится. Хотя и раньше собирал многократно..


Спасибо: 0 
Профиль
SergejKis



Пост N: 23
Зарегистрирован: 18.02.11
ссылка на сообщение  Отправлено: 10.04.11 17:35. Заголовок: Для Pasha


У меня локальный коннект на этой сборке не падал никогда (кроме реальных моих ошибок), вот letodb от 20.05.2010 падал от засыпания/просыпания компа и так ... от работы ..., но по постам я понял, что много было исправлено. Но к сожалению другой сборки letodb у меня нет и я взял текущую вместе с hb. В реальной работе сейчас hb 2.0.
К Вам на сервер мой файл повторно ушел ok!.

Спасибо: 0 
Профиль
SergejKis



Пост N: 24
Зарегистрирован: 18.02.11
ссылка на сообщение  Отправлено: 11.04.11 08:25. Заголовок: Для Pasha


Паша, для функций доступа на стороне сервера в тригерах nUserStru вроде как не нужен (мы имеем реальную область) или я не в курсе ? Пример:
Скрытый текст



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




Пост N: 1886
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.04.11 09:25. Заголовок: nUserStru необходим ..


nUserStru необходим при создании переменной. Я его добавил во все функции для того, чтобы соблюдать единые правила для всех серверных функций

Спасибо: 0 
Профиль
SergejKis



Пост N: 25
Зарегистрирован: 18.02.11
ссылка на сообщение  Отправлено: 11.04.11 11:19. Заголовок: Для Pasha


Совершенно с этим согласен ! Надо, чтобы функция обрабатывала nUserStru := NIL
Еще вопрос: LETO_VARGETLIST( nUserStru, [cGroupName] ) возвращает массив только имен переменных?
Если это так, то хотелось бы иметь LETO_VARGETLIST( nUserStru, [cGroupName][,lValueGet := .F.] ) - имена и значения (снимок)

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




Пост N: 1887
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.04.11 13:20. Заголовок: nUserStru обязателен..


nUserStru обязателен для создания переменных. Это связано с правами на доступ к ним.
Но в конце концов, каждое действие на сервере выполняется по запросу пользователя,
так что он всегда определен. В том числе его надо передавать и триггеру.
А сами триггеры лучше конечно устанавливать отдельным запросом с клиента.
По поводу LETO_VARGETLIST: возвращать в этом случае двумерный массив ?
И тогда надо сделать для клиентского вызова этой функции аналогичное поведение
Только прийдется проверять права на доступ к переменным.

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




Пост N: 1888
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.04.11 14:38. Заголовок: По поводу падения се..


По поводу падения сервера. Прогнать тест у меня сейчас совершенно нет времени
Но у меня же leto2011 не упал. Может быть, что-то блокирует firewall ?
Или попробуйте работать с другим портом, хотя бы стандартным 2812.

Спасибо: 0 
Профиль
SergejKis



Пост N: 26
Зарегистрирован: 18.02.11
ссылка на сообщение  Отправлено: 11.04.11 15:29. Заголовок: Для Pasha


Говоря о LETO_VARGETLIST я имел ввиду клиента, т.к. ценность в одном обращении к серверу (чтобы не сильно ломать, то что есть можно возвращать строкой: VAR_1=N101 первый байт тип). По поводу прав доступа к переменным ... мы же их только читаем, поэтому использование этого режима на совести разработчика.
Полностью согласен с тем, что Вы написали, но ...
Триггеры с клиента ... это большой вопрос - надо ли переносить алгоритмы расчетов на сторону сервера ? Харбур, на мой взгляд, это толстый клиент и все расчеты только на нем. Но если такой инструмент (триггеров) будет ... кому-то он пригодится.
Говоря о nUserStru := NIL, я имел ввиду только сторону сервера - получить/установить переменную по группе без учета nUserStru, а создавать переменные только с клиента.
Если обработка nUserStru := NIL трудозатратна - вопрос однозначно снимается.
Еще о переменных, какая MAX длина имени переменной.




Спасибо: 0 
Профиль
SergejKis



Пост N: 27
Зарегистрирован: 18.02.11
ссылка на сообщение  Отправлено: 11.04.11 15:51. Заголовок: Для Pasha


Firewall, Norton antivirus, leto2011.exe, порты - все прописано и разрешено. NETIO сервер собраный по поведению аналогично letodb на hb 2.0 на тот же порт (другой не можем у провайдера Lattelecom платный сеанс связи и не факт что откроют то о чем просишь), полученный exe переименован в leto2011.exe - передачу файлов на сервер отрабатывает, но об этом я уже писал ...
Вопрос такой, теущая сборка letodb на 2.0 пойдет ?
Если нет, то где взять стабильную сборку ?


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




Пост N: 1889
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.04.11 08:21. Заголовок: Прогнал leto2011.exe..


Прогнал leto2011.exe в своей локалке. Копирует хоть несколько тысяч, хоть сотни тысяч записей
Покажите, что у Вас letodb.ini

Попробуйте прогнать у себя letodb, собранный под xHarbour:

http://files.mail.ru/4P6Q5N

Спасибо: 0 
Профиль
SergejKis



Пост N: 28
Зарегистрирован: 18.02.11
ссылка на сообщение  Отправлено: 12.04.11 09:39. Заголовок: Для Pasha


letodb.ini
Скрытый текст

Пропустил оба теста с транзакцией и без на u08.dbf все прошло отлично, причем где то в два раза быстрее счетчик индикатор колбасит. Запустил u08.dbf на 15000 записей - надо ждать ... Все в 3G, но по поведению клиента чувствую, что будет все ok!


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




Пост N: 1890
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.04.11 10:08. Заголовок: Кстати, letodb подде..


Кстати, letodb поддерживает команду COPY TO / функцию __dbCopy
То есть, подобную операцию лучше предоставить выполнять серверу

Спасибо: 0 
Профиль
SergejKis



Пост N: 29
Зарегистрирован: 18.02.11
ссылка на сообщение  Отправлено: 12.04.11 10:11. Заголовок: Для Pasha


Все 15000 переписались отлично.
Клиент собран на 2.1.0rc1 для BCC 5.5.1 (от gfilatov2002 ).


Спасибо: 0 
Профиль
SergejKis



Пост N: 30
Зарегистрирован: 18.02.11
ссылка на сообщение  Отправлено: 12.04.11 10:25. Заголовок: Pasha пишет:функцию __dbCopy ...


Я попробовал, когда она появилась, но получил DosError 53 разбираться нет времени, а в задачу встроен такой алгоритм загрузки данных на сервер.

Спасибо: 0 
Профиль
SergejKis



Пост N: 31
Зарегистрирован: 18.02.11
ссылка на сообщение  Отправлено: 12.04.11 13:38. Заголовок: Для Pasha


Собрал сервер и клиента на hb 2.0.0. Ситуация, по сравнению с hb 2.1.0rc1, улучшилась, то только для теста без транзакций.
С танзакцией файл u08.dbf (1801 rec) ни разу не переписался на сервер. Без транзакций через раз пересылался.


Спасибо: 0 
Профиль
AlexMyr



Пост N: 168
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 12.04.11 14:09. Заголовок: Паша, только что поп..


Паша, только что попробовал собрать последний letodb и получил

Harbour 2.1.0rc2 (Rev. 16566)
Compiler: Borland C++ 5.5.1 (32-bit)
Platform: Windows XP 5.1.2600 Service Pack 3

Error E2451 source\server\letovars.c 833: Undefined symbol 'HB_ITEM' in function HB_FUN_LETO_VARGETLIST
Error E2379 source\server\letovars.c 833: Statement missing ; in function HB_FUN_LETO_VARGETLIST
Error E2140 source\server\letovars.c 834: Declaration is not allowed here in function HB_FUN_LETO_VARGETLIST
Error E2451 source\server\letovars.c 837: Undefined symbol 'Temp' in function HB_FUN_LETO_VARGETLIST

Хотел в maillist но получилось к Вам, тут продублирую.

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




Пост N: 1891
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.04.11 14:45. Заголовок: Хмм, xHb собрал даже..


Хмм, xHb собрал даже без варнингов
Вечером если успею, поправлю (к нам тут Барселона приезжает)

Спасибо: 0 
Профиль
AlexMyr



Пост N: 169
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 12.04.11 14:53. Заголовок: Pasha пишет: (к нам..


Pasha пишет:

 цитата:
(к нам тут Барселона приезжает)

Удачи

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




Пост N: 1892
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.04.11 18:58. Заголовок: Поправил, хоть мне и..


Поправил, хоть мне и не совсем ясно, с каких это пор в Harbour использование HB_ITEM стало нелегитимым
PHB_ITEM (ссылка на HB_ITEM) ведь можно, а определены они в одном hbapi.h

Заодно добавил проверку прав доступа. Для этого и нужен nUserStru. Но если для переменной флаг LETO_VOWN не установлен, то права не проверяются, и соответственно nUserStru можно опустить


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