Проблема с FreeUDFlib

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Quasar
Сообщения: 61
Зарегистрирован: 23 дек 2005, 10:26

Проблема с FreeUDFlib

Сообщение Quasar » 27 дек 2006, 16:17

Здравствуйте.

Использую FreeUDFlib. Задекларировал функции из него, но использовать не получилось, пишет:
Invalid token
invalid request to BLR at offset 63.
function F_FIXEDPOINT is not defined
module name or entrypoint could not be found
Доступ к библиотеке есть, остальные функции этой УДФ работают. Сама эта функция на тестовой системе (WinXP) работает, на рабочем сервере стоит Win2003. Пытался отследить ошибку с помощью ProcMon, ничего не нашел (искал по fbserver). В чем может быть проблема?

Не по теме. Пользуя ProcMon, обнаружил интересную вещь: при обращении к БД процесса fbserver периодически вылазит FAST IO DISALLOWED. Что это может означать?

Спасибо.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 27 дек 2006, 16:44

Пытался отследить ошибку с помощью ProcMon
при чем тут procmon...

скорее всего udf не грузится. запусти FB, подсоединись к базе. потом перед тем как "дернуть UDF из SQL" запусти filemon, укажи fbserver.exe. Обратись к udf, смотри в лог filemon.

Quasar
Сообщения: 61
Зарегистрирован: 23 дек 2005, 10:26

Сообщение Quasar » 27 дек 2006, 17:41

kdv писал(а):
Пытался отследить ошибку с помощью ProcMon
при чем тут procmon...

скорее всего udf не грузится. запусти FB, подсоединись к базе. потом перед тем как "дернуть UDF из SQL" запусти filemon, укажи fbserver.exe. Обратись к udf, смотри в лог filemon.
Именно так я и делал, но ProcMon ничего не показывал. FileMon тоже пробовал с аналогичным результатом. Но udf все же грузится, т.к. остальные функции работают (проверял не все функции).

ProcMon (Process Monitor) - следующая версия filemon, имеющая все его возможности. http://www.microsoft.com/technet/sysint ... nitor.mspx

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 27 дек 2006, 17:46

что значит "ничего не показывал"? ты сказки не рассказывай.
dll udf грузится только при первом к ней обращении, а не при старте сервера или коннекте к БД. Соответственно, в логе filemon/procmon 100% должна быть запись о поиске freeudflib.dll.
может, ты ее задекларировал с путем? А на win2003 путь отличается?

Quasar
Сообщения: 61
Зарегистрирован: 23 дек 2005, 10:26

Сообщение Quasar » 27 дек 2006, 18:20

Декларировал без путей, с помощью скрипта, идущего вместе с udf. Так что это не то, к тому же, повторюсь, сама dll-ка точно грузится, так как другие функции из нее работают.

Да, действительно, я использовал ProcMon уже после того, как первый раз обращался к udf, потому и ничего не увидел. Но по-видимому проблема в другом. Такое впечатление, что глючит данная конкретная функция dll-ки и глючит только в Win2003. Найти бы способ это точно проверить.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 27 дек 2006, 19:01

посмотри внимательнее на лог обращений к файлам. может быть, уже FreeUDFLib чего-то не находит?

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 27 дек 2006, 19:02

Если она девствительно в том же файлЕ, что и работающие, то скорей всего она сама чего-то ещё внутре себя подгрузить пытается и не находит/не достукивается из-за прав. На любые ошибки с UDF птичка реагирует именно этим стереотипным сообщением, не растекаясь мыселью по древу.

Quasar
Сообщения: 61
Зарегистрирован: 23 дек 2005, 10:26

Сообщение Quasar » 28 дек 2006, 15:47

Посмотрел исходники UDF и обнаружил, что эта функция юзает только дельфовую Format, так что ничего она не грузит. Посмотрел tdump-ом, dll-ка импортирует только gds32.dll, которая в системе есть.

Вобщем ковырялся-ковырялся я с этой udf, потом надоело, загрузил Гугл, узнал, что есть в мире FreeAdhocUDF :) , поставил последнюю версию от 23.12.06, и всё замечательно заработало.

Ответить