各位访客好,请问这样的配置对吗? TransactionProxyFactoryBean代理方式 和 BeanNameAutoProxyCreator自动代理两种配置 会不会冗余啊? 我的系统有时候会报 ora-00028 you session has been killed 错误 或者
WARN 2008-09-04 17:58:36,922 [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: null
ERROR 2008-09-04 17:58:36,922 [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] org.hibernate.util.JDBCExceptionReporter - Already closed.
WARN 2008-09-04 17:58:36,923 [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: null
ERROR 2008-09-04 17:58:36,923 [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] org.hibernate.util.JDBCExceptionReporter - Already closed.
ERROR 2008-09-04 17:58:36,923 [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] org.springframework.orm.hibernate3.SessionFactoryUtils - Could not close Hibernate Session
org.hibernate.exception.GenericJDBCException: Cannot close connection
at org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:331)
at org.hibernate.jdbc.ConnectionManager.cleanup(ConnectionManager.java:262)
at org.hibernate.jdbc.ConnectionManager.close(ConnectionManager.java:194)
at org.hibernate.impl.SessionImpl.close(SessionImpl.java:289)
at org.springframework.orm.hibernate3.SessionFactoryUtils.doClose(SessionFactoryUtils.java:787)
at org.springframework.orm.hibernate3.SessionFactoryUtils.processDeferredClose(SessionFactoryUtils.java:717)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:192)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.zjpublic.webapps.filter.SessionOuttimeFilter.doFilter(SessionOuttimeFilter.java:60)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.zjpublic.webapps.filter.PermissionFilter.doFilter(PermissionFilter.java:91)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.zjpublic.webapps.filter.LoginFilter.doFilter(LoginFilter.java:147)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at cn.com.zjtelecom.sso.client.filter.CASFilter.doFilter(CASFilter.java:352)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3212)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
Caused by: java.sql.SQLException: Already closed.
at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:77)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:180)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.closeConnection(LocalDataSourceConnectionProvider.java:95)
at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:327)
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean> <bean id="txProxyTemplate" name="txProxyTemplate"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
</bean> <bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean> <bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean> <bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<value>*Service</value>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean> <bean
class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
<property name="transactionInterceptor"
ref="transactionInterceptor" />
</bean> <bean id="persistence"
class="com.zjpublic.webapp.persistence.hibernate.PersistenceHibernateImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean> <!-- 公司 -->
<bean id="companyService" parent="txProxyTemplate">
<property name="target">
<bean
class="com.zjpublic.service.setting.parameters.impl.CompanyServiceImpl">
<property name="persistence" ref="persistence"></property>
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
</property>
<property name="transactionAttributes">
<props>
<prop key="saveCompany">PROPAGATION_REQUIRED</prop>
<prop key="updateCompany">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<!-- 部门 -->
<bean id="departmentService" parent="txProxyTemplate">
<property name="target">
<bean
class="com.zjpublic.service.setting.parameters.impl.DepartmentServiceImpl">
<property name="persistence" ref="persistence"></property>
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
</property>
<property name="transactionAttributes">
<props>
<prop key="saveDepartment">PROPAGATION_REQUIRED</prop>
<prop key="updateDepartment">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- TransAction Manager :文件配置声明事务管理 -->
<!--
<aop:config>
<aop:pointcut id="crudMethods" expression="execution(* simplcore.demo.service.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="crudMethods"/>
</aop:config>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save" propagation="REQUIRED"/>
<tx:method name="update" propagation="REQUIRED"/>
<tx:method name="delete" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
-->
<!-- TransAction Manager :注释配置声明事务管理 -->
<tx:annotation-driven transaction-manager="transactionManager"/>