导航

Nhibernate多线程之间Session的问题

Posted on 2014-06-30 17:40  理工.net  阅读(543)  评论(0编辑  收藏  举报

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获取业务逻辑成的对象