ava.sql.SQLException: 违反协议

wyqp10 2007-09-04 12:55:09
我现在的项目是用的jdk1.4+eclipse3.2+myeclipse5.0+tomcat5.0+oracle9i

struts+hibernate2 做的,我试着把数据库驱动换成了oracle8i 还是这个错误,感觉是配置问题,因为在项目的别的模块的一样的操作都能用,怀疑是不是hibernate2与hibernate3不兼容?但是别的地方怎么能用了?


在保存信息的时候 出现下面的 错误



ava.sql.SQLException: 违反协议
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:1160)
at oracle.jdbc.ttc7.Ocommoncall.receive(Ocommoncall.java:149)
at oracle.jdbc.ttc7.TTC7Protocol.rollback(TTC7Protocol.java:487)
at oracle.jdbc.driver.OracleConnection.rollback(OracleConnection.java:1376)
at com.mchange.v2.c3p0.impl.C3P0PooledConnection.reset(C3P0PooledConnection.java:251)
at com.mchange.v2.c3p0.impl.C3P0PooledConnection.access$000(C3P0PooledConnection.java:35)
at com.mchange.v2.c3p0.impl.C3P0PooledConnection$ProxyConnectionInvocationHandler.doSilentClose(C3P0PooledConnection.java:531)
at com.mchange.v2.c3p0.impl.C3P0PooledConnection$ProxyConnectionInvocationHandler.invoke(C3P0PooledConnection.java:636)
at com.mchange.v2.c3p0.impl.$Proxy0.close(Unknown Source)
at net.sf.hibernate.connection.C3P0ConnectionProvider.closeConnection(C3P0ConnectionProvider.java:48)
at net.sf.hibernate.impl.BatcherImpl.closeConnection(BatcherImpl.java:275)
at net.sf.hibernate.impl.SessionImpl.disconnect(SessionImpl.java:3285)
at net.sf.hibernate.impl.SessionImpl.close(SessionImpl.java:497)
at gmit.gsf.tool.hibernate.PersistentTool.search(PersistentTool.java:586)
at gmit.gsf.arch.BaseBO._search(BaseBO.java:81)
at gmit.gsf.arch.BaseSI._search(BaseSI.java:39)
at gmit.jzt.orguser.action.OrgRoleManageSI_updateAction.searchOrgAgent(OrgRoleManageSI_updateAction.java:138)
at gmit.jzt.orguser.action.OrgRoleManageSI_updateAction.execute(OrgRoleManageSI_updateAction.java:86)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:509)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:277)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1490)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:530)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)
[net.sf.hibernate.util.JDBCExceptionReporter.ERROR] 违反协议 2007-09-04 12:50:21,250
[net.sf.hibernate.util.JDBCExceptionReporter.ERROR] 违反协议 2007-09-04 12:50:21,250
[net.sf.hibernate.util.JDBCExceptionReporter.ERROR] Cannot close connection 2007-09-04 12:50:21,250
...全文
408 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowy_howe 2007-09-04
  • 打赏
  • 举报
回复
http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq.htm#30_17
What does "Protocol Violation" mean?
The Thin driver throws this exception when it reads something from the RDBMS that it did not expect. This means that the protocol engine in the Thin driver and the protocol engine in the RDBMS are out of synch. There is no way to recover from this error. The connection is dead. You should try to close it, but that will probably fail too.

If you get a reproducible test case that generates this error, please file a TAR with Oracle Global Support. Be sure to specify the exact version numbers of the JDBC driver and the RDBMS, including any patches.

问题是出在JdbcDriver与Oracle数据库不匹配上。
建议换一个和你用的Oracle版本匹配的JDBC驱动程序!

如果还解决不了问题,那需要测试是那些记录不能通过,我记得好象BLOB也有些问题。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧