That smells like a DNS configuration problem, because DNS timeouts are on the 
order of 2-3 seconds.
Could also be a problem with the certificate chain referencing hosts that are 
no longer available.

Cedric wrote:
> Thanks for the answer, it was very helpfull! The time it takes to
> connect is indeed much smaller when using TCP (5s instead of 20s).
> This is what I wanted, but it would be nice if this could be achieved
> with SSL. I have used the profiler in my java code and it gave the
> following results:
>
> ---------------------------------------------------------------------------
> Using SSL:
> Profiler: top 3 stack trace(s) of 22746 ms [build-147]:
> 564/1232
> at java.net.Inet6AddressImpl.getHostByAddr(Native Method)
> at java.net.InetAddress$1.getHostByAddr(InetAddress.java:854)
> at java.net.InetAddress.getHostFromNameService(InetAddress.java:534)
> at java.net.InetAddress.getHostName(InetAddress.java:477)
> at java.net.InetAddress.getHostName(InetAddress.java:449)
> at
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.getHost(SSLSocketImpl.java:
> 1851)
> at com.sun.net.ssl.internal.ssl.Handshaker.getHostSE(Handshaker.java:
> 257)
> at
> com.sun.net.ssl.internal.ssl.ClientHandshaker.getKickstartMessage(ClientHandshaker.java:
> 1020)
> at com.sun.net.ssl.internal.ssl.Handshaker.kickstart(Handshaker.java:
> 620)
> at
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:
> 1240)
> at
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:
> 1137)
> at
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:
> 632)
> at
> com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:
> 59)
> at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:
> 65)
> at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
> at java.io.DataOutputStream.flush(DataOutputStream.java:106)
> at org.h2.value.Transfer.flush(Transfer.java:89)
> at org.h2.engine.SessionRemote.done(SessionRemote.java:535)
> at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:109)
> at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:376)
> at
> org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:
> 271)
> at org.h2.engine.SessionRemote.createSession(SessionRemote.java:265)
> at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:110)
> at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:94)
> at org.h2.Driver.connect(Driver.java:72)
> at java.sql.DriverManager.getConnection(DriverManager.java:582)
> at java.sql.DriverManager.getConnection(DriverManager.java:154)
> at
> org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:
> 98)
> at
> org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:
> 162)
> at
> org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connectInternal(DatasourceAccessor.java:
> 327)
> at
> org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.connectInternal(DatabaseAccessor.java:
> 295)
> at
> org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:
> 415)
> 275/1232
> at java.net.Inet6AddressImpl.getHostByAddr(Native Method)
> at java.net.InetAddress$1.getHostByAddr(InetAddress.java:854)
> at java.net.InetAddress.getHostFromNameService(InetAddress.java:534)
> at java.net.InetAddress.getHostName(InetAddress.java:477)
> at java.net.InetAddress.getHostName(InetAddress.java:449)
> at
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.getHost(SSLSocketImpl.java:
> 1851)
> at com.sun.net.ssl.internal.ssl.Handshaker.getHostSE(Handshaker.java:
> 257)
> at
> com.sun.net.ssl.internal.ssl.ClientHandshaker.getKickstartMessage(ClientHandshaker.java:
> 1020)
> at com.sun.net.ssl.internal.ssl.Handshaker.kickstart(Handshaker.java:
> 620)
> at
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:
> 1240)
> at
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:
> 1137)
> at
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:
> 632)
> at
> com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:
> 59)
> at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:
> 65)
> at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
> at java.io.DataOutputStream.flush(DataOutputStream.java:106)
> at org.h2.value.Transfer.flush(Transfer.java:89)
> at org.h2.engine.SessionRemote.done(SessionRemote.java:535)
> at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:109)
> at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:376)
> at
> org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:
> 271)
> at org.h2.engine.SessionRemote.createSession(SessionRemote.java:265)
> at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:110)
> at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:94)
> at org.h2.Driver.connect(Driver.java:72)
> at java.sql.DriverManager.getConnection(DriverManager.java:582)
> at java.sql.DriverManager.getConnection(DriverManager.java:154)
> at
> org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:
> 98)
> at
> org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:
> 162)
> at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:
> 584)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:
> 228)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:
> 369)
> 130/1232
> at java.net.PlainSocketImpl.socketConnect(Native Method)
> at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
> at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
> at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
> at java.net.Socket.connect(Socket.java:529)
> at
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:
> 559)
> at org.h2.security.CipherFactory.createSocket(CipherFactory.java:98)
> at org.h2.util.NetUtils.createSocket(NetUtils.java:106)
> at org.h2.util.NetUtils.createSocket(NetUtils.java:91)
> at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:91)
> at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:376)
> at
> org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:
> 271)
> at org.h2.engine.SessionRemote.createSession(SessionRemote.java:265)
> at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:110)
> at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:94)
> at org.h2.Driver.connect(Driver.java:72)
> at java.sql.DriverManager.getConnection(DriverManager.java:582)
> at java.sql.DriverManager.getConnection(DriverManager.java:154)
> at
> org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:
> 98)
> at
> org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:
> 162)
> at
> org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connectInternal(DatasourceAccessor.java:
> 327)
> at
> org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.connectInternal(DatabaseAccessor.java:
> 295)
> at
> org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:
> 415)
> at
> org.eclipse.persistence.sessions.server.ConnectionPool.buildConnection(ConnectionPool.java:
> 155)
> at
> org.eclipse.persistence.sessions.server.ConnectionPool.startUp(ConnectionPool.java:
> 433)
> at
> org.eclipse.persistence.sessions.server.ServerSession.connect(ServerSession.java:
> 500)
> at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:
> 619)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:
> 228)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:
> 369)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:
> 151)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:
> 207)
> .
>
> ---------------------------------------------------------------------------
> Using regular TCP:
> Profiler: top 3 stack trace(s) of 4977 ms [build-147]:
> 10/283
> at java.util.zip.Inflater.inflateBytes(Native Method)
> at java.util.zip.Inflater.inflate(Inflater.java:238)
> at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:
> 135)
> at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
> at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
> at javax.crypto.SunJCE_c.b(DashoA13*..)
> at javax.crypto.SunJCE_c.a(DashoA13*..)
> at javax.crypto.SunJCE_b.a(DashoA13*..)
> at javax.crypto.SunJCE_h.a(DashoA13*..)
> at javax.crypto.Cipher.c(DashoA13*..)
> at javax.crypto.Cipher.b(DashoA13*..)
> at javax.crypto.Cipher.a(DashoA13*..)
> at javax.crypto.Cipher.init(DashoA13*..)
> at
> org.eclipse.persistence.internal.security.JCEEncryptor.<init>(JCEEncryptor.java:
> 52)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:
> 39)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:
> 27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at java.lang.Class.newInstance0(Class.java:355)
> at java.lang.Class.newInstance(Class.java:308)
> at
> org.eclipse.persistence.internal.security.PrivilegedAccessHelper.newInstanceFromClass(PrivilegedAccessHelper.java:
> 354)
> at
> org.eclipse.persistence.internal.security.SecurableObjectHolder.initSecurableObject(SecurableObjectHolder.java:
> 93)
> at
> org.eclipse.persistence.internal.security.SecurableObjectHolder.getSecurableObject(SecurableObjectHolder.java:
> 55)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.updateLogins(EntityManagerSetupImpl.java:
> 1156)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.updateServerSession(EntityManagerSetupImpl.java:
> 1422)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:
> 360)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:
> 151)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:
> 207)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:
> 195)
> at Database.DatabaseFacade.<init>(DatabaseFacade.java:49)
> at Database.DatabaseFacade.getLocalDatabaseFacade(DatabaseFacade.java:
> 65)
> at BussinessLogic.DatabaseLogic.<init>(DatabaseLogic.java:22)
> 7/283
> at java.io.FileDescriptor.sync(Native Method)
> at org.h2.store.fs.FileObjectDisk.sync(FileObjectDisk.java:34)
> at org.h2.store.FileStore.sync(FileStore.java:459)
> at org.h2.store.PageStore.writeVariableHeader(PageStore.java:914)
> at org.h2.store.PageStore.setLogFirstPage(PageStore.java:908)
> at org.h2.store.PageLog.openForWriting(PageLog.java:188)
> at org.h2.store.PageStore.compact(PageStore.java:467)
> at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1123)
> at org.h2.engine.Database.close(Database.java:1074)
> at org.h2.engine.Database.removeSession(Database.java:953)
> at org.h2.engine.Session.close(Session.java:571)
> at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:320)
> at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:
> 609)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:
> 228)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:
> 369)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:
> 151)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:
> 207)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:
> 195)
> at Database.DatabaseFacade.<init>(DatabaseFacade.java:49)
> at Database.DatabaseFacade.getLocalDatabaseFacade(DatabaseFacade.java:
> 65)
> at BussinessLogic.DatabaseLogic.<init>(DatabaseLogic.java:22)
> at BussinessLogic.DatabaseLogic.getDatabaseLogic(DatabaseLogic.java:
> 32)
> at UI.ParticleTrackerApp.appInit(ParticleTrackerApp.java:147)
> at UI.ParticleTrackerApp.startup(ParticleTrackerApp.java:42)
> at org.jdesktop.application.Application$1.run(Application.java:171)
> at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:642)
> at java.awt.EventQueue.access$000(EventQueue.java:85)
> at java.awt.EventQueue$1.run(EventQueue.java:603)
> at java.awt.EventQueue$1.run(EventQueue.java:601)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.security.AccessControlContext
> $1.doIntersectionPrivilege(AccessControlContext.java:87)
> 6/283
> at java.io.FileDescriptor.sync(Native Method)
> at org.h2.store.fs.FileObjectDisk.sync(FileObjectDisk.java:34)
> at org.h2.store.FileStore.sync(FileStore.java:459)
> at org.h2.store.PageStore.writeVariableHeader(PageStore.java:914)
> at org.h2.store.PageStore.setLogFirstPage(PageStore.java:908)
> at org.h2.store.PageLog.openForWriting(PageLog.java:188)
> at org.h2.store.PageStore.openExisting(PageStore.java:352)
> at org.h2.store.PageStore.open(PageStore.java:275)
> at org.h2.engine.Database.getPageStore(Database.java:2040)
> at org.h2.engine.Database.open(Database.java:547)
> at org.h2.engine.Database.openDatabase(Database.java:218)
> at org.h2.engine.Database.<init>(Database.java:213)
> at org.h2.engine.Engine.openSession(Engine.java:55)
> at org.h2.engine.Engine.openSession(Engine.java:158)
> at org.h2.engine.Engine.createSessionAndValidate(Engine.java:137)
> at org.h2.engine.Engine.createSession(Engine.java:120)
> at org.h2.engine.Engine.createSession(Engine.java:28)
> at
> org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:
> 289)
> at org.h2.engine.SessionRemote.createSession(SessionRemote.java:265)
> at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:110)
> at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:94)
> at org.h2.Driver.connect(Driver.java:72)
> at java.sql.DriverManager.getConnection(DriverManager.java:582)
> at java.sql.DriverManager.getConnection(DriverManager.java:154)
> at
> org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:
> 98)
> at
> org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:
> 162)
> at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:
> 584)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:
> 228)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:
> 369)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:
> 151)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:
> 207)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:
> 195)
> .
>
> ---------------------------------------------------------------------------
> Thanks in advance!
>
>
> On 11 mrt, 16:08, Thomas Mueller <[email protected]> wrote:
>> Hi,
>>
>> Is the problem still there if you don't use SSL? If yes, is it still
>> there if you use an embedded database?
>>
>> I'm not sure what the problem could be, maybe it's a DNS lookup or
>> something like that (I did see something similar some time ago, but it
>> should be fixed now). Could you create a few full thread dumps on both
>> the server and the client to find out what the problem is? Or use a
>> profiling tool - a simple profiling tool is included in 
>> H2:http://h2database.com/html/performance.html#application_profiling
>>
>>> why are conn6 and conn7 made?
>> I don't know, maybe it's a connection pool? I don't really know how
>> EclipseLink works, I'm sorry.
>>
>> Regards,
>> Thomas

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.

Reply via email to