oracle連線由於防火牆設定導致超時的問題

2022-05-06 18:36:11 字數 808 閱讀 2729

當應用程式使用資料庫連線池進行資料連線時,防火牆的設定有可能會導致連線出現超時或者被重置的問題。當從資料庫讀資料的時候 有可能會 connection timed out, 這是由於應用會快取資料連線,當要訪問資料庫的時候,但是這個時候快取的資料庫連線有可能因為防火牆設定已經超時或者被資料庫乾掉了。

問題描述:

系統割接後,中介軟體和資料庫進行了防火牆隔離,由於資料庫和應用都進行了割接,系統架構由原先的單一網路變成了跨系統部署,資料庫和應用之間的訪問通過防火牆;而防火牆這邊對空閒的連線配置了超時時間(一般預設為30分鐘),一旦超過時間,會自動將連線斷掉;而斷掉後,應用程式這一側的資料庫連線池這邊還是認為該連線有效,它只在應用獲取該連線時才會進行乙個有效性測試,會每間隔乙個時間嘗試一次,嘗試n次後才確定該連線失效,發起重連,最終造成業務耗時長。

由於連線池連線數很多,勢必造成有部分連線空閒時間超過了防火牆的設定,而應用程式這邊沒有配置對空閒連線的維護引數,空閒連線會一直認為有效,所以該現象只會出現在連線池中的空閒連線上;當應用獲取已被防火牆斷開的空閒連線時,就會造成應用的響應慢,或者直接提示 connection timed out 異常。

解決辦法:

針對該現象,解決方案一般有以下幾個:

1、對連線池這一塊的引數進行優化,增加對空閒連線的未使用超時和時效超時(小於防火牆的配置),優化現有連線有效性測試的相關次數和間隔時間配置,使得應用側從連線池中獲取到的連線均有效,避免因長時間沒有進行資料操作被防火牆kill掉;

2、取消防火牆中對於資料庫連線的超時設定。

更詳細的描述和此類問題的說明文章可以參見如下

oracle連線由於防火牆設定導致超時的問題

問題描述 系統割接後,中介軟體和資料庫進行了防火牆隔離,導致was應用訪問資料庫慢的問題。由於資料庫和應用都進行了割接,系統架構由原先的單一網路變成了跨系統部署,資料庫和應用之間的訪問通過防火牆 而防火牆這邊對空閒的連線配置了超時時間 目前是30分鐘 一旦超過時間,會自動將連線斷掉 而斷掉後,was...

防火牆設定

目錄導航 一 iptables防火牆 二 firewall防火牆 centos7 的防火牆配置跟以前版本有很大區別,centos7這個版本的防火牆預設使用的是firewall,與之前的版本centos 6.x使用iptables不一樣 目錄導航 一 iptables防火牆 1 基本操作 servic...

防火牆設定

防火牆設定 firewall cmd zone public add port 80 tcp permanent 新增埠 firewall cmd zone public query port 80 tcp 查詢80埠是否開啟 firewall cmd zone public list ports ...