Почему мой SqlConnection навсегда зависает при работе с NHibernte + Spring.Net - PullRequest
0 голосов
/ 08 сентября 2010

Я написал тестовый пример, расширяющий класс SpringTNet AbstractTransactionalDbProviderSpringContextTests и пытающийся сделать что-то вроде этого.

Step.1 MyHibernateDao.Find(id)
Step.2 Use SqlConnection API to insert some record into database.

Либо шаг 1, либо шаг 2 могут успешно выполняться, но если я соберу их вместе, step.2 будет зависать вечно (до истечения времени ожидания).

Если я добавлю следующие операторы:

Step.1 MyHibernateDao.Find(id) //My Find method does not have [Transaction] annotation.
SessionFactory.GetCurrentSession().Flush()
SessionFactory.GetCurrentSession().Close()
Step.2 Use SqlConnection API to insert some record into database.

, то и step.1, и step.2 могут успешно выполняться, конечно,Разорвать не удастся, так как сессия уже закрыта.

Мне интересно, почему тест зависает на шаге 2?нет причины, по которой одному соединению нужно ждать возврата другого соединения или ждать блокировки таблицы или чего-то другого, просто читается.

Я запутался здесь, есть идеи?

Заранее спасибо.

1 Ответ

0 голосов
/ 07 июля 2011

Используете ли вы управление транзакциями Spring.NET или NHibernate? Возможно, вам потребуется проверить заводскую конфигурацию сеанса.

...