Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Сон Веры Павловны Member Откуда: Сообщений: 6127 |
Двухзвенное приложение на ADO.Net, внутри которого работает распределнная транзакция между MSSQL и ораклом. Координатор транзакции - само приложение: что-то пишется в оракл, что-то в MSSQL, если всё в порядке, коммитится оракловая транзакция, и транзакция MSSQL. Обе транзакции относительно короткие, и много данных не затрагивают. Сегодня коммит транзакции MSSQL - именно коммит, а не сама команда - вылетел с ошибкой таймаута:
Порылся в гугле - впроде как за таймаут коммита/роллбака транзакции отвечает свойство SqlConnection.ConnectionTimeout, и подкрутить этот параметр не проблема, но интересно - что может быть причиной таймаута именно коммита, если сама команда выполнилась нормально? И как это можно смоделировать? |
|
10 июл 17, 07:25 [20627820] Ответить | Цитировать Сообщить модератору |
Сон Веры Павловны Member Откуда: Сообщений: 6127 |
P.S. Объекты и данные транзакции MSSQL во время работы приложения (оно работает как задание по расписаню) гарантированно не использует никакое другое приложение или сессия. |
10 июл 17, 07:31 [20627821] Ответить | Цитировать Сообщить модератору |
Mr. X
Guest |
Сон Веры Павловны, Увеличение файла бд по автоприращению (в %, файлик не маленький, УЗ sql не обладает нужными правами)? |
10 июл 17, 09:07 [20627920] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8350 |
Сон Веры Павловны, если это распределенная транзакция, то она закрывается с двух сторон силами операционной системы. |
10 июл 17, 10:59 [20628304] Ответить | Цитировать Сообщить модератору |
Сон Веры Павловны Member Откуда: Сообщений: 6127 |
|
||||
10 июл 17, 11:10 [20628359] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
Сон Веры Павловны, вообщем-то от dtс всегда можно отказать, он вам точно нужен? |
10 июл 17, 11:14 [20628379] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8350 |
Сон Веры Павловны,
Если С#, то он, скорее всего, поднимает именно DTC. |
||
10 июл 17, 11:28 [20628452] Ответить | Цитировать Сообщить модератору |
Сон Веры Павловны Member Откуда: Сообщений: 6127 |
Нет там никакого dtc, выше же написал - вся координация осуществляется в клиентском коде - примерно так: using (var oraConnection = DbUtils.GetOraConnection()) using (var oraTran = oraConnection.BeginTransaction()) using (var mssqlConnection = DbUtils.GalMssqlConnection()) using (var mssqlTran = mssqlConnection.BeginTransaction()) try { DoSomeInOra(oraConnection, oraTran); DoSomeInMssql(mssqlConnection, mssqlTran); oraTran.Commit(); mssqlTran.Commit(); } catch(Exception exception) { oraTran.Rollback(); mssqlTran.Rollback(); Logger.Error(ex.Format(ErrorFormat.Verbose)); } - только всё вроде как мало соотносится с тем, что коммит транзакции для MSSQL выбрасывает ошибку. |
||
10 июл 17, 11:29 [20628456] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
решение принимает сервер, если логика запроса требует - будет распределённая, если нет - можно заставить или просто не будет |
||||
10 июл 17, 11:29 [20628463] Ответить | Цитировать Сообщить модератору |
Ennor Tiegael Member Откуда: Сообщений: 3348 |
Сон Веры Павловны, Бэкап журнала не делался в этот момент? |
10 июл 17, 11:38 [20628503] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
Сон Веры Павловны, Посмотрите что есть в еррорлоге на момент ошибки. |
10 июл 17, 11:44 [20628543] Ответить | Цитировать Сообщить модератору |
aleks2
Guest |
Умеет же тредстартер приплести бузину в огороде к дядьке в кiеве. Какая ж енто "распределенная транзакция"? Особливо умиляет oraTran.Commit(); mssqlTran.Commit(); } catch(Exception exception) { oraTran.Rollback(); mssqlTran.Rollback(); Обычный говнокод. ЗЫ. По теме: чо, религиозные убеждения не дозволяют профайлер? |
||||
10 июл 17, 12:49 [20628855] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |