hibernate配置中timeout与idle_test_period有什么区别

在用hibernate属性文件配置C3P0连接池的时候,hibernate.c3p0.timeout与hibernate.c3p0.idle_test_period这两个属性各是什么意思,有何区别?
Hiberante实战 这本书里是这样写的:
hibernate.c3p0.timeout:You specify the timeout period after which an idle connection is removed from the pool.
hibernate.c3p0.idle_test_period: This is the idle time in seconds before a connection is automatically validated.

区别:hibernate.c3p0.timeout表示连接对象多长时间[color=red]应该[/color]被销毁,
注意,是”应该“,但是谁来销毁它呢,需要一个线程按照hibernate.c3p0.idle_test_period设定的时间间隔去自动校验这些链接对象并销毁timeout的

hibernate.c3p0.timeout,这个表示连接池中的连接对象在多长时间没有使用过后,就应该被销毁
hibernate.c3p0.idle_test_period ,这个表示连接池检测线程多长时间检测一次池内的所有链接对象是否超时
注意:连接对象自己不会把自己从连接池中移除,而是专门有一个线程按照一定的时间间隔(hibernate.c3p0.idle_test_period )来做这件事,这个线程通过比较连接对象最后一次被使用时间和当前时间的时间差来和hibernate.c3p0.timeout做对比,进而决定是否销毁这个连接对象。

hibernate.c3p0.idle_test_period: This is the idle time in seconds before a connection is automatically validated
这句这么翻译:这是一个表示连接对象因该多长时间被自动校验的时间段,以秒为单位。