生产生一个存储过程查询产生的错误如下(这个问题无法复现,偶尔在生产上出现),以下是前面部分信息.:
2015-12-23 10:51:59.853 ERROR org.hibernate.transaction.JDBCTransaction - JDBC rollback failed
java.sql.SQLException: 违反协议: [32]
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:464) ~[ojdbc-5.jar:11.2.0.3.0]
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192) ~[ojdbc-5.jar:11.2.0.3.0]
at oracle.jdbc.driver.T4C7Ocommoncall.doOROLLBACK(T4C7Ocommoncall.java:68) ~[ojdbc-5.jar:11.2.0.3.0]
at oracle.jdbc.driver.T4CConnection.doRollback(T4CConnection.java:694) ~[ojdbc-5.jar:11.2.0.3.0]
at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:3943) ~[ojdbc-5.jar:11.2.0.3.0]
at weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection.rollback(Unknown Source) ~[com.bea.core.utils.wrapper_1.4.0.0.jar:1.10.0.0]
at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:213) ~[hibernate-core-3.6.10.Final.jar:3.6.10.Final]
at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:192) ~[hibernate-core-3.6.10.Final.jar:3.6.10.Final]
at org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:107) ~[hibernate-entitymanager-3.6.10.Final.jar:3.6.10.Final]
at org.springframework.orm.jpa.JpaTransactionManager.doRollback(JpaTransactionManager.java:539) [spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:845) [spring-tx-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:822) [spring-tx-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.completeTransactionAfterThrowing(TransactionAspectSupport.java:411) [spring-tx-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:114) [spring-tx-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:155) [spring-tx-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.data.jpa.repository.support.LockModeRepositoryPostProcessor$LockModePopulatingMethodIntercceptor.invoke(LockModeRepositoryPostProcessor.java:84) [spring-data-jpa-1.1.0.RELEASE.jar:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90) [spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) [spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at $Proxy358.newFindCoefficientById(Unknown Source) [na:na]
newFindCoefficientById
是存储过程调用方法。该方法被调用处的结构如下:
@Transactional(propagation = Propagation.NOT_SUPPORTED,value = "transactionManager")
public void foo() {
newFindCoefficientById(xxx) ;
}
从以上异常信息中,如果大家能看出点什么,一定请大家给个建议!在此感激不尽!
1
angelface 2015-12-24 15:47:33 +08:00
看几个点吧:
有没有发过新版本最近?如果有, jdbc 驱动有没有动过(升级?或降级?),或是别人不小心引入了新的 jar 包。如果没有, 看 Oracle 是否动过(升级?) |
3
woai110120130 2015-12-24 23:51:36 +08:00 via Android
看看协议 32 是啥么
|
4
palmers OP @woai110120130 这个`违反协议[32]` 是 oracle 驱动抛出的是吗?
|
5
Stile 2015-12-25 11:49:01 +08:00
1.重启看看
2.检查驱动 3.缓存设置为 0 外行,哈哈 |
6
denghongcai 2015-12-25 14:43:56 +08:00
|
8
palmers OP @denghongcai 这个我搜索到 检查了 情况不一样, 谢谢了
|