Управление сеансами NHibernate в приложениях службы Windows

Я считаю, что ваша команда parallel составлена ​​неправильно. Вы можете запустить конвейер команд, как показано ниже:

parallel -j -2 "tar xf $tarball_name -O {} | grep -ac $pattern" :::: file_subset_in_tar.txt

Также обратите внимание, что обратные метки и использование cat не нужны, параметры можно подавать в parallel из файла с помощью ::::.

12
задан hazzik 16 March 2015 в 20:36
поделиться

3 ответа

Кажется, существует большое отсутствие документации / обсуждение для проектов невеб-приложения.

Это также было моим опытом. Однако модель, за которой Вы следуете, кажется корректной мне. Необходимо всегда открывать сессию, изменения фиксации, затем закрывать ее снова.

7
ответ дан 2 December 2019 в 22:52
поделиться

Я соглашаюсь, нет многих примеров для приложений с сохранением информации. Я думаю о выполнении следующего:

Как Вы у меня есть сервис окон, размещающий много сервисов WCF. Таким образом, сервисы WCF являются точками входа. В конечном счете все мои сервисы WCF наследовались AbstractService - который обрабатывает большой вход, и основной DB вставляет/обновляет.

В одном из лучших сообщений NHibernate я видел, HttpModule делает следующее: см. http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx

private void BeginTransaction(object sender, EventArgs e) {
    NHibernateSessionManager.Instance.BeginTransaction();
}
private void CommitAndCloseSession(object sender, EventArgs e) {
    try {
        NHibernateSessionManager.Instance.CommitTransaction();
    }
    finally {
        NHibernateSessionManager.Instance.CloseSession();
    }
}

Таким образом, возможно, я должен сделать что-то подобное в AbstractService. Так эффективно я закончу с сессией на сервисный вызов. При исследовании ссылки на статью лучших практик NHib выше Вы будете видеть, что NHibernateSessionManager должен иметь дело со всем остальным, пока я открываю и закрыл сеанс (конструктор AbstractService и деструктор).

Просто мысль. Но я сталкиваюсь с ошибками, потому что моя сессия, кажется, бродит вокруг слишком долго, и я получаю печально известную ошибку - NHibernate. AssertionFailure: пустой идентификатор в записи (не сбрасывают Сессию после исключения, происходит).

0
ответ дан 2 December 2019 в 22:52
поделиться

Вы также можете очистить сеанс, фактически не закрывая его, и это приведет к тому же результату. Я делаю.

0
ответ дан 2 December 2019 в 22:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: