Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Newcomers » Newcomers » How To modify Eclipselink JPA 2.0 connection retry behaviour .
How To modify Eclipselink JPA 2.0 connection retry behaviour . [message #659409] Sun, 13 March 2011 17:38 Go to next message
mjawath is currently offline mjawathFriend
Messages: 4
Registered: March 2011
Junior Member
EntityManager entityManager = Persistence.createEntityManagerFactory("mydb").createEntityManager();



Database connection is connected



private void cButton1ActionPerformed(java.awt.event.ActionEvent evt) {



entityManager.createQuery(".....").getResultList();

}



if Database connection is disconnected at this point.





private void cButton2ActionPerformed(java.awt.event.ActionEvent evt) {

entityManager.createQuery(".....").getResultList();

}





Eclipselink automatically tries to reconnect it self to database whenever it detects a connection failure this causes swing ui to freeze without any responses until it connects to database .

Are there any solution to modify this behavior

Ie is it possible to throw exception when connection fails without retrying

Please help on this issue

I am facing with huge problem.



I went throe eclipselink source code and google but I could not find any solution.









Statck trace:

[EL Info]: 2011-03-12 16:30:56.5--UnitOfWork(6658066)--Communication failure detected when attempting to perform read query outside of a transaction. Attempting to retry query.

[EL Severe]: 2011-03-12 16:31:00.468--ServerSession(17922592)--Local Exception Stack:

Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.0.v20091127-r5931): org.eclipse.persistence.exceptions.DatabaseException

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



Last packet sent to the server was 0 ms ago.

Error Code: 0

at org.eclipse.persistence.exceptions.DatabaseException.sqlExce ption(DatabaseException.java:324)

at org.eclipse.persistence.exceptions.DatabaseException.sqlExce ption(DatabaseException.java:319)

at org.eclipse.persistence.sessions.DefaultConnector.connect(De faultConnector.java:138)

at org.eclipse.persistence.sessions.DatasourceLogin.connectToDa tasource(DatasourceLogin.java:162)

at org.eclipse.persistence.internal.databaseaccess.DatasourceAc cessor.connectInternal(DatasourceAccessor.java:327)

at org.eclipse.persistence.internal.databaseaccess.DatabaseAcce ssor.connectInternal(DatabaseAccessor.java:294)

at org.eclipse.persistence.internal.databaseaccess.DatasourceAc cessor.connect(DatasourceAccessor.java:415)

at org.eclipse.persistence.sessions.server.ConnectionPool.build Connection(ConnectionPool.java:155)

at org.eclipse.persistence.sessions.server.ConnectionPool.acqui reConnection(ConnectionPool.java:97)

at org.eclipse.persistence.sessions.server.ServerSession.alloca teReadConnection(ServerSession.java:477)

at org.eclipse.persistence.sessions.server.ServerSession.execut eCall(ServerSession.java:525)

at org.eclipse.persistence.internal.queries.DatasourceCallQuery Mechanism.executeCall(DatasourceCallQueryMechanism.java:205)

at org.eclipse.persistence.internal.queries.DatasourceCallQuery Mechanism.executeCall(DatasourceCallQueryMechanism.java:191)

at org.eclipse.persistence.internal.queries.DatasourceCallQuery Mechanism.executeSelectCall(DatasourceCallQueryMechanism.jav a:262)

at org.eclipse.persistence.internal.queries.DatasourceCallQuery Mechanism.selectAllRows(DatasourceCallQueryMechanism.java:61 8)

at org.eclipse.persistence.internal.queries.ExpressionQueryMech anism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2 537)

at org.eclipse.persistence.internal.queries.ExpressionQueryMech anism.selectAllRows(ExpressionQueryMechanism.java:2496)

at org.eclipse.persistence.queries.ReadAllQuery.executeObjectLe velReadQuery(ReadAllQuery.java:455)

at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute DatabaseQuery(ObjectLevelReadQuery.java:997)

at org.eclipse.persistence.queries.DatabaseQuery.execute(Databa seQuery.java:675)

at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute (ObjectLevelReadQuery.java:958)

at org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAll Query.java:432)

at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute InUnitOfWork(ObjectLevelReadQuery.java:1021)

at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.int ernalExecuteQuery(UnitOfWorkImpl.java:2863)

at org.eclipse.persistence.internal.sessions.AbstractSession.ex ecuteQuery(AbstractSession.java:1225)

at org.eclipse.persistence.internal.sessions.AbstractSession.ex ecuteQuery(AbstractSession.java:1299)

at org.eclipse.persistence.internal.sessions.AbstractSession.ex ecuteQuery(AbstractSession.java:1207)

at org.eclipse.persistence.internal.sessions.AbstractSession.ex ecuteQuery(AbstractSession.java:1181)

at org.eclipse.persistence.internal.jpa.EJBQueryImpl.executeRea dQuery(EJBQueryImpl.java:453)

at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getResultL ist(EJBQueryImpl.java:669)

at org.raheemiya.entity.dao.GenericDAO.ExecuteQuery(GenericDAO. java:216)

at org.raheemiya.entity.dao.BillDAO.getNotPayed(BillDAO.java:37 )

at org.business.rhotel.ui.hotel.CashierUI.testTimeElapse(Cashie rUI.java:227)

at org.business.rhotel.ui.hotel.CashierUI$4$1.doInBackground(Ca shierUI.java:137)

at javax.swing.SwingWorker$1.call(SwingWorker.java:278)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.jav a:303)

at java.util.concurrent.FutureTask.run(FutureTask.java:138)

at javax.swing.SwingWorker.run(SwingWorker.java:317)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Threa dPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo lExecutor.java:908)

at java.lang.Thread.run(Thread.java:619)

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



Last packet sent to the server was 0 ms ago.

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Nativ e Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Native ConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(De legatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:5 13)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)

at com.mysql.jdbc.SQLError.createCommunicationsException(SQLErr or.java:1074)

at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.jav a:2103)

at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)

at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Nativ e Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Native ConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(De legatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:5 13)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)

at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.jav a:302)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDr iver.java:282)

at java.sql.DriverManager.getConnection(DriverManager.java:582)

at java.sql.DriverManager.getConnection(DriverManager.java:154)

at org.eclipse.persistence.sessions.DefaultConnector.connect(De faultConnector.java:98)

... 38 more

Caused by: java.net.ConnectException: Connection refused: connect

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)

at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.ja va:195)

at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)

at java.net.Socket.connect(Socket.java:519)

at java.net.Socket.connect(Socket.java:469)

at java.net.Socket.<init>(Socket.java:366)

at java.net.Socket.<init>(Socket.java:209)

at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketF actory.java:253)

at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:280)

at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.jav a:2026)

... 50 more
Re: How To modify Eclipselink JPA 2.0 connection retry behaviour . [message #659414 is a reply to message #659409] Sun, 13 March 2011 18:03 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 33218
Registered: July 2009
Senior Member
I'd suggest asking on the eclipse.rt.eclipselink newsgroup/forum.


mjawath wrote:
> EntityManager entityManager =
> Persistence.createEntityManagerFactory("mydb").createEntityManager();
>
>
>
> Database connection is connected
>
>
>
> private void cButton1ActionPerformed(java.awt.event.ActionEvent evt) {
>
>
>
> entityManager.createQuery(".....").getResultList();
>
> }
>
>
>
> if Database connection is disconnected at this point.
>
>
>
>
>
> private void cButton2ActionPerformed(java.awt.event.ActionEvent evt) {
>
> entityManager.createQuery(".....").getResultList();
>
> }
>
>
>
>
>
> Eclipselink automatically tries to reconnect it self to database
> whenever it detects a connection failure this causes swing ui to
> freeze without any responses until it connects to database .
>
> Are there any solution to modify this behavior
>
> Ie is it possible to throw exception when connection fails without
> retrying
>
> Please help on this issue
>
> I am facing with huge problem.
>
>
>
> I went throe eclipselink source code and google but I could not find
> any solution.
>
>
>
>
>
>
>
>
>
> Statck trace:
>
> [EL Info]: 2011-03-12 16:30:56.5--UnitOfWork(6658066)--Communication
> failure detected when attempting to perform read query outside of a
> transaction. Attempting to retry query.
>
> [EL Severe]: 2011-03-12 16:31:00.468--ServerSession(17922592)--Local
> Exception Stack:
>
> Exception [EclipseLink-4002] (Eclipse Persistence Services -
> 2.0.0.v20091127-r5931):
> org.eclipse.persistence.exceptions.DatabaseException
>
> Internal Exception:
> com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
> Communications link failure
>
>
>
> Last packet sent to the server was 0 ms ago.
>
> Error Code: 0
>
> at
> org.eclipse.persistence.exceptions.DatabaseException.sqlExce
> ption(DatabaseException.java:324)
>
> at
> org.eclipse.persistence.exceptions.DatabaseException.sqlExce
> ption(DatabaseException.java:319)
>
> at
> org.eclipse.persistence.sessions.DefaultConnector.connect(De
> faultConnector.java:138)
>
> at
> org.eclipse.persistence.sessions.DatasourceLogin.connectToDa
> tasource(DatasourceLogin.java:162)
>
> at
> org.eclipse.persistence.internal.databaseaccess.DatasourceAc
> cessor.connectInternal(DatasourceAccessor.java:327)
>
> at
> org.eclipse.persistence.internal.databaseaccess.DatabaseAcce
> ssor.connectInternal(DatabaseAccessor.java:294)
>
> at
> org.eclipse.persistence.internal.databaseaccess.DatasourceAc
> cessor.connect(DatasourceAccessor.java:415)
>
> at
> org.eclipse.persistence.sessions.server.ConnectionPool.build
> Connection(ConnectionPool.java:155)
>
> at
> org.eclipse.persistence.sessions.server.ConnectionPool.acqui
> reConnection(ConnectionPool.java:97)
>
> at
> org.eclipse.persistence.sessions.server.ServerSession.alloca
> teReadConnection(ServerSession.java:477)
>
> at
> org.eclipse.persistence.sessions.server.ServerSession.execut
> eCall(ServerSession.java:525)
>
> at
> org.eclipse.persistence.internal.queries.DatasourceCallQuery
> Mechanism.executeCall(DatasourceCallQueryMechanism.java:205)
>
> at
> org.eclipse.persistence.internal.queries.DatasourceCallQuery
> Mechanism.executeCall(DatasourceCallQueryMechanism.java:191)
>
> at
> org.eclipse.persistence.internal.queries.DatasourceCallQuery
> Mechanism.executeSelectCall(DatasourceCallQueryMechanism.jav a:262)
>
> at
> org.eclipse.persistence.internal.queries.DatasourceCallQuery
> Mechanism.selectAllRows(DatasourceCallQueryMechanism.java:61 8)
>
> at
> org.eclipse.persistence.internal.queries.ExpressionQueryMech
> anism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2 537)
>
> at
> org.eclipse.persistence.internal.queries.ExpressionQueryMech
> anism.selectAllRows(ExpressionQueryMechanism.java:2496)
>
> at
> org.eclipse.persistence.queries.ReadAllQuery.executeObjectLe
> velReadQuery(ReadAllQuery.java:455)
>
> at
> org.eclipse.persistence.queries.ObjectLevelReadQuery.execute
> DatabaseQuery(ObjectLevelReadQuery.java:997)
>
> at
> org.eclipse.persistence.queries.DatabaseQuery.execute(Databa
> seQuery.java:675)
>
> at
> org.eclipse.persistence.queries.ObjectLevelReadQuery.execute
> (ObjectLevelReadQuery.java:958)
>
> at
> org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAll
> Query.java:432)
>
> at
> org.eclipse.persistence.queries.ObjectLevelReadQuery.execute
> InUnitOfWork(ObjectLevelReadQuery.java:1021)
>
> at
> org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.int
> ernalExecuteQuery(UnitOfWorkImpl.java:2863)
>
> at
> org.eclipse.persistence.internal.sessions.AbstractSession.ex
> ecuteQuery(AbstractSession.java:1225)
>
> at
> org.eclipse.persistence.internal.sessions.AbstractSession.ex
> ecuteQuery(AbstractSession.java:1299)
>
> at
> org.eclipse.persistence.internal.sessions.AbstractSession.ex
> ecuteQuery(AbstractSession.java:1207)
>
> at
> org.eclipse.persistence.internal.sessions.AbstractSession.ex
> ecuteQuery(AbstractSession.java:1181)
>
> at
> org.eclipse.persistence.internal.jpa.EJBQueryImpl.executeRea
> dQuery(EJBQueryImpl.java:453)
>
> at
> org.eclipse.persistence.internal.jpa.EJBQueryImpl.getResultL
> ist(EJBQueryImpl.java:669)
>
> at
> org.raheemiya.entity.dao.GenericDAO.ExecuteQuery(GenericDAO. java:216)
>
> at org.raheemiya.entity.dao.BillDAO.getNotPayed(BillDAO.java:37 )
>
> at
> org.business.rhotel.ui.hotel.CashierUI.testTimeElapse(Cashie
> rUI.java:227)
>
> at
> org.business.rhotel.ui.hotel.CashierUI$4$1.doInBackground(Ca
> shierUI.java:137)
>
> at javax.swing.SwingWorker$1.call(SwingWorker.java:278)
>
> at
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.jav a:303)
>
> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>
> at javax.swing.SwingWorker.run(SwingWorker.java:317)
>
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Threa
> dPoolExecutor.java:886)
>
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
> lExecutor.java:908)
>
> at java.lang.Thread.run(Thread.java:619)
>
> Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
> Communications link failure
>
>
>
> Last packet sent to the server was 0 ms ago.
>
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Nativ e Method)
>
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(Native
> ConstructorAccessorImpl.java:39)
>
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(De
> legatingConstructorAccessorImpl.java:27)
>
> at
> java.lang.reflect.Constructor.newInstance(Constructor.java:5 13)
>
> at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
>
> at
> com.mysql.jdbc.SQLError.createCommunicationsException(SQLErr
> or.java:1074)
>
> at
> com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.jav a:2103)
>
> at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
>
> at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
>
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Nativ e Method)
>
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(Native
> ConstructorAccessorImpl.java:39)
>
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(De
> legatingConstructorAccessorImpl.java:27)
>
> at
> java.lang.reflect.Constructor.newInstance(Constructor.java:5 13)
>
> at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
>
> at
> com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.jav a:302)
>
> at
> com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDr
> iver.java:282)
>
> at java.sql.DriverManager.getConnection(DriverManager.java:582)
>
> at java.sql.DriverManager.getConnection(DriverManager.java:154)
>
> at
> org.eclipse.persistence.sessions.DefaultConnector.connect(De
> faultConnector.java:98)
>
> ... 38 more
>
> Caused by: java.net.ConnectException: Connection refused: connect
>
> at java.net.PlainSocketImpl.socketConnect(Native Method)
>
> at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
>
> at
> java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.ja va:195)
>
> at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
>
> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
>
> at java.net.Socket.connect(Socket.java:519)
>
> at java.net.Socket.connect(Socket.java:469)
>
> at java.net.Socket.<init>(Socket.java:366)
>
> at java.net.Socket.<init>(Socket.java:209)
>
> at
> com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketF
> actory.java:253)
>
> at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:280)
>
> at
> com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.jav a:2026)
>
> ... 50 more


Ed Merks
Professional Support: https://www.macromodeling.com/
Previous Topic:program won't run outside Eclipse
Next Topic:After Eclipse Started....
Goto Forum:
  


Current Time: Tue Sep 24 22:39:33 GMT 2024

Powered by FUDForum. Page generated in 0.07372 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top