проблема пула соединений гибернации - PullRequest
1 голос
/ 17 февраля 2012

За свою жизнь я не могу избавиться от предупреждения о гибернации:

849 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)

849 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20

Я просмотрел множество других подобных сообщений, но ничто не помогает.Я покажу свою конфигурацию, и, возможно, кто-то увидит, что я не могу.

Я пытаюсь использовать C3P0 в качестве основы пула соединений.У меня есть файл c3p0-0.9.1.jar в classpath (с другими банками гибернации).

Вот фрагмент моего файла persistence.xml:

<property name="connection.provider_class"
             value="org.hibernate.connection.C3P0ConnectionProvider" /> 
        <property name="hibernate.c3p0.acquire_increment" value="1" />
        <property name="hibernate.c3p0.max_size"  value="20" />
        <property name="hibernate.c3p0.min_size"  value="5" />
        <property name="hibernate.c3p0.timeout"   value="5000" />
        <property name="hibernate.c3p0.max_statements" value="0" />
        <property name="hibernate.c3p0.acquire_increment" value="5" />
        <property name="hibernate.c3p0.idle_test_period" value="300" />
        <property name="hibernate.c3p0.validate" value="false" />

, который я используюJPA аннотации на мои сущности Pojos.Все это работает отлично, то есть когда я запускаю свое приложение, оно работает нормально, кажется, что CRUD-операции работают нормально и т. Д. (Это приложение на чистом Java. Оно не выполняется в AppServer, таком как Tomcat или JBoss).

Но меня очень беспокоит, что я продолжаю видеть предупреждение «Использование встроенного в пул подключений Hibernate» и никаких признаков того, что C3P0 работает.Например, мой вывод log4j показывает тонны вывода org.hibernate при запуске, но никакого вывода C3P0 вообще.Еще один признак того, что он не используется, я бы подумал.

В моем приложении первое, что я делаю, - это создание статического EntityManagerFactory (который используется внутренним пулом потоков; каждый рабочий поток использует его длясоздать EntityManager для выполнения операций CRUD с одновременными командами и т. д.).В производственной среде это приложение будет испытывать большие всплески одновременной обработки БД, поэтому очень важно, чтобы я правильно понял пул соединений с БД.

Насколько я понимаю, создание EntityManagerFactory - это все, чтонеобходим для запуска механизма пула соединений.Может быть, это неправильно?Если это так, что должен сделать в приложении для запуска C3P0?

Приветствие / критическое приветствие.

заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...