防火牆未配置長連接導致oracle異常

這是2014年碰到的一個問題,用戶上線了一套業務系統,這套業務系統由WEB服務器和數據庫服務器組成,在測試階段發現客戶端在訪問業務系統的時候經常無法登陸,在輸入用戶名和密碼後無法正常登陸系統,業務系統的開放商說客戶端登陸的時候正是WEB服務器訪問數據庫服務器的時候,按照這個說法,在這個節點的訪問有問題。
於是我們在WEB服務器上進行抓包,抓取了一段時間,發現了下面的情況:
防火牆未配置長連接導致oracle異常
上圖中,web服務器在空閒13266秒後向oracle數據庫發起請求,但是oracle數據庫並沒有迴應,導致web服務器一直在重傳這個數據包,最後web服務器發了rst包,單方向終止了這個TCP會話。
結合這個故障現象,大家想到了兩臺服務器之間的防火牆,這是兩個不同網段服務器之間唯一的安全設備,並且防火牆的會話有超時時間,會不會是這個原因呢,查資料發現該防火牆的TCP會話超時時間默認爲30分鐘,截圖中的數據庫訪問已經是在3個小時以後了,根據這些情況,我們修改了1521端口的超時時間,因爲數據庫工程師表示oracle的會話在現有環境中永不超時,那麼我們針對1521端口的超時時間也調整爲永不超時,調整完成後,故障解除。
很可惜,這次沒有在oracle服務器端抓包,這是在web服務器上抓了包,現場沒有這個條件,因爲兩個方向比較更加有說服力。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章