Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DTCTransaction и SQL Profiler 
:(
    Опции темы
Glen
Дата 18.4.2014, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.1.2010

Репутация: нет
Всего: нет



У меня почему-то транзакции на моём SQL Server 2008 превращаются в Distributed Transactions; и поэтому я (это и есть моя проблема) не могу их отслеживать в SQL Profiler

У меня есть SQL Server 2008. В числе прочих запросов к нему обращается и некое BizTalk-приложение (не мной написанное). Оно вызывает хранимые процедуры.

Когда я попытался через SQL Profiler посмотреть - что именно в этот момент происходит - то увидел такую картину:

1. Событие SQLTransaction с EventSubClass = '0 - Begin'. Всё понятно - BizTalk "оборачивает" вызов моей процедуры в транзакцию.
2. тут же событие DTCTransaction '7 - Enlisting in a DTC transaction'
затем событие DTCTransaction '1 - Propagate transaction'
ВОПРОС: если я это правильно понял, то транзакция ставновится "Distributed (DTC) transaction". А это почему? У меня реально нет никакой "распределённой базы" размещающейся на нескольких серверах. Оддин сервер, на нём моя база - и всё. Почему же эта транзакция стала distributed?
3. Далее я в Profiler log-е вижу как выполняется моя процедура, заканчивается, и... не вижу как и как делает commit (rollback) для этой транзакции. Последний раз где упоминается ID этой транзакции - это событие RPC:Completed 'exec sp_reset_connection'. Больше я ID этой транзакции не видел - а я ждал ещё 8 минут.

ВОПРОС: - почему в Profiler log-е я не вижу момента когда произведён commit той транзакции? А он был очевидно произведён - логика того BizTalk-приложения такова что вряд ли оно стало бы ждать с commit-ом как только та моя процедура закончилась.

Может, если транзакция не "простая" а Distributed, то SQL Profiler не умет правильно отображать её? А мне сейчас именно нужно отследить момент когда происходит commit (rollback).
Всё усугубляется тем что я не писал то BizTalk-приложение, и потому не знаю - что именно оно делает с транзакциями. Есть ли там нечто что "заставляет" ту транзакцию превращаться в Distributed - этого я просто не знаю.

В SQL Profiler-е я выбирал такие события:
Stored Procedures: RPC Output Parameter; RPC: Completed; RPC:Starting; SP:Completed; SP:Startinng; SP:StmtCompleted; SP:StmtStarting;
TSQL: SQL:BatchCompleted; SQL:BatchStarting
Transactions: все

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0398 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.