|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
Здравствуйте. Описание проблемы: СУБД Firebird 1.5.1.4481 стоит на сервере Windows Server 2008 R2 Enterprise 64 bit с 8 Гб ОЗУ. С течением времени память процесса fbserver постоянно растет. При достижение 1,9 Гб Firebird начинает глючить и выдавать ошибки. Отключение пользователей от базы данных не уменьшает память процесса. Помогает только перезапуск Firebird. По совету из FAQ http://www.ibase.ru/firebird-interbase-yaffil-faq/#При долгой работе переполняется память сервера проверил самописную udf на предмет утечки памяти. Проблема в udf. Понять что не правильно написано в udf не могу. Помогите, пожалуйста, решить проблему с утечкой памяти. Текст udf (написана на Delphi 7): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 16:13 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
vs815 Код: pascal 1. 2.
Вот эти две строки удали. Они гадят. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 16:18 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
vs815СУБД Firebird 1.5.1.4481 Серия 1.5 кончилась на 1.5.6: http://www.firebirdsql.org/en/firebird-1-5/ vs815Текст udf А её объявление в базе?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 16:20 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, DECLARE EXTERNAL FUNCTION RUPPER CSTRING(16383) RETURNS CSTRING(16383) ENTRY_POINT 'fn_rupper' MODULE_NAME 'mondll'; ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 16:59 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
Где FREE_IT? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 17:03 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, А где FREE_IT должен быть? Не могли бы привести пример на базе моей udf? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 17:12 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
Мелочь, возможно, но зачем два раа подряд создавaть паскаль-строки из с-строки ? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
[/quote] И в SQL-объявлении функции xорошо бы наверное прописать кодировку Windows-1251 А то поступит строка, например, в UTF-8 - что делать функции ? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 17:13 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
vs815Dimitry Sibiryakov, А где FREE_IT должен быть? Не могли бы привести пример на базе моей udf? смотри пример http://www.firebirdsql.org/en/writing-udfs-for-interbase/#writing_udfs_in_delphi_for_windows_platforms ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 17:14 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 17:16 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
Arioch, ну какой UTF-8 в 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 17:18 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovГде FREE_IT? +1 и выкинуть лишние модули из udf. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 17:20 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
Симонов Денис, ну мало ли что туда еще по факту придет ? в параметрах соединения забудут поставить кодировку или перепутают - и приедет КОИ8-Р с юниксов. UTF-16 с Явы или новой Дельфи, да хоть Unicode_fss причем ещё и осядет где-нибудь в PSQL, xрен потом найдешь ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 17:21 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
vs815А где FREE_IT должен быть? Там, где ему положено быть согласно Language Reference . Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 17:23 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
wadman, ...и поменять RTL, и в итоге сделать DLL настолько маленькую, что Windows ее загрузить не смoжет :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 17:31 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
Arioch, нормально все будет :) 17210217 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 17:39 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
wadman, ну и какой размер скомпилированного файла? в 2KB влезло ? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 17:40 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
Arioch, 2кб это психологический барьер? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 17:57 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
wadman, Вопрос к разработчикам Windows, для меня это было неожиданностью. По факту оказалось, что Windows не способна загрузить DLL такого размера. Я подозреваю, что настоящая граница - 4KB - размер страницы виртуальной памяти в 80386, каковых в бинарнике под Win32 загрузчиком ожидается целое число. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 18:42 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
Arioch, компилятор делфи и ртл успешно обходят этот маленький недостаток. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 18:55 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 20:25 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
Ariochwadmanкомпилятор делфи нет, D5 вполне создает 2KB что до RTL - 18992590 Меняет регистр в качестве удф? Или речь о пустой заглушке? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 20:30 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
wadman, В UDF много различных функций для работы с текстом. Я привел пример одной из них (предварительно удалив лишнее). В таком варианте также идет утечка памяти. Как подсказали выше (и особенно помогла статья https://ibase.ru/udf_ok/ ) проблема в неправильной регистрации функции в базе. Отсюда возник и вопрос: а можно ли оставить объявление функции в базе как было Код: plsql 1. 2. 3. 4.
а освобождение памяти реализовать в udf вот так: Код: pascal 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 21:48 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
vs815можно ли Нельзя, запрещаю. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 22:09 |
|
При долгой работе переполняется память сервера Firebird 1.5.1.4481
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Попробовал освобождать память в UDF - сервер упал. В логе написано следующее: SUPER (Client) Tue Mar 29 23:14:24 2016 INET/inet_error: send errno = 10054 SUPER (Client) Tue Mar 29 23:14:24 2016 REMOTE INTERFACE/gds__detach: Unsuccesful detach from database. Uncommitted work may have been lost SUPER (Client) Tue Mar 29 23:14:24 2016 INET/inet_error: send errno = 10054 Что я сделал не правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 23:24 |
|
|
start [/forum/topic.php?fid=40&msg=39203684&tid=1562262]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 170ms |
0 / 0 |