我的方面过程有问题。我已安排石英工作女巫我包裹在方面。当我没有方面的时候我没有遇到问题,但是当我在多次执行进程后将其包装在一个方面时,应用程序似乎在尝试连接到数据库时处于挂起状态。日志显示由于ConnectionWaitTimeoutExceptions导致的几个J2CA0045E错误以及引用从池中获取空闲连接的问题的其他错误。当我寻找我的免费连接时,没有可用的连接。看起来我的方面并没有关闭连接。我不明白为什么会这样,因为当我不使用方面时,一切都很顺利,连接也关闭了。
我在applicationContext.xml中的方面配置是这样的:
<!-- Aspect -->
<bean id="logAspect" class="hr.kket.cscada.web.util.aspect.LoggingAspect" />
<aop:config proxy-target-class="true">
<aop:aspect id="aspectLoggging" ref="logAspect" >
<aop:pointcut id="syncUdwAspect"
expression="execution(* hr.kket.cscada.services.balancing.BalancingService.syncAllUdwForGasDay(..))" />
<!-- @Around -->
<aop:around method="logProcess" pointcut-ref="syncUdwAspect" />
</aop:aspect>
</aop:config>
我的loggingAspect类是这样的:
@Aspect
public class LoggingAspect {
public Object logProcess(ProceedingJoinPoint joinPoint) throws Throwable {
<!-- some code before -->
int br = dbparameter;//
if(br == 0) {
log.error('some message');
} else {
insertSomethingInDB();//inside I open and close connection, this works well.
try {
Object result = joinPoint.proceed();// connection of this job is not closing with aspect
<!-- some code after -->
insertSomethingInDB();//inside I open and close connection, this works well.
return result;
} catch (Exception e) {
log.info(e.getMessage());
<!-- some code here -->
throw e;
}
}
return null;
}
}
有谁知道可能是什么问题? 提前谢谢!