
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
20.06.2004, 13:22:48
|
|||
|---|---|---|---|
|
|||
COMMIT при разрыве соединения |
|||
|
#18+
Привет, коллеги! Хотел бы посоветоваться и поспрошать, авось кто знает: Проблема недюжинная: при обрыве коннекта клиета на середине транзакции сервер делает COMMIT исполненной части, а мине надобно ROLLBACK. Как енто сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.06.2004, 17:01:41
|
|||
|---|---|---|---|
|
|||
COMMIT при разрыве соединения |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.06.2004, 19:05:52
|
|||
|---|---|---|---|
|
|||
COMMIT при разрыве соединения |
|||
|
#18+
А ты попробуй длинную транзакцию и закрой соединение на середине. И увидишь.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.06.2004, 19:09:47
|
|||
|---|---|---|---|
|
|||
COMMIT при разрыве соединения |
|||
|
#18+
Ну сделал транзакцию. Рубанул соединение. Сервер откатил изменения. А приложение случаем не в автокоммите работает ;) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.06.2004, 19:16:02
|
|||
|---|---|---|---|
|
|||
COMMIT при разрыве соединения |
|||
|
#18+
Да нет, конечно. Но работаю через Gemini ODBC Driver ver2.1. Если, не разрывая соединения, откатываю транзакцию, то откатывается все, так что AUTOCOMMIT отпадает....Так что же это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.06.2004, 19:21:30
|
|||
|---|---|---|---|
COMMIT при разрыве соединения |
|||
|
#18+
настройки одбц изучал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.06.2004, 19:24:36
|
|||
|---|---|---|---|
|
|||
COMMIT при разрыве соединения |
|||
|
#18+
Конечно. Выставил ручное управление транзакции. Прикол, что среди официальных функций ODBC не нашел решение вопроса о незавершенной транзакции в случае разрыва соединения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.06.2004, 19:30:08
|
|||
|---|---|---|---|
|
|||
COMMIT при разрыве соединения |
|||
|
#18+
Прикольно ... вернее не очень прикольно ... Я тест крутил через JDBC... Если ситуация гарантировано воспроизводится надо спрашивать разработчиков что самого сервера что этих дров ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.06.2004, 19:33:16
|
|||
|---|---|---|---|
COMMIT при разрыве соединения |
|||
|
#18+
а покажи, мил человек, как ты керуеш транзакциями, плз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.06.2004, 19:40:44
|
|||
|---|---|---|---|
|
|||
COMMIT при разрыве соединения |
|||
|
#18+
Хочешь посмотреть - пожалуйста(текст на VFP7): ON ERROR SQLRollBack(DBHandle) DBHandle=SQLConnect("conn1","sysdba","masterkey") if DBHandle>0 SQLSetProp(DBHandle,"Transactions",2) s1=SQLExec(DBHandle,"INSERT INTO aa (a1,a2) VALUES (1,2)") s2=SQLExec(DBHandle,"UPDATE bb SET b1=2 WHERE b2=3") if (s1>0) .and. (s2>0) SQLRollBack(DBHandle) else SQLCommit(DBHandle) endif endif Текст конечно вымышленный, но принцип тот же...:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.06.2004, 00:04:31
|
|||
|---|---|---|---|
COMMIT при разрыве соединения |
|||
|
#18+
Winni-Pooh Сколько раз мои пользователи обрывали соединение (причем в наглую - RESET) и ни разу не было COMMIT! Igor ElyasА приложение случаем не в автокоммите работает ;) ? Скорее все что так ! Winni-PoohДа нет, конечно. Но работаю через Gemini ODBC Driver ver2.1. Если, не разрывая соединения, откатываю транзакцию, то откатывается все, так что AUTOCOMMIT отпадает....Так что же это? Gemini ODBC Driver ver2.1 - может как раз в этом и кроется причина ? Попробуй IBX или FIBPlUS - точно поможет ... хотя 'Хочешь посмотреть - пожалуйста(текст на VFP7)' Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.06.2004, 10:25:46
|
|||
|---|---|---|---|
COMMIT при разрыве соединения |
|||
|
#18+
а что есть 2 в: Winni-Pooh SQLSetProp(DBHandle,"Transactions",2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.06.2004, 19:13:18
|
|||
|---|---|---|---|
|
|||
COMMIT при разрыве соединения |
|||
|
#18+
То бишь ручное управление транзациями, а не AutoCommit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.06.2004, 19:34:40
|
|||
|---|---|---|---|
|
|||
COMMIT при разрыве соединения |
|||
|
#18+
Тебя явно плющит... Если коннект оборвался , то контекст транзакции потерян. Ей никто уже не может сказать COMMIT. Ваааще никто! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.06.2004, 07:49:44
|
|||
|---|---|---|---|
|
|||
COMMIT при разрыве соединения |
|||
|
#18+
Однако ситуация есть, я уже перепроверил.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.06.2004, 11:53:15
|
|||
|---|---|---|---|
|
|||
COMMIT при разрыве соединения |
|||
|
#18+
Завязывать пора с планом... Того и гляди, слоны полетят косяками... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.06.2004, 09:58:15
|
|||
|---|---|---|---|
|
|||
COMMIT при разрыве соединения |
|||
|
#18+
Вот и план выветрился...Оказывается, дело именно в ODBC. Даже при ручном управлении транзакциями функция SQLDisconnect() делает COMMIT, а Fox допустил ошибку RollBack'a. Щас добавил перед SQLDisconnect() явный SQLRollBack() (кашу маслом не испортишь), и все заработало! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.06.2004, 10:18:21
|
|||
|---|---|---|---|
COMMIT при разрыве соединения |
|||
|
#18+
а причем тут авторпри обрыве коннекта клиета на середине транзакции??? Какой Rollback ты можешь сделать, если сервера у тебя уже нет??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=40&mobile=1&tid=1578307]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
195ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 560ms |

| 0 / 0 |
