项目中经常发现某些程序超长事务的问题,为了量化,特添加事务执行时间限制,超出限制时,打印日志及其堆栈。
修改方式为在app-config-context.xml文件中添加如下代码:
<!-- 事务时间拦截,默认1000毫秒 -->
<bean id="transactionTimeInterceptor" class="com.chinainsurance.sysframework.aop.TransactionTimeInterceptor">
<property name="timeLimit" value="1000" />
</bean>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>transactionManager</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionTimeInterceptor</value>
</list>
</property>
</bean>
注意:需要sysframework-3.5.3.jar或以上版本。
为打印日志,需要保证com.chinainsurance.sysframework.aop.TransactionTimeInterceptor的日志级别为WARN或更低级别。