设为首页 收藏本站
查看: 4506|回复: 0

[经验分享] oracle 无法从套接字读取更多的数据

[复制链接]

尚未签到

发表于 2016-8-8 06:28:45 | 显示全部楼层 |阅读模式
Caused by: org.hibernate.TransactionException: JDBC rollback failed
    at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:170)
    at org.springframework.orm.hibernate3.HibernateTransactionManager.doRollback(HibernateTransactionManager.java:577)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:631)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:608)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.completeTransactionAfterThrowing(TransactionAspectSupport.java:328)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:111)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
    at $Proxy1.retrieve(Unknown Source)
    at com.vtradex.thorn.server.servlet.LoginServlet.authenticateUser(LoginServlet.java:94)
    at com.vtradex.wms.server.web.servlet.WMSLoginServlet.doPost(WMSLoginServlet.java:45)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.sql.SQLRecoverableException: 无法从套接字读取更多的数据
    at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1200)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1155)
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:279)
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
    at oracle.jdbc.driver.T4C7Ocommoncall.doOROLLBACK(T4C7Ocommoncall.java:68)
    at oracle.jdbc.driver.T4CConnection.doRollback(T4CConnection.java:642)
    at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:3716)
    at org.apache.commons.dbcp.DelegatingConnection.rollback(DelegatingConnection.java:265)
    at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.rollback(PoolingDataSource.java:288)
    at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:183)
    at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:162)
    ... 24 more
  此异常导致了系统登陆不了以及相关作业无法进展。
  后来重启了数据库暂时可以解决问题,但是时隔不多久又会产生这个问题。
  原先以为是数据库版本或者程序导致的,不过经过很多异常案例分析初步认为可能是程序调用了存储过程发生异常导致的数据库崩溃。
  
  
  网上参考信息:
  
  上网查了一下资料,有以下原因可能会造成此类错误:
1 数据库版本需要升级(目前是9201+windows2000 as)
2 表或索引上有数据坏块
3 SESSION之间的阻塞
4 初始化参数设置
参考metalink文档:ORA-600[kksscl-inf-inl-loop] during heavy load with CURSOR_SPACE_FOR_TIME=TRUE
  计划处理此问题的步骤如下:
1 找ORACLE支持(公司不出钱,这一步跳过去)
2 扫描表及索引,查看是否有坏块,如果有,进行坏块修复,或表及索引的重建
3 在应用停了之后,升级数据库到9204,检查以下初始化参数
cursor_space_for_time=false
session_cached_cursors=0
cursor_sharing=force
4 在下次错误发生,查看阻塞的SESSION
如果是因为SESSION阻塞,造成的应用程序中的错误,修改以下初始化参数
- set TIMED_STATISTICS=FALSE
- set _row_cache_cursors=20 or more (10 default)
- don't do any kind of tracing
  检查过程:
SQL> select 'ANALYZE TABLE '||table_name||' VALIDATE STRUCTURE CASCADE ;' from user_tables;
  发现问题:
SQL> ANALYZE TABLE gs12366_gljk.GLJK_YSWG_LIST VALIDATE STRUCTURE CASCADE ;
ANALYZE TABLE gs12366_gljk.GLJK_YSWG_LIST VALIDATE STRUCTURE CASCADE
*
ERROR 位于第 1 行:
ORA-01499: table/index cross reference failure - see trace file
  开发人员还有一些附加的要求:
系统设计的是定期将gljk_yswg_list中的数据删除后放在历史表中(2733918条记录),但总是有一些数据在插入时提示列值过大,而两个表结构一样,也找不到原因.
积累到现在共有205045条记录,
  处理过程:
先查看空闲的表空间,确认是否有足够的空间来保存临时数据
1 create table wang_temp1 as select * from GLJK_YSWG_LIST where skssq>'2008' ;
-- 共有87114条
2 create table wang_temp2 as select * from GLJK_YSWG_LIST where skssq<'2008';
-- 共有205045条
3 停掉所有相关的JAVA应用
4 备份表上的建索引脚本,rename table GLJK_YSWG_LIST;
5 rename table ww_temp1 to GLJK_YSWG_LIST;
6 运行创建索引脚本,补充上索引.(表上没有触发器,如果有,还需要还原)
7 进入测试查询
8 将wang_temp2中的数据插入到历史表GLJK_YSWG_HISTORY_LIST中.如果批量插入失败,写一个简单的存储过程进行插入,并捕捉不能插入的记录,分析原因进行解决.
9 处理完毕后,删除中转表wang_temp1 wang_temp2
  在此做个记录,以供以后出现类似问题时参考.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-254384-1-1.html 上篇帖子: Oracle创建表空间,用户以及授权,查看权限 下篇帖子: mysql find_in_set在oracle下的解决方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表