Re: Re[4]: cannot disconnect database with open transactions + connection shutdown

2008-02-21 Пенетрантность Vlad Khorsun



Нет. Приложение должно сделать то, что автор прописал. Сказали закрыть
соединение - значит закрыть и не выпендриваться.



А подумать ?


Я подумал, прежде чем написал - см. ниже.


   Я тоже подумал. Причём года 3-4 назад :)


 В спецификации OLEDB тоже говорят - надо ругаться ...

Зря.



Не зря. Если приложение корректно написано, то оно не оставит открытых 
тр-ций
за собой. Ибо сервер понятия не имеет, что с ними делать (кроме случая обрыва
коннекта, который есть форс-мажор).


А чем для сервера должна отличаться висящая открытой транзакция
из-за обрыва соединения и в этом случае?


   Тем, что ругается он при детаче. А значит и приложение и коннект живы.


Да, я согласен, что это НЕПРАВИЛЬНАЯ логика работы приложения -
наплодить транзакций, а потом закрыть коннект и сделать вид, что оно
тут ни при чем. Но все равно ведь никто не мешает авторам приложений
просто втупую завершать выполнения программы (читай - не проверять
статус detach() функции).


   Одно дело - забытая тр-ция из-за неизвестной ошибки в приложении, другое -
злонамеренное игнорирование сообщения сервера


Что тогда сервер должен делать с коннектами?
солить? Я считаю, что он с ними должен поступать так же, как и в
случае обрыва - т.е. откатить.


   Так ты в жизни не найдёшь ошибку в приложении, а сервер будет виноват
в пропавших данных


З.Ы. Я вот тут еще подумал - а почему сервер должен думать за
программера? Если он ССЗБ - то и пусть.


   См выше

--
Хорсун Влад 





Re: Re[4]: cannot disconnect database with open transactions + connection shutdown

2008-02-21 Пенетрантность Kovalenko Dmitry

ñ ÔÅÂÅ ÂÏÌØÛÅ ÓËÁÖÕ - ÌÏÇÉËÁ ÚÁ×ÉÓÉÔ ÅÝÅ É ÏÔ ÔÏÇÏ, Ó ËÁËÏÊ ÓÔÏÒÏÎÙ
ËÕÒÉÔØ ÜÔÉ ËÏÓÑËÉ :)

á Ñ ÐÒÅÄÌÁÇÁÌ ÄÏËÔÏÒÕ, ÉÄÅÀ ÎÁÓÞÅÔ isc_close_handle

á ÍÎÅ, × ÏÔ×ÅÔ, ÐÒÏÐÉÓÁÌÉ ÏÞÅÒÅÄÎÏÊ ËÕÒÓ × ÎÁÒËÏÄÉÓÐÁÎÓÅÒÅ.

îÉÞÅ. ñ ÝÁÓ ÜÔÕ ËÌÉÎÉËÕ ÁËÓÓÅÓÓ ×ÉÏÌÅÊÛÉÎÁÍÉ ÚÁÔÒÁÈÁÀ :)))

ëÏ×ÁÌÅÎËÏ äÍÉÔÒÉÊ.

PS. ÷ÏÔ, ÕÖÅ ÐÙÔÁÀÔÓÑ ÏÔ ÍÅÎÑ exit × ÄÅÓÔÒÕËÔÏÒÅ ÄÅÌÁÔØ. ëÕÄÁ ÜÔÏ ×Ù ÏÔ ÍÅÎÑ 
×ÁÌÉÔØ ÓÏÂÒÁÌÉÓØ? 





Re: Re[4]: cannot disconnect database with open transactions + connection shutdown

2008-02-21 Пенетрантность Kovalenko Dmitry

á ÞÅÍ ÄÌÑ ÓÅÒ×ÅÒÁ ÄÏÌÖÎÁ ÏÔÌÉÞÁÔØÓÑ ×ÉÓÑÝÁÑ ÏÔËÒÙÔÏÊ ÔÒÁÎÚÁËÃÉÑ
ÉÚ-ÚÁ ÏÂÒÙ×Á ÓÏÅÄÉÎÅÎÉÑ É × ÜÔÏÍ ÓÌÕÞÁÅ?

ôÅÍ, ÞÔÏ ÒÕÇÁÅÔÓÑ ÏÎ ÐÒÉ ÄÅÔÁÞÅ. á ÚÎÁÞÉÔ É ÐÒÉÌÏÖÅÎÉÅ É ËÏÎÎÅËÔ ÖÉ×Ù.

ñ ×ÏÔ ÝÁÓ ÎÁÐÐÉÓÁÌ ÏÞÅÒÅÄÎÏÊ ÛÁÂÌÏÎÎÙÊ ËÏÄ

-
{
 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

2008-02-21 Пенетрантность Boulitchev Aleksey


Проблема с детачем решается исключительно построением дерева объектов, в 
котором дети блокируют в памяти родителей


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

2008-02-21 Пенетрантность Kovalenko Dmitry

 ÇÒÏÈÎÕÔØ ÍÏÖÅÛØ, ÔÒÁÎÚÁËÃÉÑ ÓÄÅÌÁÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ

÷ÏÔ. íÙÓÌØ :)

îÕÖÎÏ ÏÐÒÅÄÅÌÉÔØ TPB ÐÁÒÁÍÅÔÒ Ó ÄÅÊÓÔ×ÉÑÍÉ ÐÏ ÕÍÏÌÞÁÎÉÀ.

âÕÇÁÇÁÇÁ.
ëÏ×ÁÌÅÎËÏ äÍÉÔÒÉÊ. 





Re: Re[4]: cannot disconnect database with open transactions + connection shutdown

2008-02-21 Пенетрантность Kovalenko Dmitry

âÌÏËÉÒÏ×ËÉ ×ÁÝÅ ÎÅ ÄÏÇÎÁÌ - ÜÔÏ ÔÙ Ï Þ£Í ?

óÞÅÔÞÉËÉ ÓÓÙÌÏË. õ ÓÁÍÏÕÂÉ×ÁÎÉÅ ÐÒÉ ÏÂÎÕÌÅÎÉÉ. á-ÌÑ COM :)

ëÏ×ÁÌÅÎËÏ äÍÉÔÒÉÊ. 





Re: Re[4]: cannot disconnect database with open transactions + connection shutdown

2008-02-21 Пенетрантность Vlad Khorsun


Kovalenko Dmitry ...



   Блокировки ваще не догнал - это ты о чём ?


Счетчики ссылок. У самоубивание при обнулении. А-ля COM :)


   В своём слое - хоть обсчитайся :)

--
Хорсун Влад