2013-02-27 14 views
15

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

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

+0

persistence.xmlで指定したトランザクションタイプはどれですか? – MRalwasser

答えて

11

defaulデータソースを使用しない場合のEclipseLinkの接続プーリングは、最小/最大32接続のプールで、初期接続数は1です。したがって、各トランザクションはプールされた接続を使用し、接続/切断は行いません。オプションで、デフォルトの接続プールがConnectionPoolで定義されているのinit /最小/最大のデフォルトを使用して、ServerSessionのコンストラクタで作成されていることを見ることができ、そして:

+0

persistence.xmlファイルにプーリングするための参照がなくても、eclipselinkが接続プーリングをサポートしていると言っていますか? – user1796571

+0

はい、デフォルト(32の接続のプール)です。 – James

+1

ここに設定プロパティがあります:http://eclipse.org/eclipselink/documentation/2.4/jpa/extensions/p_connection_pool.htm – eskatos

4

アプリケーションサーバー(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> 

あなたは、あなたがプールを設定しない場合、アプリケーションが永続性を管理し使用して、アプリケーション・サーバ(Java SEの)なしのEclipseLinkを使用している場合は

は、 Internal Connection Poolingが使用されます、例えば:

<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> 
+0

Appサーバーとは、EEまたはSEを意味しますか?したがって、接続プーリングが定義されていないときは、すべてのtxに対して接続が確立されますか? Spring/Tomcatを使ったBean管理の持続性はどうですか? – user1796571

+3

Eclipselinkは引き続き接続プールを使用しますが、データソースを使用する代わりにプールを維持するだけです。ここでは、Eclipselinkの内部プールについて詳しく説明しています。http://wiki.eclipse.org/Configuring_an_Internal_Connection_Pool_(ELUG)および使用するjpaパーシスタンスのプロパティは、ここに掲載されています。http://wiki.eclipse.org/EclipseLink/Features/JPA#EntityManagerFactory_Properties – Chris

1
<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"/> 
+0

1/32/32 Jamesが言ったように正しいと思われる(このスレッドの私の答えで引用したソースコードを参照)。 –

0

ちょうど上記ジェームズの答えのためのコードソースを提供したかったですプロパティを介して開発者によってオーバーライド/調整されたEntityManagerSetupImpl

関連する問題