Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa eclipselink连接池_Jpa_Jdbc_Eclipselink_Connection Pooling - Fatal编程技术网

Jpa eclipselink连接池

Jpa eclipselink连接池,jpa,jdbc,eclipselink,connection-pooling,Jpa,Jdbc,Eclipselink,Connection Pooling,如果persistence.xml for eclipse链接中没有定义连接池,那么默认行为是什么 它会为每个事务打开和关闭JDBC连接吗?它会创建一个带有一些默认值的连接池吗 如果使用应用服务器(Java EE)和容器管理的持久性,则需要在应用服务器的管理控制台中设置连接池,而不需要在persistence.xml中设置池属性,例如: <persistence-unit name="myPU" transaction-type="JTA"> <jta-data-sourc

如果persistence.xml for eclipse链接中没有定义连接池,那么默认行为是什么


它会为每个事务打开和关闭JDBC连接吗?它会创建一个带有一些默认值的连接池吗

如果使用应用服务器(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>

jdbc_我的_数据源
假的
没有一个
如果您使用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>

当不使用数据源时,EclipseLink的默认连接池为最小/最大32个连接池,初始连接数为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"/>

只是想为上面James的答案提供代码源:您可以看到,默认连接池是在的构造函数中创建的,使用中定义的init/min/max默认值,并且可以选择由开发人员通过中的属性覆盖/调整。

当您指的是App server时,您是指EE还是SE?那么,当没有定义连接池时,它是每个发送的连接吗?那么使用Spring/Tomcat的bean管理的持久性呢?Eclipselink仍然使用连接池,只是它维护连接池而不是使用数据源。Eclipselink内部池在这里有所描述,要使用的jpa持久性属性在这里发布,您在persistence.xml中指定了哪种事务类型?您是说Eclipselink支持连接池,即使persistence.xml文件中没有池的引用?是的,这是默认值(32个连接池)这里是配置属性:我不明白这一点。我没有配置任何东西。如果我在很短的时间内启动了很多事务,netstation会在time\u WAIT状态下显示相同数量的TCP连接。如果我假设你是对的,它不应该限制在总共32个连接吗?正如James所说的,是1/32/32吗耳朵正确(请参阅我在本线程的答案中引用的源代码。)