域事件中访问存储层的问题
我使用域事件来处理对象模型之间的关联关系,比如A对象中有B对象的一个列表,也就是说A和B是一对多的关系
public A{
private String modelId;
private List<B> blist;
private getBlist(){
if(B == null && BModelDevt != null && this.BId != null){
EventMessage message = BModelDevt.getBlist(this.modelId);
blist = (List<B>)message.getEventResult();
}
}
}
在获取A对象后通过域事件获取A所关联的B对象的列表,运行时能够通过,可是页面执行完成后,通过域事件访问数据库占用的数据库连接一直不能释放,导致程序运行一段时间后数据库连接池没有可用的数据库连接,从而报不能获取数据库连接的错误,更严重的是会经常出现数据库死锁的现象,我查看了jdon的代码,在CloseSessionInViewFilter这个过滤器中已经执行了session的关闭,可是数据库连接仍然没有释放。是不是过滤器中的关闭session不能够对域事件中的session拦截,从而导致该问题,如果是这样我该如何处理呢