18

eclipseリンクのpersistence.xmlで接続プールが定義されていない場合、デフォルトの動作は何ですか?

トランザクションごとにJDBC接続を開いたり閉じたりしますか?いくつかのデフォルトで接続プールを作成しますか?

4

4 に答える 4

13

データソースを使用しない場合のEclipseLinkのデフォルトの接続プールは、最小/最大32接続のプールであり、最初は1接続です。したがって、各トランザクションはプールされた接続を使用し、接続/切断は使用しません。

于 2013-02-28T15:28:53.023 に答える
7

アプリケーションサーバー(Java EE)とコンテナ管理の永続性を使用する場合は、アプリケーションサーバーの管理コンソールで接続プールを設定する必要があります。たとえば、persistence.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>
于 2013-02-27T20:00:07.110 に答える
2
<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"/>
于 2016-03-29T13:21:18.080 に答える
0

上記のJamesの回答のコードソースを提供したかっただけです。デフォルトの接続プールは、 ConnectionPoolで定義されたinit / min / maxのデフォルトを使用して、ServerSessionのコンストラクターで作成され、オプションで開発者によってオーバーライド/調整されます。EntityManagerSetupImplのプロパティ。

于 2016-08-01T18:13:20.567 に答える