Re: Re[4]: cannot disconnect database with open transactions + connection shutdown
Нет. Приложение должно сделать то, что автор прописал. Сказали закрыть соединение - значит закрыть и не выпендриваться. А подумать ? Я подумал, прежде чем написал - см. ниже. Я тоже подумал. Причём года 3-4 назад :) В спецификации OLEDB тоже говорят - надо ругаться ... Зря. Не зря. Если приложение корректно написано, то оно не оставит открытых тр-ций за собой. Ибо сервер понятия не имеет, что с ними делать (кроме случая обрыва коннекта, который есть форс-мажор). А чем для сервера должна отличаться висящая открытой транзакция из-за обрыва соединения и в этом случае? Тем, что ругается он при детаче. А значит и приложение и коннект живы. Да, я согласен, что это НЕПРАВИЛЬНАЯ логика работы приложения - наплодить транзакций, а потом закрыть коннект и сделать вид, что оно тут ни при чем. Но все равно ведь никто не мешает авторам приложений просто втупую завершать выполнения программы (читай - не проверять статус detach() функции). Одно дело - забытая тр-ция из-за неизвестной ошибки в приложении, другое - злонамеренное игнорирование сообщения сервера Что тогда сервер должен делать с коннектами? солить? Я считаю, что он с ними должен поступать так же, как и в случае обрыва - т.е. откатить. Так ты в жизни не найдёшь ошибку в приложении, а сервер будет виноват в пропавших данных З.Ы. Я вот тут еще подумал - а почему сервер должен думать за программера? Если он ССЗБ - то и пусть. См выше -- Хорсун Влад
Re: Re[4]: cannot disconnect database with open transactions + connection shutdown
ñ ÔÅÂÅ ÂÏÌØÛÅ ÓËÁÖÕ - ÌÏÇÉËÁ ÚÁ×ÉÓÉÔ ÅÝÅ É ÏÔ ÔÏÇÏ, Ó ËÁËÏÊ ÓÔÏÒÏÎÙ ËÕÒÉÔØ ÜÔÉ ËÏÓÑËÉ :) á Ñ ÐÒÅÄÌÁÇÁÌ ÄÏËÔÏÒÕ, ÉÄÅÀ ÎÁÓÞÅÔ isc_close_handle á ÍÎÅ, × ÏÔ×ÅÔ, ÐÒÏÐÉÓÁÌÉ ÏÞÅÒÅÄÎÏÊ ËÕÒÓ × ÎÁÒËÏÄÉÓÐÁÎÓÅÒÅ. îÉÞÅ. ñ ÝÁÓ ÜÔÕ ËÌÉÎÉËÕ ÁËÓÓÅÓÓ ×ÉÏÌÅÊÛÉÎÁÍÉ ÚÁÔÒÁÈÁÀ :))) ëÏ×ÁÌÅÎËÏ äÍÉÔÒÉÊ. PS. ÷ÏÔ, ÕÖÅ ÐÙÔÁÀÔÓÑ ÏÔ ÍÅÎÑ exit × ÄÅÓÔÒÕËÔÏÒÅ ÄÅÌÁÔØ. ëÕÄÁ ÜÔÏ ×Ù ÏÔ ÍÅÎÑ ×ÁÌÉÔØ ÓÏÂÒÁÌÉÓØ?
Re: Re[4]: cannot disconnect database with open transactions + connection shutdown
á ÞÅÍ ÄÌÑ ÓÅÒ×ÅÒÁ ÄÏÌÖÎÁ ÏÔÌÉÞÁÔØÓÑ ×ÉÓÑÝÁÑ ÏÔËÒÙÔÏÊ ÔÒÁÎÚÁËÃÉÑ ÉÚ-ÚÁ ÏÂÒÙ×Á ÓÏÅÄÉÎÅÎÉÑ É × ÜÔÏÍ ÓÌÕÞÁÅ? ôÅÍ, ÞÔÏ ÒÕÇÁÅÔÓÑ ÏÎ ÐÒÉ ÄÅÔÁÞÅ. á ÚÎÁÞÉÔ É ÐÒÉÌÏÖÅÎÉÅ É ËÏÎÎÅËÔ ÖÉ×Ù. ñ ×ÏÔ ÝÁÓ ÎÁÐÐÉÓÁÌ ÏÞÅÒÅÄÎÏÊ ÛÁÂÌÏÎÎÙÊ ËÏÄ - { connection_object-Attach() isc_tr_handle tr_handle=NULL isc_start_transaction(status_vector, tr_handle, ) } //ÄÅÓÔÒÕËÔÏÒ connection_object ÂÕÄÅÔ ÐÙÔÁÔØÓÑ ×ÙÐÏÌÎÉÔØ ÄÉÓËÏÎÎÅËÔ É ÏÂÌÏÍÉÔÓÑ // îÏ ÍÎÅ ÎÅ ÓÔÒÁÛÎÏ - Ñ ÐÏÓÌÅ ÜÔÏÇÏ ×ÙÇÒÕÖÕ ËÌÉÅÎÔÓËÕÀ ÂÉÂÌÉÏÔÅËÕ Ë ÅÄÒÅÎÅ ÍÁÔÅÒÉ - íÙÓÌØ Ï ÔÏÍ, ÞÔÏ ÄÅÔÁÞ ÄÏÌÖÅÎ ÒÕÇÁÔØÓÑ ÎÁ ÎÁÌÉÞÉÅ ÏÔËÒÙÔÙÈ ÔÒÁÎÚÁËÃÉÊ, ËÏÎÅÞÎÏ ÐÒÁ×ÉÌØÎÁÑ. ëÁË É ÔÁ, ÞÔÏ ÐÒÉ ÐÅÒÅÄÁÞÅ NULL × ËÁÞÅÓÔ×Å ÓÔÁÔÕÓ ×ÅËÔÏÒÁ, fbclient.dll ÏÐÒÏËÉÄÙ×ÁÅÔ ×ÓÅ ÐÒÉÌÏÖÅÎÉÅ. ôÉÐÁ ÐÉÛÉÔÅ ÐÒÁ×ÉÌØÎÙÅ ÐÒÉÌÏÖÅÎÉÑ. îÏ ÞÔÏ ÔÏ ÔÕÔ ÏÞÅÎØ ÓÉÌØÎÏ äÖÉÍÏÍ ÐÁÈÎÅÔ :))) ðÒÏÂÌÅÍÁ Ó ÄÅÔÁÞÅÍ ÒÅÛÁÅÔÓÑ ÉÓËÌÀÞÉÔÅÌØÎÏ ÐÏÓÔÒÏÅÎÉÅÍ ÄÅÒÅ×Á ÏÂßÅËÔÏ×, × ËÏÔÏÒÏÍ ÄÅÔÉ ÂÌÏËÉÒÕÀÔ × ÐÁÍÑÔÉ ÒÏÄÉÔÅÌÅÊ connection --- transaction statement É ÎÅ ÄÁÀÔ ÉÈ ÇÒÏÈÁÔØ ÒÁÎØÛÅ ÓÅÂÑ. ÷ÏÐÒÏÓ - × ÐÒÁ×ÉÌØÎÙÈ FIBPlus Ñ ÍÏÇÕ ÇÒÏÈÎÕÔØ ÄÁÔÁÂÁÚÕ ÒÁÎØÛÅ ÔÒÁÎÚÁËÃÉÉ? ÷ ÎÅÍ ÉÓÐÏÌØÚÕÀÔÓÑ ÂÌÏËÉÒÏ×ËÉ, ÜÔÏ ÄÅÌÏ ÐÒÅÄÏÔ×ÒÁÝÁÀÝÉÅ? üÔÏ Ñ ÝÁÓ ÞÉÓÔÏ Ó ÔÏÞËÉ ÚÒÅÎÉÑ ÏÈ×ÁÎÉÑ IB API, ÓÐÒÁÛÉ×ÁÀ. ëÏ×ÁÌÅÎËÏ äÍÉÔÒÉÊ.
Re: Re[4]: cannot disconnect database with open transactions + connection shutdown
Проблема с детачем решается исключительно построением дерева объектов, в котором дети блокируют в памяти родителей connection --- transaction statement и не дают их грохать раньше себя. Вопрос - в правильных FIBPlus я могу грохнуть датабазу раньше транзакции? В нем используются блокировки, это дело предотвращающие? Это я щас чисто с точки зрения охвания IB API, спрашиваю. про IBX грохнуть можешь, транзакция сделает по умолчанию еще есть ForceClose - штука, к-рая позворляет закрыть соединение, если Close (Disconnect) не позволяет -- Булычев Алексей http://www.stella-npf.ru
Re: Re[4]: cannot disconnect database with open transactions + connection shutdown
ÇÒÏÈÎÕÔØ ÍÏÖÅÛØ, ÔÒÁÎÚÁËÃÉÑ ÓÄÅÌÁÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ ÷ÏÔ. íÙÓÌØ :) îÕÖÎÏ ÏÐÒÅÄÅÌÉÔØ TPB ÐÁÒÁÍÅÔÒ Ó ÄÅÊÓÔ×ÉÑÍÉ ÐÏ ÕÍÏÌÞÁÎÉÀ. âÕÇÁÇÁÇÁ. ëÏ×ÁÌÅÎËÏ äÍÉÔÒÉÊ.
Re: Re[4]: cannot disconnect database with open transactions + connection shutdown
âÌÏËÉÒÏ×ËÉ ×ÁÝÅ ÎÅ ÄÏÇÎÁÌ - ÜÔÏ ÔÙ Ï Þ£Í ? óÞÅÔÞÉËÉ ÓÓÙÌÏË. õ ÓÁÍÏÕÂÉ×ÁÎÉÅ ÐÒÉ ÏÂÎÕÌÅÎÉÉ. á-ÌÑ COM :) ëÏ×ÁÌÅÎËÏ äÍÉÔÒÉÊ.
Re: Re[4]: cannot disconnect database with open transactions + connection shutdown
Kovalenko Dmitry ... Блокировки ваще не догнал - это ты о чём ? Счетчики ссылок. У самоубивание при обнулении. А-ля COM :) В своём слое - хоть обсчитайся :) -- Хорсун Влад