Мы получаем ошибку от System.Data.OracleClient
: Invalid operation. The connection is closed.
Ошибка появляется случайно с частотой около 1 на каждые 1000 операций.
В чем может быть проблема?
Может быть, я получил ответ.
Объект подключения использовался так:
[Serializable]
открытый абстрактный класс BaseWizard: IBaseWizard
{
[NonSerialized]
protected static ISession _session;
protected static ISession Session
{
get
{
if (_session == null)
_session = Session.Create(ConnectionType.DEFINED);
return _session;
}
}
}
(сеанс - это персонализированный объект dbconnection)
и хотя была последняя проверка, если (! Session.IsOpen) Session.Open была вероятность того, что после проверки состояния a перед выполнением команды какая-либо другая операция может закрыть соединение, и, как вы можете видеть, как Объект сеанса является статическим, новая операция обнаружит, что соединение закрыто
Проблема заключается в том, что если соединение не будет статичным, это будет означать добычу открытого соединения / сеанса в БД
Есть ли другой способ исправить это, оставив соединение статичным?