On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
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 [только новые]


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




Пост N: 1690
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 14.11.10 10:47. Заголовок: Мне с одного клиента..


Мне с одного клиента надо коннектиться ко многим серверам letodb, в связи с чем ограничение MAX_CONNECTIONS_NUMBER хотелось бы снять. Для этого надо динамически выделять память для letoConnPool.
Это лучше всего делать вызовом hb_xrealloc. Но эта функция может переместить область памяти в другое место, и тогда pConnection в AREASTRU будет ссылаться на невыделенную память, что нехорошо.
В связи с этим есть предложение: вместо ссылки в AREASTRU хранить индекс uiConnection в letoConnPool.

Кстати, подобный возможный баг есть в harbour/contrib/rddsql: если память под s_pConnection перевыделяется,
ссылка на pConnection в _SQLBASEAREA может вызвать gpf


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 1581
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.11.10 14:57. Заголовок: Pasha пишет: Мне с ..


Pasha пишет:

 цитата:
Мне с одного клиента надо коннектиться ко многим серверам letodb



А разве так можно ?
Что за задачи решаются таким образом ?
Поделитесь пожалуйста опытом !

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




Пост N: 1691
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 15.11.10 09:19. Заголовок: Да ничего необычного..


Да ничего необычного, предполагается устанавливать letodb в подразделениях, и делать выборки из БД подразделений


Спасибо: 0 
Профиль
sashaBG
постоянный участник




Пост N: 71
Зарегистрирован: 15.09.05
ссылка на сообщение  Отправлено: 17.11.10 16:31. Заголовок: Как надо использовать COPY TO теперь


Select DVIG
COPY TO ( n_Path + 'WORK' ) <<<<<<<

где n_Path содержит "//127.0.0.1:2812/FIRMA/2010/01/"

дает ошибку по типу данных

файл WORK.dbf создается но структура разрушена !?

letodb из CVS harbour из поставки MiniGUI 1.9

Раньше работало из с другими версиями Харбора

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



Пост N: 73
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 17.11.10 17:10. Заголовок: Какие типы полей в б..


Какие типы полей в базе? Клиентскую и серверную часть letodb пересобирали?

Спасибо: 0 
Профиль
sashaBG
постоянный участник




Пост N: 72
Зарегистрирован: 15.09.05
ссылка на сообщение  Отправлено: 17.11.10 18:03. Заголовок: Пересобирал


Все пересобирал , типы ( N15,3 C D )

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




Пост N: 1695
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 17.11.10 22:24. Заголовок: С xHarbour ошибки не..


С xHarbour ошибки нет

С Harbour сервер падает по непонятной причине на строке 5111 в letofunc.c:

hb_xfree( pTransInfo->lpTransItems );

Что здесь неправильно - не пойму. Память выделялась - ее надо освободить.
sashaBG, AlexMyr, напишите пожалуйста версию Harbour, с которой выполнялась сборка

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



Пост N: 76
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 17.11.10 23:12. Заголовок: Только что собрал Le..

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




Пост N: 1696
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 17.11.10 23:57. Заголовок: У меня сервер падает..


У меня сервер падает на сборке Harbour

* $Id: ChangeLog 15433 2010-09-04 10:30:41Z druzus $

Завтра пересоберу Harbour с SVN и протестирую.


Спасибо: 0 
Профиль
sashaBG
постоянный участник




Пост N: 73
Зарегистрирован: 15.09.05
ссылка на сообщение  Отправлено: 18.11.10 09:20. Заголовок: test_tr


test_tr собирается
но дает ошибку данных на 32 строке и сервер падает

Спасибо: 0 
Профиль
sashaBG
постоянный участник




Пост N: 74
Зарегистрирован: 15.09.05
ссылка на сообщение  Отправлено: 18.11.10 10:07. Заголовок: Попробовал и Rev.15832


Попробовал и Harbour Rev.15832
Тоже самое , разница в том что когда сервер падает виндовс показывает сообшение "Abnormal programm termination"


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



Пост N: 79
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 18.11.10 13:56. Заголовок: Тоже test_tr падает ..


Тоже test_tr падает с ошибкой:
Error LETO/1000 Data type error
Called from LETO_DBCOPY(0)
Called from MAIN(32)
Error LETO/1000 Data type error
Called from LETO_DBCOPY(0)
Called from MAIN(32)
Error LETO/1000 Data type error
Error LETO/1000 Data type error

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




Пост N: 1701
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.11.10 17:37. Заголовок: Сегодня собрал letod..


Сегодня собрал letodb с SVN Harbour, и результат получился плачевный.
manage еще соединяется с сервером, но при попытке работы с ним клиентских программ letodb сразу падает с gpf. Почему - еще не разбирался.
Вчера у меня возникло предположение, что в Harbour некоторое время назад были какие-то уже устраненные баги, раз сервер падал на безобидном hb_xfree.
Пока мне больше сказать нечего, времени копаться не было.

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




Пост N: 1702
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.11.10 21:52. Заголовок: Letodb под Harbour у..


Letodb под Harbour у меня заработал после вечерней пересборки. Правда, там чуть напортачили с литовской кодовой страницей.
Оператор, из-за которого падает сервер, я пока закомментировал, так что copy to/sort on теперь работает.
Но причина падения сервера так и осталась непонятной.

Спасибо: 0 
Профиль
Петр
постоянный участник


Пост N: 1001
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 19.11.10 00:23. Заголовок: 2010-11-18 20:45 UTC..



 цитата:
2010-11-18 20:45 UTC+0200 Pavel Tsarenko (tpe2/at/mail.ru)
* source/server/letofunc.c
* memory leak for sort operation
! temporary hack for Harbour: gpf at hb_xfree( pTransInfo->lpTransItems )
in leto_Trans function



Вот так работает
hb_xfree( &pTransInfo->lpTransItems );

Добавлено: не все так просто
Перекомпилировал Harbour c -DHB_FM_STATISTICS
Получаем GPF
letodb_crash.log
Breakdown at: 2010.11.18 23:48:59 
Unrecoverable error 9010: ------------------------------------------------------------------------
User: 127.0.0.1 LEO-HOME test_tr.exe
Command: trans;513;2;;F;1026;Code==2;;0;0;F;T;T;F;F;F;F;1;2;1,1;2,2;
Table: \test.dbf

hb_out.log
------------------------------------------------------------------------ 
Application Memory Allocation Report - E:\hb2-mingw\bin\test_tr.exe
Terminated at: 2010.11.18 23:49:01
Total memory allocated: 60916 bytes (596 block(s))
Warning, memory allocated but not released: 86 bytes (6 block(s))
Block 1 00aaedf8 (size 4) DBCREATE(0), "00000200"
Block 2 00aae570 (size 4) DBCREATE(0), "00000000"
Block 3 00abc808 (size 23) DBCREATE(0), " 2Second )"
Block 4 00abcd10 (size 4) LETO_DBCOPY(0), "00000200"
Block 5 00abcd78 (size 4) LETO_DBCOPY(0), "00000000"
Block 6 00abcde0 (size 23) LETO_DBCOPY(0), " ;"
------------------------------------------------------------------------



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




Пост N: 1703
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 19.11.10 10:42. Заголовок: Но правильно ведь h..


Но правильно ведь

hb_xfree( pTransInfo->lpTransItems );

lpTransItems - это ссылка на массив DBTRANSITEM, для которого выделялась память, ее и надо передавать в hb_xfree, а не адресс ссылки. В прочих rdd Harbour так и делается
Почему в letodb этот безобидный вызов сваливает сервер - пока не понятно. С DBTRANSINFO работа ведется вроде бы корректно, память не портится. pTransInfo->lpTransItems 2 раза не освобождается, больше никто hb_xfree вызвать не может.


Я прямо перед вызовом hb_xfree ставил:
leto_writelog(pTransInfo->lpTransItems, pTransInfo->uiItemCount * sizeof( DBTRANSITEM ));

и в логе видел правильно заполненный массив DBTRANSITEM
Пока какая-то мистика, которой не существует

Спасибо: 0 
Профиль
sashaBG
постоянный участник




Пост N: 75
Зарегистрирован: 15.09.05
ссылка на сообщение  Отправлено: 23.11.10 19:08. Заголовок: А как себя ведет xHarbour ?


Pasha А как себя ведет xHarbour , есть проблемы такого типа ?



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




Пост N: 1705
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 24.11.10 09:36. Заголовок: sashaBG пишет: Pash..


sashaBG пишет:

 цитата:
Pasha А как себя ведет xHarbour , есть проблемы такого типа ?



С xHarbour такой проблемы нет, освобождение памяти работает
По поводу проблемы с Harbour: я попросил помощь клуба, т.е. написал в devlist. Но клуб молчит.

Спасибо: 0 
Профиль
alx_on
постоянный участник


Пост N: 101
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 24.11.10 12:52. Заголовок: Pasha пишет: hb_xfr..


Pasha пишет:

 цитата:
hb_xfree( pTransInfo->lpTransItems );


Подобная проблема была и у меня.
Все решилось совсем в другом месте (с другой переменной), неверно память до этого выделялась
(т.е. писалась информация за пределами выделенного блока и, видимо, что то портилось в цепочках блоков-памяти)
В моем случае это была дозапись признака конца строки ('\0') за конец выделенной памяти - иногда падало совсем в другом месте

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



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 03.12.10 14:23. Заголовок: заранее извиняюсь за..


заранее извиняюсь за нубский вопрос. есть ли возможность не указывать host-адрес каждый раз при подключении таблиц бд? то есть не писать в команде USE или функции DBUSEAREA(...) имя или айпи сервера, а указать, например в leto.ini или еще каким другим способом.

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