转载自 Tomcat集群session复制与Oracle的坑

问题描述

公司某个系统使用了tomcat自带的集群session复制功能,然后后报了一个oracle驱动包里面的连接不能被序列化的异常。

01-Nov-2017 16:45:26.653 SEVERE [https-jsse-nio-8443-exec-2] org.apache.catalina.ha.session.DeltaManager.requestCompleted Unable to serialize delta request for sessionid [F825A52DD9E0E7F8FD6BB3E3F721F841]java.io.NotSerializableException: oracle.jdbc.driver.T4CConnectionat java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)

解决方案

看到这个问题,首先检查整个系统里面的代码有没有用到T4CConnection或者java.sql.Connection并将它们放到了session中。

检查后发现系统并没有用到任何及相关的类放在session中。

接下来就运维的同学头疼了,换tomcat版本、改各种tomcat相关的配置都没有解决。

然后我判断可能是程序或者数据导致的问题,果然,在经过逐一排查穷举测试,发现干掉某个对象后功能正常了,不报序列化的错误了。而在干掉的那个对象里面发现使用了java.sql.Clob类型,曾几何时在网上有看到过这个异常,在tomcat session复制时使用了这个类型的字段是会出问题的。

真是茅塞顿开,经常确认,那个Clob字段在实际应用中并没有使用到,所以最后去掉该字段,折腾了整个团队两三天的问题最终得已解决。

tomcat真是醉了,session复制你不支持Clob字段,你报一个oracle驱动不能序列化的错误,有点误导,让人迷失方向,还好问题解决了。。

Tomcat集群session复制与Oracle的坑相关推荐

  1. Windows7 + Nginx + Memcached + Tomcat 集群 session 共享

    一,环境说明 操作系统是Windows7家庭版(有点不专业哦,呵呵!),JDK是1.6的版本, Tomcat是apache-tomcat-6.0.35-windows-x86,下载链接:http:// ...

  2. apache+jk+tomcat集群+session同步

    说明借前人之鉴写一篇关于tomcat集群及session同步的问题首先介绍tomcat集成及做集群的原因和必要性session同步的作用.然后包括各软件的安装配置. 原理tomcat 做个WEB服务器 ...

  3. tomcat集群session共享

    在部署cas系统的时候,遇到个问题,在tomcat集群部署cas系统,不能在一边服务器实现了登陆而在另一侧服务器还是没登录的.所以要实现tomcat集群的session的共享,从而实现高可用. 了解到 ...

  4. linux ajp集群,Linux下apache tomcat ajp_proxy 负载均衡+集群+session 复制

    11.查看 netstat –ant tcp        0      0 ::ffff:192.168.15.124:4000  :::*                        LISTE ...

  5. Tomcat集群应用同步 —— 源码分析

    文章目录 前言 一.应用同步的配置与实现原理 二.应用同步源码分析 三.如何获取集群的节点列表 四.通讯模块Tribe 五.集群的Session同步 六.集群的Session共享 总结 前言 相信大家 ...

  6. Nginx+tomcat集群的session共享问题

    请求负载过程中会话信息不能丢失.那么需要在多个tomcat中session需要共享.所以需要进行相关问题的解决 配置Tomcat的session共享可以有三种解决方案: 第一种:是以负载均衡服务器本身 ...

  7. 使用Tomcat-redis-session-manager来实现Tomcat集群部署中的Session共享

    2019独角兽企业重金招聘Python工程师标准>>> 一.工作中因为要使用到Tomcat集群部署,此时就涉及到了Session共享问题,主要有三种解决方案: 1.使用数据库来存储S ...

  8. Tomcat集群和Session共享的配置方法

    Tomcat集群配置其实很简单,在Tomcat自带的文档中有详细的说明( /docs/cluster-howto.html ),只不过是英语的,对我这样的人来说很难懂 . 下面根据说下怎么配置吧: 第 ...

  9. 用Redis存储Tomcat集群的Session

    用Redis存储Tomcat集群的Session 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 前段时间,我花了不少时间来寻求一种方法,把新开发的代码推 ...

最新文章

  1. taobao sass
  2. 【Google Play】声明广告权限 ( you must declare the AD_ID Permission when your app targets Android 13 )
  3. 《蘑菇街编程题》回文串
  4. jzoj2755-[2012东莞市选]树的计数【dp,高精度】
  5. (转)MyBatis框架的学习(五)——一对一关联映射和一对多关联映射
  6. python下载bt文件_python获取bt种子的详细信息
  7. 计算机网络之传输介质(双绞线、同轴电缆、光纤、无线电缆、微波、激光、红外线)...
  8. 爬虫学习round02
  9. 中文短文本的实体识别实体链接,第一名解决方案
  10. quartz java 实现_Quartz使用-入门使用(java定时任务实现)
  11. 在线播放m3u8和ts的方法
  12. 文本自动校对技术研究综述
  13. 当8081端口被占用了怎么办?
  14. MySQL必知必会!!!看这一篇就足够了!!!
  15. android 位置共享_如何与Android的受信任联系人共享您的位置
  16. 分享一款 Google Pixel 2 独家动态壁纸
  17. 网络异常处理,ping测试报:一般故障
  18. 区块链:Casper 机制的历史起源:第二篇
  19. 零基础学习python数据分析,需要掌握哪些技能?
  20. 怀旧服服务器荣誉系统是啥,魔兽世界怀旧服:PVP荣誉系统简介,想刷大元帅这些内容必须了解...

热门文章

  1. [SpringBoot2]自动配置
  2. [数据结构-严蔚敏版]P65离散事件模拟(银行客户的离散事件驱动模拟程序)
  3. LOOPS HDU - 3853(概率dp,期望)
  4. 国籍 mysql_国籍表SQL,按首字母升序排序
  5. sklearn PCA特征降维
  6. 网络编程——常用协议解析
  7. 2019-03-14-算法-进化(两个数组的交集 II)
  8. 2016-2017 ACM-ICPC CHINA-Final(7 / 12)
  9. uoj#422. 【集训队作业2018】小Z的礼物
  10. Acwing 1082. 数字游戏