Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.09.16;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.046 c
2-1187963085
Jimmy
2007-08-24 17:44
2007.09.16
Вывод текста на 256-ти цветном bitma е


2-1187857116
newbdelphi
2007-08-23 12:18
2007.09.16
В каких случаях как лучше писать?


2-1187530743
Тмиофей
2007-08-19 17:39
2007.09.16
Как использоват свойство Tag


8-1165404177
T54
2006-12-06 14:22
2007.09.16
Вырезание куска из видеофайла


4-1164557096
dreamse
2006-11-26 19:04
2007.09.16
Как можно поместить свою надпись поверх чужого окна ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский