DB Connection Pool Problem

View: New views
3 Messages — Rating Filter:   Alert me  

DB Connection Pool Problem

by mesutso :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

In my application, I used eclipselink(2.0.0.v20090731-r4765) jpa in java sdk platform with mysql 5.1.37. My application use db connection pool provided by eclipselink. I encountered with a problem under heavy traffic that cause to some of my db connections is hanging or not closed properly.

First application throws a null pointer exception while it tries to release a connection.

java.lang.NullPointerException
        at org.eclipse.persistence.sessions.server.ServerSession.setCheckConnections(ServerSession.java:776)
        at org.eclipse.persistence.sessions.server.ConnectionPool.releaseConnection(ConnectionPool.java:268)
        at org.eclipse.persistence.sessions.server.ServerSession.releaseClientSession(ServerSession.java:728)
        at org.eclipse.persistence.sessions.server.ClientSession.release(ClientSession.java:465)
        at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commitInternal(EntityTransactionImpl.java:99)
        at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:63)

After that it tries to use same db connection and throws another exception related to DB communication failure.(I am not sure about this, it is just my opinion.)


Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.0.v20090731-r4765): org.eclipse.persistence.exceptions.DatabaseExce
ption
@


Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.0.v20090731-r4765): org.eclipse.persistence.exceptions.DatabaseExce
ption
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection clo
sed.Connection was implicitly closed due to underlying exception/error:


** BEGIN NESTED EXCEPTION **

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
MESSAGE: Communications link failure

The last packet successfully received from the server was 1,237 milliseconds ago.  The last packet sent successfully to the server w
as 1,236 milliseconds ago.

STACKTRACE:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 1,237 milliseconds ago.  The last packet sent successfully to the server w
as 1,236 milliseconds ago.
        at sun.reflect.GeneratedConstructorAccessor32.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3030)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2916)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3459)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1957)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2107)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2648)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2086)
        at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2237)
        at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:876)
        at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:589)
        at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:517)
        at org.eclipse.persistence.internal.sessions.ExclusiveIsolatedClientSession.executeCall(ExclusiveIsolatedClientSession.java:
63)
        at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:205)
        at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:191)
        at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectOneRow(DatasourceCallQueryMechanism.java:619)
        at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRowFromTable(ExpressionQueryMechanism.java:256
4)
        at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRow(ExpressionQueryMechanism.java:2535)
        at org.eclipse.persistence.queries.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:431)
        at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:992)
        at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:670)
        at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:953)
        at org.eclipse.persistence.queries.ReadObjectQuery.execute(ReadObjectQuery.java:399)
        at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1016)
        at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2864)
        at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1208)
        at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1190)
        at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1150)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.executeQuery(EntityManagerImpl.java:642)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.findInternal(EntityManagerImpl.java:586)

        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.executeQuery(EntityManagerImpl.java:642)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.findInternal(EntityManagerImpl.java:586)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.find(EntityManagerImpl.java:490)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.find(EntityManagerImpl.java:369)
        at tr.com.argela.tmh.cache.db.dao.SubscriberProfileDao.findByPk(SubscriberProfileDao.java:21)
        at tr.com.argela.tmh.cache.core.http.HttpRequestHelper.saveResponse2Cache(HttpRequestHelper.java:249)
        at tr.com.argela.tmh.cache.core.http.HttpRequestHelper.processHttpMessage(HttpRequestHelper.java:125)
        at tr.com.argela.tmh.cache.core.http.server.MessageAcceptor.doJob(MessageAcceptor.java:70)
        at tr.com.argela.tmh.cache.core.http.server.MessageAcceptor.doPost(MessageAcceptor.java:35)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:521)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:436)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:118)
        at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:179)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:371)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:864)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:116)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:243)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:112)
        at org.eclipse.jetty.server.Server.handle(Server.java:337)
        at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:562)
        at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1000)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:736)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:209)
        at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:415)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:437)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:435)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(SocketInputStream.java:168)
        at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
        at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
        at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
        at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2472)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2927)
        ... 56 more


** END NESTED EXCEPTION **


I made some googling but did not find any information related to that problem.
And one another question is;
     * How can I provide another db connection pool to eclipselink while not using eclipselink in an application server platform ?
     * How can I tell to eclipselink db connection pool to test the db connection before using it ?

Thanks for comments and suggestions that would help to fix the problem.
Regards,

Mesut SOYTURK.
Argela Technologies

Re: DB Connection Pool Problem

by James Sutherland :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Please log a bug for the null-pointer.  The code in ServerSession should be checking if the SequenceServer is null.  A workaround would be to define a descriptor that uses sequencing.

You can use a DataSource with EclipseLink either through registering one in JNDI, or by passing one directly in code either using the "javax.persistence.nonJtaDataSource" persistence unit property, or using a SessionCustomizer to set one on the Session's DatabaseLogin, JNDIConnector.

mesutso wrote:
Hi,

In my application, I used eclipselink(2.0.0.v20090731-r4765) jpa in java sdk platform with mysql 5.1.37. My application use db connection pool provided by eclipselink. I encountered with a problem under heavy traffic that cause to some of my db connections is hanging or not closed properly.

First application throws a null pointer exception while it tries to release a connection.

java.lang.NullPointerException
        at org.eclipse.persistence.sessions.server.ServerSession.setCheckConnections(ServerSession.java:776)
        at org.eclipse.persistence.sessions.server.ConnectionPool.releaseConnection(ConnectionPool.java:268)
        at org.eclipse.persistence.sessions.server.ServerSession.releaseClientSession(ServerSession.java:728)
        at org.eclipse.persistence.sessions.server.ClientSession.release(ClientSession.java:465)
        at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commitInternal(EntityTransactionImpl.java:99)
        at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:63)

After that it tries to use same db connection and throws another exception related to DB communication failure.(I am not sure about this, it is just my opinion.)


Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.0.v20090731-r4765): org.eclipse.persistence.exceptions.DatabaseExce
ption
@


Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.0.v20090731-r4765): org.eclipse.persistence.exceptions.DatabaseExce
ption
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection clo
sed.Connection was implicitly closed due to underlying exception/error:


** BEGIN NESTED EXCEPTION **

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
MESSAGE: Communications link failure

The last packet successfully received from the server was 1,237 milliseconds ago.  The last packet sent successfully to the server w
as 1,236 milliseconds ago.

STACKTRACE:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 1,237 milliseconds ago.  The last packet sent successfully to the server w
as 1,236 milliseconds ago.
        at sun.reflect.GeneratedConstructorAccessor32.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3030)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2916)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3459)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1957)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2107)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2648)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2086)
        at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2237)
        at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:876)
        at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:589)
        at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:517)
        at org.eclipse.persistence.internal.sessions.ExclusiveIsolatedClientSession.executeCall(ExclusiveIsolatedClientSession.java:
63)
        at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:205)
        at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:191)
        at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectOneRow(DatasourceCallQueryMechanism.java:619)
        at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRowFromTable(ExpressionQueryMechanism.java:256
4)
        at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRow(ExpressionQueryMechanism.java:2535)
        at org.eclipse.persistence.queries.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:431)
        at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:992)
        at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:670)
        at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:953)
        at org.eclipse.persistence.queries.ReadObjectQuery.execute(ReadObjectQuery.java:399)
        at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1016)
        at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2864)
        at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1208)
        at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1190)
        at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1150)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.executeQuery(EntityManagerImpl.java:642)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.findInternal(EntityManagerImpl.java:586)

        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.executeQuery(EntityManagerImpl.java:642)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.findInternal(EntityManagerImpl.java:586)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.find(EntityManagerImpl.java:490)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.find(EntityManagerImpl.java:369)
        at tr.com.argela.tmh.cache.db.dao.SubscriberProfileDao.findByPk(SubscriberProfileDao.java:21)
        at tr.com.argela.tmh.cache.core.http.HttpRequestHelper.saveResponse2Cache(HttpRequestHelper.java:249)
        at tr.com.argela.tmh.cache.core.http.HttpRequestHelper.processHttpMessage(HttpRequestHelper.java:125)
        at tr.com.argela.tmh.cache.core.http.server.MessageAcceptor.doJob(MessageAcceptor.java:70)
        at tr.com.argela.tmh.cache.core.http.server.MessageAcceptor.doPost(MessageAcceptor.java:35)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:521)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:436)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:118)
        at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:179)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:371)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:864)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:116)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:243)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:112)
        at org.eclipse.jetty.server.Server.handle(Server.java:337)
        at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:562)
        at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1000)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:736)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:209)
        at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:415)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:437)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:435)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(SocketInputStream.java:168)
        at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
        at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
        at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
        at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2472)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2927)
        ... 56 more


** END NESTED EXCEPTION **


I made some googling but did not find any information related to that problem.
And one another question is;
     * How can I provide another db connection pool to eclipselink while not using eclipselink in an application server platform ?
     * How can I tell to eclipselink db connection pool to test the db connection before using it ?

Thanks for comments and suggestions that would help to fix the problem.
Regards,

Mesut SOYTURK.
Argela Technologies

Re: DB Connection Pool Problem

by mesutso :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi James,

Thank you for your reply, I opened a ticket for nullpointer exception. The ticket id is 289191.



Please log a bug for the null-pointer.  The code in ServerSession should be checking if the SequenceServer is null.  A workaround would be to define a descriptor that uses sequencing.

You can use a DataSource with EclipseLink either through registering one in JNDI, or by passing one directly in code either using the "javax.persistence.nonJtaDataSource" persistence unit property, or using a SessionCustomizer to set one on the Session's DatabaseLogin, JNDIConnector.

mesutso wrote:
Hi,

In my application, I used eclipselink(2.0.0.v20090731-r4765) jpa in java sdk platform with mysql 5.1.37. My application use db connection pool provided by eclipselink. I encountered with a problem under heavy traffic that cause to some of my db connections is hanging or not closed properly.

First application throws a null pointer exception while it tries to release a connection.

java.lang.NullPointerException
        at org.eclipse.persistence.sessions.server.ServerSession.setCheckConnections(ServerSession.java:776)
        at org.eclipse.persistence.sessions.server.ConnectionPool.releaseConnection(ConnectionPool.java:268)
        at org.eclipse.persistence.sessions.server.ServerSession.releaseClientSession(ServerSession.java:728)
        at org.eclipse.persistence.sessions.server.ClientSession.release(ClientSession.java:465)
        at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commitInternal(EntityTransactionImpl.java:99)
        at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:63)

After that it tries to use same db connection and throws another exception related to DB communication failure.(I am not sure about this, it is just my opinion.)


Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.0.v20090731-r4765): org.eclipse.persistence.exceptions.DatabaseExce
ption
@


Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.0.v20090731-r4765): org.eclipse.persistence.exceptions.DatabaseExce
ption
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection clo
sed.Connection was implicitly closed due to underlying exception/error:


** BEGIN NESTED EXCEPTION **

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
MESSAGE: Communications link failure

The last packet successfully received from the server was 1,237 milliseconds ago.  The last packet sent successfully to the server w
as 1,236 milliseconds ago.

STACKTRACE:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 1,237 milliseconds ago.  The last packet sent successfully to the server w
as 1,236 milliseconds ago.
        at sun.reflect.GeneratedConstructorAccessor32.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3030)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2916)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3459)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1957)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2107)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2648)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2086)
        at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2237)
        at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:876)
        at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:589)
        at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:517)
        at org.eclipse.persistence.internal.sessions.ExclusiveIsolatedClientSession.executeCall(ExclusiveIsolatedClientSession.java:
63)
        at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:205)
        at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:191)
        at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectOneRow(DatasourceCallQueryMechanism.java:619)
        at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRowFromTable(ExpressionQueryMechanism.java:256
4)
        at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRow(ExpressionQueryMechanism.java:2535)
        at org.eclipse.persistence.queries.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:431)
        at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:992)
        at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:670)
        at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:953)
        at org.eclipse.persistence.queries.ReadObjectQuery.execute(ReadObjectQuery.java:399)
        at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1016)
        at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2864)
        at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1208)
        at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1190)
        at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1150)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.executeQuery(EntityManagerImpl.java:642)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.findInternal(EntityManagerImpl.java:586)

        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.executeQuery(EntityManagerImpl.java:642)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.findInternal(EntityManagerImpl.java:586)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.find(EntityManagerImpl.java:490)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.find(EntityManagerImpl.java:369)
        at tr.com.argela.tmh.cache.db.dao.SubscriberProfileDao.findByPk(SubscriberProfileDao.java:21)
        at tr.com.argela.tmh.cache.core.http.HttpRequestHelper.saveResponse2Cache(HttpRequestHelper.java:249)
        at tr.com.argela.tmh.cache.core.http.HttpRequestHelper.processHttpMessage(HttpRequestHelper.java:125)
        at tr.com.argela.tmh.cache.core.http.server.MessageAcceptor.doJob(MessageAcceptor.java:70)
        at tr.com.argela.tmh.cache.core.http.server.MessageAcceptor.doPost(MessageAcceptor.java:35)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:521)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:436)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:118)
        at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:179)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:371)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:864)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:116)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:243)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:112)
        at org.eclipse.jetty.server.Server.handle(Server.java:337)
        at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:562)
        at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1000)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:736)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:209)
        at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:415)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:437)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:435)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(SocketInputStream.java:168)
        at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
        at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
        at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
        at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2472)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2927)
        ... 56 more


** END NESTED EXCEPTION **


I made some googling but did not find any information related to that problem.
And one another question is;
     * How can I provide another db connection pool to eclipselink while not using eclipselink in an application server platform ?
     * How can I tell to eclipselink db connection pool to test the db connection before using it ?

Thanks for comments and suggestions that would help to fix the problem.
Regards,

Mesut SOYTURK.
Argela Technologies