簡體   English   中英

連接池Tomcat中的Scanario

[英]Connection Pooling Scanario in Tomcat

我試圖了解數據庫連接池中的特定方案。 任何關於此的指示都將非常有用。

設置

  1. Tomcat網絡服務器
  2. MySQL服務器(最大連接數= 18)

配置webapp
webapp的context.xml具有數據庫連接池的以下參數:

<Context path=...
   <Resource name=... maxActive="20" maxIdle="18" 
    removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
    validationQuery="select 1" testOnBorrow="true"... />
</Context>

場景
webapp打開並關閉了很多連接。 但是,當webapp不再與dB進行交易時,池保持其中的18個(作為maxIdle = 18)。
現在,在這個時間點,單獨的Pure Java獨立應用程序請求數據庫連接。 MySQL服務器將如何響應?

  1. 它會通過關閉池保持的空閑連接來提供連接嗎?
  2. 它會拒絕連接,因為最大數量的dB連接已經打開(由池保存)

如果我不清楚這個場景,請告訴我,我會進一步澄清。

干杯,羅希特

數據庫服務器不知道打開的連接是否來自池。 對於DB服務器,它只是一個開放的連接,它永遠不會主動關閉它。

池的連接限制與數據庫的總連接限制無關。 它只是該特定連接池的限制。 只要尚未達到為服務器配置的總限制,其他應用程序就能夠分配連接。

當然,讓連接池保持大量(空閑)連接打開將意味着您更快地達到配置的服務器限制(MySQL的默認值為100)。

暫無
暫無

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

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