Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.16;
Скачать: CL | DM;

Вниз

Log, debug или что-то вроде этого?   Найти похожие ветки 

 
Lavrenty ©   (2007-05-17 21:38) [0]

Здравствуйте мастера!
Программа работает с базой InterBase. Есть запросы, в соответствие которым назначены транзакции. Минут через 20-30-40 после запуска программы выскакивает сообщение "Transaction is active", и продолжает появляться через каждый период обращения к базе(10 сек). Так вот, я не пойму(из этого краткого сообщения) на какой транзакции это начинается и почему. Подскажите пожалуйста, как можно сделать так, чтобы все события, происходящие в программе записывались в текстовый файл, а то никак не могу понять в каком месте программа глючит ?


 
Johnmen ©   (2007-05-17 22:08) [1]

Много параллельных транзакций?
Несколько потоков?


 
Lavrenty ©   (2007-05-17 22:31) [2]


> Много параллельных транзакций?

По ходу программы одновременно работающих транзакций 2-3. Вообще их 15 штук. Каждому запросу соответствует одна транзакция. Если закрывается запрос(набор данных) тут же закрываю и транзакцию ("Commit"). Но, судя по сообщению, выходит, что программа пытается совершить какое-то действие с данными, для которых транзакция ещё не завершилась. Самое интересное, что цикл обращений к базе (и соответсвенно выполняемых всех запросов) очень маленький - 6 сек. И вот всё это работает, работает и вдруг на тебе - "Transaction is active".


 
Johnmen ©   (2007-05-17 22:48) [3]

Тут надо код смотреть...
ЗЫ
Количество транзакций на приложение более 3 нецелесообразно. А иногда и вредно...


 
Lavrenty ©   (2007-05-17 22:50) [4]

Было именно 3. Было тоже самое.


 
Johnmen ©   (2007-05-17 23:08) [5]

Причём одна - читающая, вторая - пишущая. И м.б. третья - для отчетов.


 
Lavrenty ©   (2007-05-17 23:27) [6]

Извиняюсь, их было не 3, а 5. Дело в том, что программа была написана не мной, но мне приходится её запускать в жизнь. Так как с InterBase не работал раньше, то не обратил внимания, вернее не знал, что это важно

> Причём одна - читающая, вторая - пишущая. И м.б. третья
> - для отчетов.

посмотрел сейчас код повнимательнее, но что-то не видно строгого соблюдения этого правила(когда было 5 транзакций): читающие запросы со своей  транзакцией, пишущие со своей. Но, если то сообщение выскакивало именно из-за этого, то почему сейчас тоже происходит, ведь у каждого запроса своя транзакция. Отчёт не формируется, результат пишется в XML-файл.


 
Johnmen ©   (2007-05-17 23:40) [7]

В общем, надо ковырять код на предмет старта транзакции, когда она ещё не подтверждена/откачена(откатана? :)) о чем и говорит "Transaction is active".


 
Lavrenty ©   (2007-05-17 23:53) [8]

Что ж, спасибо! Буду ковырять.


 
Desdechado ©   (2007-05-18 13:20) [9]

Не знаю, как в современных IB, а в версиях до 6 включительно клиентская библиотека НЕ thread-safe, поэтому не должно быть одновременно выполняющихся запросов в рамках одного подключения к БД. Например, несколько потоков одновременно (каждый в своей транзакции) долбится в БД - гарантировано вылетит.


 
Sergey13 ©   (2007-05-18 13:22) [10]

Одна транзакция всегда надежнее. 8-)



Страницы: 1 вся ветка

Текущий архив: 2007.09.16;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.055 c
11-1168520708
Psychedelic
2007-01-11 16:05
2007.09.16
Всем: Какие компоненты хотелось бы видеть в KOL?


8-1165916716
zenov
2006-12-12 12:45
2007.09.16
как подключить к своей проге плагины аудиовывода из Winamp?


15-1187356097
TUser
2007-08-17 17:08
2007.09.16
Украина первой в мире признала астрологию наукой


15-1187590549
vajo
2007-08-20 10:15
2007.09.16
20 самых бестолковых возможностей Windows за все время ее существ


6-1169389960
AdmeraL
2007-01-21 17:32
2007.09.16
TWebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский