FB 2.0.0.12748, ошбка 104, дисконект при выполнеии запросов
FB 2.0.0.12748, ошбка 104, дисконект при выполнеии запросов
Подскажите почему так и что делать -
постаили второй файрберд, и на выполнении тяжелых запросов и селектов из таких же тяжелых процедур коннект отваливается. На 1.5 все работало как часы.
Причем интересная особенность - если восстановить соединение не выполняя закрытия, то после этого запрос выполняется...
постаили второй файрберд, и на выполнении тяжелых запросов и селектов из таких же тяжелых процедур коннект отваливается. На 1.5 все работало как часы.
Причем интересная особенность - если восстановить соединение не выполняя закрытия, то после этого запрос выполняется...
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
проверить код UDF. Убедиться, что все вызовы используют соглашение cdecl и что все аллокирование для FREE_IT функций идет через ib_util_malloc() вместо системной malloc(). Последнее - наиболее вероятная причина. Похоже, доку вообще никто не читает :-(c_breaker писал(а):А как проверить? тестирование показало что падает действительно на UDF. Но что поменялось, что те UDF, которые работали на 1.5 перестали работать на 2.0? и Какой выход подскажете?
процедуры добавлены в 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);
}
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);
}