![](/img/trans.png)
[英]Tomcat Connection Pool configuration: attributes settings. Examples and suggestions
[英]Understanding the Tomcat Connection Pool settings
我想知道我對Tomcat連接池生命周期的理解是否正確。
例如,我有以下設置:
<Resource name="jdbc/appname" auth="Container"
type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="1000"
username="username"
initialSize = "5"
password="password"
driverClassName="jdbc.driver.name"
url="jdbc:protocol://hostname:port/dbname"/>
當我的應用程序部署時,它有5個連接(初始大小),當所有這些連接忙於tomcat創建並添加到池中的新連接(6)時,這個新的連接限制是maxActive(100),當101個請求到來時,tomcat將等待1000毫秒(maxWait),然后拋出TimeOutException。 在某段時間內,只有40個連接正忙,當其中一個連接空閑時,它將被銷毀,因為池幾乎有30個(maxIdle)空閑連接。 我對嗎?
如果我是,那么將maxIdle和maxActive設置為不同值的目的是什么?
在某段時間內,只有40個連接正忙,當其中一個連接空閑時,它將被銷毀,因為池幾乎有30個(maxIdle)空閑連接。
當40個連接忙,其中一個空閑時,它變為空閑狀態 ,導致以下狀態:
39 busy connections
1 idle connection
maxActive
設置指定在任何給定時間在任何狀態下可能存在的最大連接數。 maxIdle
設置更具體,僅確定最大空閑連接數。
假設maxActive
設置為100並且在某個點上所有這些連接都存在並且正忙,那么如果幾分鍾后它們都是空閑的,那么你不想保留這100個空閑連接,因為它們沒有做任何事情除了消耗資源。
這是maxIdle
設置發揮作用的地方。 它告訴連接池不能容納超過X個空閑連接。 如果設置為30,則丟棄100個空閑連接中的70個連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.