在方面包装后不关闭石英调度程序连接

时间:2014-05-30 09:36:40

标签: java spring quartz-scheduler connection-pooling aspect

我的方面过程有问题。我已安排石英工作女巫我包裹在方面。当我没有方面的时候我没有遇到问题,但是当我在多次执行进程后将其包装在一个方面时,应用程序似乎在尝试连接到数据库时处于挂起状态。日志显示由于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;
    }
}

有谁知道可能是什么问题? 提前谢谢!

0 个答案:

没有答案