论坛首页 Java企业应用论坛

spring 声明式事务管理与oracle的inactive会话。

浏览 3106 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-27  
在开发环境中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。
   发表时间:2009-03-27  
如果是没有关闭的连接,应该有执行的sql语句的吧!可是这些语句都是没有sql语句的。想来想去是不是还有一种原因就是不是因为我们开发人员debug的时候没有等程序走完,就停止了服务器的原因。
0 请登录后投票
   发表时间:2009-12-21  
我现在也有这个疑问,

spring 控制事务到 Service
但是我调试到进Service中的方法中去
这个时候用 plsql查看事务,却没有事务存在

很是疑问
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics