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

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

alkresin: Только что открыл на 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 на Харборе, ... и вообще все в наших руках :). Кто хочет участвовать в разработке, тестировании - пишите.

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

alx_on: Выложил свои правки... Вопрос по падению старой версии остается в силе (кто-то здесь упоминал меня после некоторых исправлений в коде :) ) Так вот: падения остались в самых неожиланных местах. Может 3 дня проработать, может сразу упасть.

alkresin: Подзабыл C. Какой предел у malloc для выделения памяти в 32-х битных системах ? 64K ? http://en.wikipedia.org/wiki/Malloc : The largest possible memory block malloc can allocate depends on the host system, particularly the size of physical memory and the operating system implementation. Theoretically, the largest number should be the maximum value that can be held in a size_t type, which is an implementation-dependent unsigned integer representing the size of an area of memory. The maximum value is 2CHAR_BIT*sizeof(size_t) − 1, or the constant SIZE_MAX in the C99 standard. Как я понял, можно запрашивать достаточно много, 64К ограничения нет. Может заменить на hb_xgrab ? Так hb_xgrab использует как раз malloc.

alkresin: В связи с этим возникает соблазн сделать аналог файлового доступа через leto: fopen - fread - fclose. Мне было бы достаточно доступа только на чтение, но неизбежно возникнет соблазн сделать и аналог fwrite. В связи с этим вопрос: а стоит ли ? Сделать то это легко, но надо ли ? Я считаю, что стоит сделать - естественно, с обеспечением безопасности. Только, может, аналоги не fopen и Co, а memoread/memowrite, это проще и, наверное, достаточно.


alkresin: #define HB_SENDRECV_BUFFER_SIZE 16384 т.е. сейчас пакет не может быть больше 16К ? Это размер пакетов, на которые socket - функции разбивают исходный пакет.

Andrey: Pasha пишет: В связи с этим возникает соблазн сделать аналог файлового доступа через leto: fopen - fread - fclose. Мне было бы достаточно доступа только на чтение, но неизбежно возникнет соблазн сделать и аналог fwrite. В связи с этим вопрос: а стоит ли ? Сделать то это легко, но надо ли ? Нужно ОБЯЗАТЕЛЬНО ! Я еще в начале просил это делать ! Пример из практики, принесли базу из отдела соц.защиты, кто получает деньги... (порядка 30 000 записей, бывает больше). Нужно в программу Субсидии (базы на сервере) удалить старые записи и добавить эти новые ! Задача в лоб - программа перебрасывает записи с клиента на сервер 4 часа !!! Это не моя программа, на Delphi7 написана, работает через SocketServer Дельфовый... Такие задачи встречаются постоянно !!! Если на сервер можно записать ZIP-файл, там его распаковать и добавить через APPEND FROM - прошло бы меньше времени ! На вскидку минут 10 - 15. НАДО !!!

Andrey: alkresin пишет: Только, может, аналоги не fopen и Co, а memoread/memowrite, это проще и, наверное, достаточно. Нет не пойдет ! Давайте полностью !!! Файлы форм *.FR3 тоже хочу хранить на сервере ! Обновление EXE файла на клиентских местах ХОЧУ тоже делать через LetoDB !!! ----------------------------------------------------------------------------------------------------------------------- Лучше 3 дня учиться и за 5 минут долететь !!! (Фраза из мультика "Ноги и крылья" )

AlexMyr: alkresin пишет: Только что открыл на Sourceforge новый проект - Leto DB Server - https://sourceforge.net/projects/letodb Это мультиплатформенный ( Windows, Unix/Linux ) сервер баз данных, предоставляющий клиентским программам доступ к dbf/cdx файлам, находящимся на удаленном сервере Вроде начиналось все с сервера баз данных, а сейчас уже смотрим в сторону файл-сервера, потом захотим принт-сервер Andrey пишет: Такие задачи встречаются постоянно !!! Если на сервер можно записать ZIP-файл, там его распаковать и добавить через APPEND FROM - прошло бы меньше времени ! На вскидку минут 10 - 15. А хто будет распаковывать на сервере? letodb? Letodb как раз для таких задач как добавить, отредактировать, удалить запись и тд. И будет наверное быстрей добавить записи нежели тащить на сервер тяжелый zip, распаковать и добавить записи. А потом чтобы не засорять сервер еще надо будет удалить этот zip.

alkresin: Файлы форм *.FR3 тоже хочу хранить на сервере ! А зачем для этого полный набор файловых функций ? Разве недостаточно с сервера забрать эту форму целиком с помощью предполагаемой leto_memoread() ? Обновление EXE файла на клиентских местах ХОЧУ тоже делать через LetoDB !!! В этих целях я себе отдельный сервер сделал, назвал - letofc. В ini - файле на сервере храню названия программ как имена секций и в каждой секции - список каталогов и файлов, используемых этой программой. При присоединении к серверу клиент сообщает имя программы и получает в ответ список файлов с датами/временем их создания и запрашивает обновившиеся.

Andrey: alkresin пишет: В этих целях я себе отдельный сервер сделал, назвал - letofc. В ini - файле на сервере храню названия программ как имена секций и в каждой секции - список каталогов и файлов, используемых этой программой. При присоединении к серверу клиент сообщает имя программы и получает в ответ список файлов с датами/временем их создания и запрашивает обновившиеся. А поподробнее ? Хочу пример .... Заранее спасибо !!!

Andrey: AlexMyr пишет: А хто будет распаковывать на сервере? letodb? А свои процедуры на что ? Сделаю свою процедуру и прикручу к серверу !

Pasha: alx_on пишет: Выложил свои правки... Александр, а зачем вы поменяли формат в leto_Sum ? sprintf(ptr, "%lu", pSums[ usIndex ].value.lSum); Ведь это не ULONG, а LONG, знак потеряется

Pasha: Правильнее будет %ld А в строке 3007 изменение существенно ? Это была ошибка ? USHORT i = 0; на USHORT i = 1;

alx_on: Pasha пишет: sprintf(ptr, "%lu", pSums[ usIndex ].value.lSum); Ведь это не ULONG, а LONG, знак потеряется не ту версию выложил :( правил предупреждения при компиляции (был совсем странный вариант %d) А в строке 3007 изменение существенно ? Это была ошибка ? ошибка не критическая (возвращала больше на одну запись)

Pasha: alx_on пишет: ошибка не критическая (возвращала больше на одну запись) Т.е, память выделялась на 10 записей, а возвращалось 11. Правда, запись как правило занимает меньший размер при передаче, так что обычно памяти хватало. Но все-таки, в каких-то случаях могло и не хватить, хорошо что заметили

alx_on: К вопросу о фильтрах совместно с SCOPE Глючит :( Самое интересное - в новом варианте (MT) все работает (по крайней мере, в найденном случае) Смотрю...

Pasha: А что глючит ? Я не замечал. Хотя у меня сервер собран через xHarbour



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