Объединение пулов eclipselink
Если пул соединений не определен в файле persistence.xml для eclipse, каково поведение по умолчанию?
Будет ли он открывать и закрывать соединение JDBC для каждой транзакции? Будет ли он создавать пул соединений с некоторыми значениями по умолчанию?
Ответы
Ответ 1
Пул соединений по умолчанию для EclipseLink, когда не используется источник данных, представляет собой пул с минимальными/максимальными 32 соединениями с начальным 1 соединением. Поэтому каждая транзакция будет использовать объединенное соединение, а не соединение/разъединение.
Ответ 2
Если вы используете сервер приложений (Java EE) и стойкость к управлению контейнером, вам необходимо настроить пул соединений в консоли администрирования сервера приложений и не нужно устанавливать свойства объединения в постоянстве. xml, например:
<persistence-unit name="myPU" transaction-type="JTA">
<jta-data-source>jdbc_my_DataSource</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<shared-cache-mode>NONE</shared-cache-mode>
<properties/>
</persistence-unit>
Если вы используете EclipseLink без сервера приложений (Java SE), используя устойчивое управление приложениями, то, если вы не настроите объединение, Внутренний пул соединений, например:
<persistence-unit name="DemoPU" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:xe"/>
<property name="javax.persistence.jdbc.user" value="myuser"/>
<property name="javax.persistence.jdbc.password" value="mypassword"/>
<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/>
</properties>
</persistence-unit>
Ответ 3
<property name="eclipselink.connection-pool.default.initial" value="1"/>
<property name="eclipselink.connection-pool.default.min" value="64"/>
<property name="eclipselink.connection-pool.default.max" value="64"/>
Ответ 4
Просто хотел предоставить источник кода для ответа Джеймса выше: вы можете видеть, что пул соединений по умолчанию создается в конструкторах ServerSession, используя значения по умолчанию init/min/max, определенные в ConnectionPool, и опционально переопределенные/скорректированные разработчиком через свойства в EntityManagerSetupImpl.