Страница 1 из 1
FB 2.0.0.12748, ошбка 104, дисконект при выполнеии запросов
Добавлено: 24 янв 2007, 12:31
c_breaker
Подскажите почему так и что делать -
постаили второй файрберд, и на выполнении тяжелых запросов и селектов из таких же тяжелых процедур коннект отваливается. На 1.5 все работало как часы.
Причем интересная особенность - если восстановить соединение не выполняя закрытия, то после этого запрос выполняется...
Добавлено: 24 янв 2007, 12:49
dimitr
есть полная уверенность в правильности UDF?
Добавлено: 24 янв 2007, 13:12
c_breaker
А как проверить? тестирование показало что падает действительно на UDF. Но что поменялось, что те UDF, которые работали на 1.5 перестали работать на 2.0? и Какой выход подскажете?
Спасибо за ответ!
Добавлено: 24 янв 2007, 13:40
Dimitry Sibiryakov
c_breaker писал(а):Какой выход подскажете?
Отлаживать. Заставить птичку отбросить дамп памяти, загнать его в отладчик, опубликовать стэк.
Добавлено: 24 янв 2007, 13:55
dimitr
c_breaker писал(а):А как проверить? тестирование показало что падает действительно на UDF. Но что поменялось, что те UDF, которые работали на 1.5 перестали работать на 2.0? и Какой выход подскажете?
проверить код UDF. Убедиться, что все вызовы используют соглашение cdecl и что все аллокирование для FREE_IT функций идет через ib_util_malloc() вместо системной malloc(). Последнее - наиболее вероятная причина. Похоже, доку вообще никто не читает :-(
Добавлено: 24 янв 2007, 14:51
kdv
Похоже, доку вообще никто не читает
какая дока, вообще ни Faq не смотрят ни примеры.
Добавлено: 24 янв 2007, 15:18
c_breaker
процедуры добавлены в rfunc. ни маллоков, ни чего особенного тут нет.. и можно ссылку на док? что-то не нашел(
long EXPORT udf_ShL(ARG(long *, a), ARG(long *, b))
ARGLIST(long *a)
ARGLIST(long *b)
{
return (*a << *b);
}
long EXPORT udf_ShR(ARG(long *, a), ARG(long *, b))
ARGLIST(long *a)
ARGLIST(long *b)
{
return (*a >> *b);
}
Добавлено: 24 янв 2007, 15:22
c_breaker
Да и еще - под sysdba в ibexpert'е все отлично работает, если зайти в клиента под пользователем, то отваливается коннект(
Непонятно нифига((
Добавлено: 24 янв 2007, 15:42
kdv
попробуйте вместо этих подключить аналогичные например из rfunc. Если rfunc заработает - ищите отличия.