Запросы, планы, оптимизация запросов, ...
Модераторы: kdv, CyberMax
-
Quasar
- Сообщения: 61
- Зарегистрирован: 23 дек 2005, 10:26
Сообщение
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, и всё замечательно заработало.