MySQL>show variables like '%timeout'; 打印結果如下: +----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| connect_timeout | 5 |
| delayed_insert_timeout | 300 |
| interactive_timeout | 28800 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| wait_timeout | 28800 |
+----------------------------+-------+
interactive_timeout 需在mysql_connect()設置CLIENT_INTERACTIVE選項後起作用,並被賦值為wait_timeout;MySQL>set wait_timeout = 10; 對當前交互鏈接有效;
MySQL>set interactive_timeout = 10; 對後續起的交互鏈接有效;該超時時間單位是秒,從變量從上次SQL執行後算起;當前空閒若超過該時間,則也會被強制斷開。
http://blog.sina.com.cn/s/blog_473d5bba0100051j.Html
MySQL裡關於timeout的幾個變量背忘(2006-07-23 21:16:52)
分類:專業相關
想把mysql的連接斷開時間改長一些,以前只改了connect_timeout變量的值,還不夠。現在又改了這兩個,不知夠不夠。不夠再繼續查吧。 interactive_timeout 服務器在關閉連接前在一個交互連接上等待行動的秒數。一個交互的客戶被定義為對 mysql_real_connect()使用 CLIENT_INTERACTIVE 選項的客戶,默認數值是28800。 wait_timeout 服務器在關閉連接之前在一個連接上等待行動的秒數,默認數值是28800,即如果沒有事情發生,服務器在 8個小時後關閉連接。 在你的MySQL中配置好wait-timeout參數 2007-09-19 01:11:28 http://www.potu.com/193938/9276848 在MySQL的通用配置文件中,一般沒有wait-timeout這個配置項,可能得手工添加:
我對wait-timeout這個參數的理解:MySQL客戶端的數據庫連接閒置最大時間值。
說得比較通俗一點,就是當你的MySQL連接閒置超過一定時間後將會被強行關閉。MySQL默認的wait-timeout值為8個小時
設置這個值是非常有意義的,比如你的網站有大量的MySQL鏈接請求(每個MySQL連接都是要內存資源開銷的),由於你的程序的原因有大量的連接請求空閒啥事也不干,白白占用內存資源,或者導致MySQL超過最大連接數從來無法新建連接導致“Too many connections”的錯誤。在設置之前你可以查看一下你的MYSQL的狀態(可用show processlist),如果你發現你的MYSQL中有大量的Sleep進程,哪麼你真的需要設置你的wait-timeout了。如果你設置 wait-timeout=10,MySQL中的所有Sleep線程最多只能“睡”10秒,之後就被強行關閉了。
這對於一些負荷比較重的MySQL還是比較有用的
Hibernate中配置C3P0連接池 http://www.yuloo.com/jsjks/JSj-Java/2008-12-11/166978.Html
作者: 發布時間:2008-12-11 09:42:09 來源:
Hibernate自帶的連接池算法相當不成熟。 它只是為了讓你快些上手,並不適合用於產品系統或性能測試中。出於最佳性能和穩定性考慮你應該使用第三方的連接池。只需要用特定連接池的設置替換 hibernate.connection.pool_size即可。這將關閉Hibernate自帶的連接池。 例如, 你可能會想用C3P0.
C3P0是一個隨Hibernate一同分發的開源的JDBC連接池, 它位於lib目錄下。如果你設置了hibernate.c3p0.*相關的屬性, Hibernate將使用 C3P0ConnectionProvider來緩存JDBC連接。 如果你更原意使用Proxool, 請參考發行包中的hibernate.propertIEs並到Hibernate網站獲取更多的信息。
這是一個使用C3P0的hibernate.propertIEs樣例文件(來自Hibernate包中etc目錄下):
###########################
### C3P0 Connection Pool###
###########################
#hibernate.c3p0.max_size 2
#hibernate.c3p0.min_size 2
#hibernate.c3p0.timeout 5000
#
hibernate.c3p0.max_statements 100
#hibernate.c3p0.idle_test_period 3000
#hibernate.c3p0.acquire_increment 2
#hibernate.c3p0.validate false
在hibernate.cfg.XML文件裡面加入如下的配置:
<!-- 最大連接數 -->
<property name="hibernate.c3p0.max_size">20</property>
<!-- 最小連接數 -->
<property name="hibernate.c3p0.min_size">5</property>
<!-- 獲得連接的超時時間,如果超過這個時間,會拋出異常,單位毫秒 -->
<property name="hibernate.c3p0.timeout">120</property>
<!-- 最大的PreparedStatement的數量 -->
<property name="
hibernate.c3p0.max_statements">100</property>
<!-- 每隔120秒檢查連接池裡的空閒連接 ,單位是秒-->
<property name="hibernate.c3p0.idle_test_period">120</property>
<!-- 當連接池裡面的連接用完的時候,C3P0一下獲取的新的連接數 -->
<property name="hibernate.c3p0.acquire_increment">2</property>
<!-- 每次都驗證連接是否可用 -->
<property name="hibernate.c3p0.validate">true</property>
完整示例如下(hibernate.propertIEs):
hibernate.connection.driver_class = org.postgresql.Driver
hibernate.connection.url = jdbc:postgresql://localhost/mydatabase
hibernate.connection.username = myuser
hibernate.connection.passWord = secret
hibernate.c3p0.min_size=5
hibernate.c3p0.max_size=20
hibernate.c3p0.timeout=1800
hibernate.c3p0.max_statements=50
hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect