У меня есть сценарий в приложении типа службы Windows, где мне нужно загрузить
до нескольких тысяч объектов, выполнить некоторую бизнес-логику, а затем
спаси их. Что касается управления сессиями, этот вид падений
за пределами обычного сеанса на вызов, который часто обсуждается.
В принципе, в моем случае я, конечно, не хочу одну сессию для (х)
тысячи лиц. Наиболее очевидная проблема с этим будет
использование памяти.
В этом случае класс, координирующий работу (загрузка объектов
а затем отправка их в определенные классы для обработки) необходимо
быть в состоянии иметь мелкозернистый контроль над сессией. я
созерцая уничтожение и создание нового сеанса для каждого объекта
это должно быть обработано. Или, может быть, есть что-то вроде
вызывая session.Clear () каждый раз, чтобы уничтожить все? Другой
что мне нужно, это возможность уничтожить и воссоздать сеанс, если
исключение происходит. Каждый объект представляет собой транзакцию, в которой все
бизнес-логика для этого объекта должна быть успешной или неудачной. Если это не удается,
Мне нужно откатить, уничтожить сеанс, создать новый, а затем
перейти к следующему объекту.
Я даже обдумываю игнорирование всей концепции репозитория / дао здесь
и просто работайте с isession напрямую, чтобы сделать это простым. Тем не менее, было бы здорово использовать мои существующие даос. Возможно, есть другой подход, где в моем координирующем классе я могу периодически очищать или очищать сеанс, чтобы освободить память и каким-то образом получить новый сеанс в дао?