亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JAVA 多線查詢ORACLE線程卡住

JAVA 多線查詢ORACLE線程卡住

子衿沉夜 2018-07-15 19:30:16
因實際查詢需要,系統設置40個線程進行數據查詢,每個線程查詢的時間會很長,都需要幾十分鐘的查詢時間,當查詢時間運行到一定的時間后,有些線程就卡在statement.executeQuery(),用jvisuallvm查看線程的執行點停留在java.net.SocketInputStream.socketRead0,再查看ORALCE的V$SESSION,這些線程提交的查詢都已執行完成了,TOMCAT日志也沒有任何異常記錄,各位大神幫幫忙,看下問題會出在哪里。
查看完整描述

3 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

這個不關oracle底層的事情,并發查詢是數據庫的最基本功能之一。估計是你用ODBC API方式不對或者你的ODBC不支持數據庫的多線程處理。從你的描述來看,串行可以,并行不行,應該是你用的API庫不支持多線程并行。


查看完整回答
反對 回復 2018-07-26
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

oracle的會話已經結束,而數據庫連接池并沒有接收到,有可能是因為odbc設置的最大等待時間比oracle的會話時間短,建議優化sql或修改等待時間嘗試


查看完整回答
反對 回復 2018-07-26
?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

這個現象很像tcp連接已經非正常斷掉,確認一下java客戶端到oracle中間的網絡設備,會不會在socket限制一定時間后主動切斷?

客戶端的socket連接是ESTABLISHED狀態,因為沒收到tcp關閉相關的包,但是oracle端嘗試輸出結果的時候發現鏈接已經有問題了,用netstat看看客戶端和服務端的連接數是不是對的上,對不上就是我說的這種情況了。


查看完整回答
反對 回復 2018-07-26
  • 3 回答
  • 0 關注
  • 1056 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號