簡體   English   中英

為什么連接沒有超時?

[英]Why are the connections not timing out?

使用SQLServer 2008數據庫在Websphere Application Server 7上運行我的應用程序。 當SQLServer為100%時,每個連接都掛起並填滿連接池。 這導致每個線程也掛起。 10分鍾后,日志填滿了這個:

00000042 ThreadMonitor W   WSVR0605W: Thread "WebContainer : 11" (00000049) has been active for 742352 milliseconds and may be hung.  There is/are 14 thread(s) in total in the server that may be hung.

連接池使用JTDS,超時設置為300秒。

我會壓縮300sec后,每個連接都會拋出一個異常,然后讓所有的線程都掛起來?

為什么連接會在300秒后拋出異常? 如果連接對象正在使用中,它將繼續處於活動狀態。

還要指定您所指的確切超時屬性?

以下是連接超時的定義:

此值指示當空閑池中沒有可用連接且無法創建新連接時連接請求等待的秒數。 這通常是因為已達到特定連接池中的連接的最大值。

例如,如果“連接超時”設置為300,並且最大連接數都在使用中,則池管理器將等待300秒以使物理連接可用。 如果在此時間內沒有物理連接,則池管理器會啟動ConnectionWaitTimeout異常。

因此,它不會使“所有線程都掛起”,它只會在300秒后告訴您池中沒有空閑連接,所以它不能給你一個。

管理事務可以保持活動多長時間的參數稱為事務超時 ,之后事務被標記為回滾。 但即使這個超時也沒有取消使用該連接的線程,它只將其標記為僅回滾。 為了釋放連接,您必須使用第三方工具(ITCAM可以取消服務器中的任何線程),或終止/刪除數據庫端的連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM