使用Dead Connection Detection(DCD)避免Oracle會話被防火牆強制斷開
1個系統,採用了Oracle的分散式事務來保證分散式系統的事務一致性,但是,該系統在某次搬遷之後,經常出現分散式事務鎖,必須手工查詢
select local_tran_id||||state,1 from dba_2pc_pending
來查詢發生錯誤的事務,然後進行強制提交或強制回滾
架構的問題先不說,單單是因為一次搬遷,就導致大量的問題。那必須要找到問題,應用才能恢復正常。
問題可能出在網路防火牆,為了降低防火牆的資源利用率,網路部門設定瞭如果連線超過半小時,則斷開該連線。透過標準程式,已經可以確認此問題。但是,DBLINK是否使用長連線?超時時間是多少?
這裡需要引入一個Oralce的功能DCD,具體內容請參見:
Resolving Problems with Connection Idle Timeout With Firewall [ID 257650.1]
Dead Connection Detection (DCD) Explained [ID 151972.1]
其實,就是在sqlnet.ora檔案中配置:
sqlnet.expire_time = 10
數字單位為分鐘,上面的配置即空閒10分鐘後檢測連線狀態,這個檢測是從伺服器端主動發起,傳送一個10位元組的空包。
配置好了,如何測試呢?可以按照Oralce的文件
How to Check if Dead Connection Detection (DCD) is Enabled in 9i ,10g and 11g [ID 395505.1]
來檢測,當然,也可以用簡單的方式來檢測,這裡我用tcpdump來從網路層面檢測資料庫傳遞情況
tcpdump host 10.199.81.33(伺服器IP)
14:14:51.592696 IP 10.199.81.33.ncube-lm > BJS1-012.13179: P 4066:4076(10) ack 3491 win 154
14:14:51.592739 IP BJS1-012.13179 > 10.199.81.33.ncube-lm: . ack 4076 win 176
14:24:51.660498 IP 10.199.81.33.ncube-lm > BJS1-012.13179: P 4076:4086(10) ack 3491 win 154
14:24:51.660540 IP BJS1-012.13179 > 10.199.81.33.ncube-lm: . ack 4086 win 176
14:34:51.736100 IP 10.199.81.33.ncube-lm > BJS1-012.13179: P 4086:4096(10) ack 3491 win 154
14:34:51.736152 IP BJS1-012.13179 > 10.199.81.33.ncube-lm: . ack 4096 win 176
從這幾行可以看出,每隔10分鐘,伺服器端主動傳送探測包,這樣就可以讓連線處於活動狀態,避免被防火牆強制斷開。
[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19423/viewspace-1060271/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 0120ORACLE的Dead Connection DetectionOracle
- 使用cman(Connection Manager)穿越防火牆訪問oracle防火牆Oracle
- A discussion of Dead Connection Detection, Resource Limits, V$SESSION, V$PROCESS and OS processesMITSession
- ORACLE RAC開啟防火牆Oracle防火牆
- mysql dead lock detectionMySql
- win10防火牆如何關閉 筆記本win10防火牆強制關閉Win10防火牆筆記
- 企業資料流的防火牆和熔斷機制防火牆
- 使用防火牆讓你的 Linux 更加強大防火牆Linux
- AutoRun病毒防火牆如何使用 AutoRun病毒防火牆教程防火牆
- Windows server 防火牆開放oracle監聽埠WindowsServer防火牆Oracle
- Oracle穿越防火牆設定Oracle防火牆
- 在防火牆上開發Oracle埠的問題防火牆Oracle
- Windows上Oracle開放防火牆埠問題(轉)WindowsOracle防火牆
- Linux 防火牆配置使用Linux防火牆
- 防火牆啟動被拒絕解決方案防火牆
- WAb防火牆與傳統防火牆防火牆
- 選購防火牆時應避免的4個誤區(轉)防火牆
- CentOS8檢視防火牆狀態,開啟/關閉防火牆CentOS防火牆
- firefox被win10防火牆阻止怎麼關閉_firefox被win10防火牆阻止在哪裡設定FirefoxWin10防火牆
- Iptables防火牆規則使用梳理防火牆
- CentOS 7 開放防火牆埠CentOS防火牆
- 開源防火牆解決方案防火牆
- centos 開啟防火牆指定埠CentOS防火牆
- CentOS下開放防火牆埠CentOS防火牆
- 防火牆NAT轉換的一次診斷防火牆
- Ubuntu系統中防火牆的使用和開放埠Ubuntu防火牆
- 資料庫防火牆的阻斷方式:行為阻斷或者Session阻斷資料庫防火牆Session
- 防火牆(firewall)防火牆
- SQL防火牆SQL防火牆
- 防火牆IPTABLES防火牆
- RouterOS防火牆ROS防火牆
- 防火牆入侵於檢測——————3、思科 PIX 防火牆和 ASA 防火牆產品線防火牆
- linux關閉防火牆命令 linux防火牆關閉和開啟命令Linux防火牆
- 用Oracle跟蹤診斷掛起的會話Oracle會話
- 軟體防火牆與硬體防火牆詳解防火牆
- 全面分析防火牆及防火牆的滲透(轉)防火牆
- Ubuntu 下使用 UFW 設定防火牆Ubuntu防火牆
- linux防火牆使用以及配置Linux防火牆