У меня есть Java-приложение, которое использует hibernate для отображения O / R, а также я использую пул соединений c3p0, который поставляется вместе с hibernate.БД - это Oracle.
Это в моем hibernate.cfg.xml
:
<property name="hibernate.c3p0.min_size">3</property>
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.max_statements">20</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.idleTestPeriod">120</property>
Вот так я получаю сеанс гибернации:
public class HibernateUtil {
private static Logger log = Logger.getLogger(HibernateUtil.class);
private static final SessionFactory sessionFactory;
private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
static {
try {
// Create the SessionFactory from hibernate.cfg.xml
sessionFactory = new Configuration().configure(CONFIG_FILE_LOCATION).buildSessionFactory();
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
log.fatal("Initial SessionFactory creation failed." + ex.getMessage());
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Но когда я запускаю SELECT * FROM V$SESSION WHERE machine='xxx';
в Oracleколичество подключений может достигать 20, что превышает max_size
.
Максимальное количество подключений не работает в среде Linux, но работает в Unix и Windows.Любая настройка в Linux, которую нужно настроить?
Я также подозреваю, что где-то есть кеш приложения, как я ранее установил max_size
из 20. Я запускаю приложение в Tomcat 5.5.Но я не знаю такого кеша приложений в Tomcat.
Другая информация: я использую Linux 2.6.9-34.ELsmp.Red Hat Enterprise Linux AS release 4 (Nahant Update 3)
Спасибо.