문제

ASP.NET MVC 응용 프로그램의 데이터 액세스 계층으로 NHibernate를 사용하고 있습니다. 또한 구조지도를 IOC 컨테이너로 사용하고 있습니다. STRUCTRE MAP을 구성하여 세션 공장을 싱글 톤으로 만들고 요청 기준 (InstancesCope.hybrid)에 세션을 만듭니다. 기본 CRUD 작업을 잘 할 수 있습니다.

이제 30 초마다 실행되는 백그라운드 프로세스가 있습니다.이 저장소는 몇 가지 저장소 (세션을 사용)를 사용합니다. 그리고이 배경 프로세스는 어떤 이유로 새로운 데이터를 선택할 수 없습니다. 어쩌면 나는 간단한 것을 놓치고있을 것입니다. 인터넷 검색을 시도했지만 유용한 것을 찾을 수 없었습니다. 누군가가 나를 올바른 방향으로 가리키면 정말 도움이 될 것입니다.

편집하다:

두 번째 레벨 캐시가 활성화되어 있는지 확실하지 않습니다. Nhibernate가있는 초보자이며, 최대 절전 모드 구성 파일이 아래에 붙여져 있습니다.

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
    <property name="connection.connection_string">Data Source=.\SQLEXPRESS;Initial Catalog=Map.db;Integrated Security=True</property>
    <property name="show_sql">true</property>
    <mapping assembly="Infrastructure"/>
  </session-factory>
</hibernate-configuration>

내가 알고 싶은 가장 중요한 것은 Nhibernate를 사용하여 일반적인 웹 애플리케이션에 이미 사용되는 설계/디자인 패턴이 있다면입니다. 내 데이터베이스 설정이 다른 앱에서 업데이트 된 경우 Sationeless Sessions를 사용하면 문제가 해결됩니까?

도움이 되었습니까?

해결책 3

이 목적을 위해 별도의 콘솔 응용 프로그램을 만들어이 문제를 해결했습니다. 우아한 솔루션은 아니지만 여전히 효과가있었습니다. 모든 답변에 감사드립니다.

다른 팁

두 번째 레벨 캐시가 활성화되어 있지만 nhibernate를 통하지 않고 데이터베이스를 업데이트하는 백그라운드 프로세스가있는 경우 이러한 변경 사항이 발생하지 않을 것입니다. 이 시나리오에서는 두 번째 레벨 캐시를 사용하는 것이 적절하지 않습니다.

백 그룹 애플리케이션에서 재고를 발사하기 전에 매번 새 SSSION (30 초)을 사용합니까?

최대 절전 모드에서 show_sql을 활성화하거나 Hiberante profiler 또는 SQL 프로파일러를 사용하여 SQL이 매번 발사되는지 여부를 찾으십시오 (30 초).

설명으로 문제를 해결하기는 어렵습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top