我得到以下的重复:
java.sql.SQLException: Protocol violation
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:190)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:286)
at oracle.jdbc.driver.T4C80all.receive(T4C80all.java:766)
at oracle.jdbc.driver.T4CPreparedStatement.do0all8(T4CPreparedStatement.java:216)
at oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:1225)
at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:373)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:284)
Run Code Online (Sandbox Code Playgroud)
Oracle系统在Solaris 5.10上运行10.2.0.3.0.jdbc驱动程序在JDK 1.6.0_21上运行(如果它是导入的,则java也在Solaris 5.10机器上运行).我已经尝试了几种不同的oracle瘦驱动程序,包括最新的和看起来与oracle版本完全匹配的驱动程序.
我正在运行的查询非常简单:"按key1,key2,key3从some_table顺序中选择*"然后迭代结果集并写入文件.该表有大约1200万行,所以我希望这个过程运行时间很长,但它似乎在5到15分钟内就会死掉.每次我运行它,它会在另一行上爆炸,所以我认为问题不在于数据.
我找到了oracle警报日志,但我无法分辨那里的任何内容与我的进程有关.不过,我不是oracle专家,也许我需要看一下oracle设置.奇怪的是,我在不同的连接上运行了大约五种类型的查询(一些情况稍微复杂一点),只有两个最简单的查询得到了这个问题.
任何有关如何缩小问题的帮助或想法将不胜感激.
我正在使用java7,jboss7,ojdbc7,hibernate 4.表有一个CLOB列,在域类中代码是这样的:
@Lob private String MyClob;
我在查询时遇到这个奇怪的错误,这是不一致的.
Caused by: javax.persistence.PersistenceException: org.hibernate.HibernateException: IOException occurred reading text
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1387)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1310)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:273)
at org.hibernate.ejb.criteria.CriteriaQueryCompiler$3.getResultList(CriteriaQueryCompiler.java:254)
...
... 102 more
Caused by: org.hibernate.HibernateException: IOException occurred reading text
at org.hibernate.type.descriptor.java.DataHelper.extractString(DataHelper.java:94)
at org.hibernate.type.descriptor.java.DataHelper.extractString(DataHelper.java:280)
at org.hibernate.type.descriptor.java.StringTypeDescriptor.wrap(StringTypeDescriptor.java:89)
at org.hibernate.type.descriptor.java.StringTypeDescriptor.wrap(StringTypeDescriptor.java:39)
at org.hibernate.type.descriptor.sql.ClobTypeDescriptor$1.doExtract(ClobTypeDescriptor.java:60)
at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:261)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:257)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:247)
at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:332)
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2912)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1672)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1604)
at org.hibernate.loader.Loader.getRow(Loader.java:1504)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:712)
at org.hibernate.loader.Loader.processResultSet(Loader.java:942)
at org.hibernate.loader.Loader.doQuery(Loader.java:910)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341)
at org.hibernate.loader.Loader.doList(Loader.java:2522)
at org.hibernate.loader.Loader.doList(Loader.java:2508)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2338)
at org.hibernate.loader.Loader.list(Loader.java:2333)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490) …Run Code Online (Sandbox Code Playgroud)