Nhibernate多线程之间Session的问题
背景:系统针对业务逻辑层提供了AOP的NHibernate Session,会话对象是通过Spring.net管理的。但在业务逻辑层里面有些方法实行了异步线程池调用数据访问接口,抛出异常提示:No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here。
分析原因:当前线程和Spring.net创建Session绑定了,多线程直接切换时没有见Session的信息传递,感觉好像也不能传递,万一那个线程死循环了,会话一直就结束不了。
解决方法:
在BLL层外面实现线程池,并在线程池里面IApplicationContext获取业务逻辑成的对象