spring 声明式事务管理与oracle的inactive会话。 博客分类: 我的文章 OracleSpring配置管理SQLDAO
程序员文章站
2024-03-21 15:32:22
...
在开发环境中oracle(系统用户下)总是有30个左右的inaction连接,但是这些连接都没有执sql语句,就是在oracle客户端中查看这些会话,都是该会话没有执行任何SQL语句。探讨一下这些连接是不是由于程序中没有关闭连接造成的。我用的是spring的声明式事务管理,
<jee:jndi-lookup jndi-name="jdbc/abcdexxx" id="dataSource" lookup-on-startup="true"> </jee:jndi-lookup> <!-- Transaction manager for a single JDBC DataSource --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 管理事务操作 --> <aop:config> <aop:pointcut id="servicePointcut" expression="execution(* abcdexxx.service.*.*(..))" /> <aop:pointcut id="servicePointcut2" expression="execution(* abcdexxx.service.*.*.*(..))" /> <aop:pointcut id="workflowJDBCStore" expression="execution(* abcdexxx.common.workflow.jdbc.*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="servicePointcut" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="servicePointcut2" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="workflowJDBCStore" /> </aop:config> <!-- 事务控制 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="insert*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="remove*" propagation="REQUIRED" /> <tx:method name="get*" read-only="true" /> </tx:attributes> </tx:advice><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource" /> </bean> <bean id="dao" abstract="true"> <property name="jdbcTemplate" ref="jdbcTemplate" /> </bean> <!-- 配置本地LobHandle(Oracle) --> <bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor" lazy-init="true" /> <bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true"> <property name="nativeJdbcExtractor" ref="nativeJdbcExtractor" /> </bean>,dao用的是JdbcTemplate。