2012-07-05 180 views
2

我正在用Java構建套接字服務器。每個新的套接字連接都會啓動一個需要連接到MySQL服務器的新線程。Java連接池最大大小

目前我有一個每個線程的新連接,但想更改爲連接池,以便我可以更有效地回收連接。

但是,此池的默認大小似乎是5個連接。我目前正在處理100多個客戶端,5個連接將不夠用。我發現的所有文檔都提到了不同的服務器(Tomcat,JBoss,GlassFish等)以及如何將值放入其XML配置文件中。

由於我沒有使用任何這些,所以我找不到如何設置max pool size值。我也想避免這個項目的第三方庫(比如Apache Commons)。

一個例外,那將是Java的MySQL的連接器(在這裏找到:http://dev.mysql.com/usingmysql/java/

唯一可能的參考,我發現是env.put(JNDIPooledSource.MAX_POOL_SIZE, 500);但我不認爲這是正確的。

感謝您的幫助。

+0

很明顯你正在談論的java.sql.Connection對象的另一種選擇,對不對?你目前使用的是什麼樣的池化機制或庫? – Arne 2012-07-05 22:35:14

+0

是的,我試圖在'javax.naming'和'javax.sql'中分別使用'Context'和'DataSource'類來創建一個池,但似乎無法設置它的大小。 – Andre 2012-07-05 22:42:40

+0

我很困惑:如果你不使用上面提到的一些服務器,這個DataSource來自哪裏?它必須在那裏配置。 – Arne 2012-07-06 00:25:23

回答

1

MySQL connector/J沒有附帶Pooled DataSource實現。您需要使用第三方軟件,或者使用您的容器附帶的軟件。我相信tomcat開箱即用了commons-dbcp。

C3P0是具有已建成集中在直接施工的數據源。

+0

c3p0是我最終使用的,因爲獨立的池式數據源在創建自己的數據源時似乎是不可能的。謝謝。 – Andre 2012-07-06 01:17:34