日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tomcat集群session复制与Oracle的坑

發布時間:2023/12/3 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tomcat集群session复制与Oracle的坑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自?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的坑的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。