2017-01-22 28 views
2

私はeclipselink 2.6.3を使用しており、Eclipselinkによって接続プールが作成され使用されているかどうかを正確に知る必要があります。Eclipselink:接続プールが使用されているかどうかを確認する方法

persistence.xmlの

<property name="eclipselink.connection-pool.default.initial" value="5" /> 
<property name="eclipselink.connection-pool.default.min" value="10" /> 
<property name="eclipselink.connection-pool.default.max" value="10" /> 
<property name="eclipselink.jdbc.cache-statements" value="true" /> 

はしかし、ログは両方のケースで同じであれば、私は次のように設定を持っている - 私がいないとき、私は、これらの設定を使用したとき:

[EL Finer]: connection: 2017-01-22 19:39:03.208--ServerSession(1440738283)--client acquired: 1177072083 
[EL Finer]: transaction: 2017-01-22 19:39:03.218--ClientSession(1177072083)--acquire unit of work: 1482166692 
[EL Finest]: query: 2017-01-22 19:39:03.239--UnitOfWork(1482166692)--Execute query ReadObjectQuery(...) 
[EL Finest]: connection: 2017-01-22 19:39:03.243--ServerSession(1440738283)--Connection(2008547236)--Connection acquired from connection pool [read]. 
[EL Finest]: connection: 2017-01-22 19:39:03.243--ServerSession(1440738283)--reconnecting to external connection pool 
[EL Fine]: sql: 2017-01-22 19:39:03.244--ServerSession(1440738283)--Connection(1590792382)-- SELECT ... 
[EL Finest]: connection: 2017-01-22 19:39:03.25--ServerSession(1440738283)--Connection(2008547236)--Connection released to connection pool [read]. 
[EL Finer]: transaction: 2017-01-22 19:39:03.257--UnitOfWork(1482166692)--release unit of work 
[EL Finer]: connection: 2017-01-22 19:39:03.257--ClientSession(1177072083)--client released 

誰も接続プールの使用をチェックする方法を言うことができます。

+0

実際のJDBCドライバ(Oracle、SqlServer、mysql)から、プールから返されたDataSourceクラス(インタフェース)は実際は異なる実装(DBCP、JBosssパッケージなど) –

答えて

1

EclipseLinkは2つのモードで動作します。 JDBC URLとプールプロパティを指定すると、EclipseLInkは接続プールを作成して管理します。プールの実装はorg.eclipse.persistence.sessions.server.ConnectionPoolです。代替方法は、JNDI参照を介して、または問題のあるデータソースを提供することです。 2番目のオプションは、サーバーが接続プールを管理するアプリケーションサーバーでよく使用され、新しい接続が必要なときはいつでもEclipseLinkがDataSourceに尋ねます。

接続がプールされているかどうかを確認したい場合は、ほとんどの場合、データベース側から行う必要があります。すべてのデータベースを使用すると、接続のリストとそのID、および現在実行中のクエリを表示できます。これにより、接続がプールされているかどうか、または新しい接続が常に作成されているかどうかを確認できます。また、org.eclipse.persistence.sessions.server.ConnectionPool#acquireConnection()にブレークポイントを設定し、コードをステップ実行することもできます。

関連する問題