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.
