是否可以从实体管理器获取HikariCP池大小?

时间:2018-01-09 12:14:33

标签: hibernate jpa hikaricp

我有一个JPA EntityManagerFactory,它可以连接到HikariCP连接池,从中可以得到一个EntityManager,Session,Connection等。有什么办法可以通过编程方式找出Hikari连接的最大池大小池?

从debuger中,我可以看到Connection对象是HikariProxyConnection的一个实例,它有一个对PoolEntry对象的内部引用,我假设它会链接回池,它将知道最大池大小。但PoolEntry无法公开访问。

所以,鉴于此代码:

    EntityManagerFactory factory = Persistence.createEntityManagerFactory("PersistenceUnitName", new HashMap());
EntityManager entityManager = factory.createEntityManager();

这个persistence.xml:

    <persistence-unit name="DbNamr">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    <class>...</class>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL95Dialect"/>
        <property name="hibernate.connection.provider_class" value="org.hibernate.hikaricp.internal.HikariCPConnectionProvider"/>
        <property name="hibernate.auth" value="Container" />
        <property name="hibernate.hikari.connectionTimeout" value="300000" />
        <property name="hibernate.hikari.maximumPoolSize" value="5" />
        <property name="hibernate.hikari.minimumIdle" value="1" />
        <property name="hibernate.hikari.idleTimeout" value="60000" />
        <property name="hibernate.hikari.dataSourceClassName" value="org.postgresql.ds.PGSimpleDataSource" />
    </properties>
</persistence-unit>

我是否有任何编程方式可以找出最大池大小为5?

0 个答案:

没有答案