作者:admin 日期:2023-10-16 瀏覽: 次
oracle無(wú)法從套接字讀取更多數(shù)據(jù)
淮安數(shù)據(jù)恢復(fù)開(kāi)發(fā)階段使用Oracle測(cè)試庫(kù),彼時(shí)數(shù)據(jù)量較少,根據(jù)ID獲取列表功能沒(méi)問(wèn)題,暫時(shí)未發(fā)現(xiàn)BUG。但是當(dāng)在灰度環(huán)境進(jìn)行試運(yùn)行時(shí),伴隨列表數(shù)據(jù)突增,出現(xiàn)錯(cuò)誤“無(wú)法從套接字讀取更多數(shù)據(jù)”;如下提示: Cause:
常州數(shù)據(jù)恢復(fù)
java.sql.SQLRecoverableException:無(wú)法從套接字讀取更多的數(shù)據(jù)這個(gè)錯(cuò)誤信息告訴我們幾點(diǎn):不是JDBC或者oracle的問(wèn)題,應(yīng)該是通信異常嘗試用客戶(hù)端工具Navicat訪問(wèn)后臺(tái)的sql是可以查詢(xún)的使用代碼程序查詢(xún)就會(huì)出現(xiàn)題目中的問(wèn)題,并且可復(fù)現(xiàn)幾率很大問(wèn)題原因方向:驅(qū)動(dòng)問(wèn)題、sql子查詢(xún)問(wèn)題更新驅(qū)動(dòng)版本,嘗試重連后訪問(wèn)。(未解決)對(duì)于sql語(yǔ)句進(jìn)行拆分優(yōu)化,子查詢(xún)使用多個(gè)sql語(yǔ)句進(jìn)行查詢(xún)結(jié)果的代碼處理(未解決)
對(duì)于分析過(guò)程是沒(méi)有問(wèn)題的,方向也是對(duì)的,那么為什么根據(jù)步驟執(zhí)行還是無(wú)法解決,我們當(dāng)前訪問(wèn)數(shù)據(jù)庫(kù)是甲方客戶(hù)VPN連接后訪問(wèn),中間會(huì)有代理跳轉(zhuǎn)訪問(wèn),正值過(guò)年期間機(jī)房幾乎沒(méi)人值守,會(huì)不會(huì)出現(xiàn)路由司機(jī)了,想到這里感覺(jué)腦洞大開(kāi)了,靈機(jī)一動(dòng),如果切換為本地?cái)?shù)據(jù)庫(kù)連接是不是可以正常加載接口數(shù)據(jù)呢?說(shuō)干就干,數(shù)據(jù)源切換,打包重啟服務(wù),點(diǎn)開(kāi)列表頁(yè)面,哦吼!完美! 那么最終的原因是否如我們猜想的那樣呢,記住程序員第一要義:不明覺(jué)厲的代碼肯定是有問(wèn)題的。后來(lái)我從服務(wù)器擼下來(lái)oracle日志分析:如圖明顯看到了錯(cuò)誤信息:ORA 07445,這是一個(gè)非常普通的錯(cuò)誤,在oracle的代碼中產(chǎn)生,這個(gè)錯(cuò)誤代碼需要更詳細(xì)的描述信息進(jìn)一步跟蹤
ORA 07445