Upgrading Servoy initial load of solution takes long time

After the upgrade beta version 3.1 beta3-build 402 and a java update, I noticed that it took at least 3 minutes to initially load my solution.
I have not added any additonal forms or changes to the solution that might cause this.

Before this build, it would take less than a minute to load.
Servoy is set upt to use a jdbcdriver ifxjdbc.jar to connect to an Informix backend database.

Once my solution loads everything seems to work fine with it.
Also, If I am in Servoy then I close my solution and reopen it, it imediately opens. But if I close my solution, then close Servoy and the Repository then re-open Servoy and open my solution again it takes what seem forever to open. So the problem is localized to when Servoy initially starts.

I thought maybe if I waited and a new Servoy build came out it may fix this issue so I did the new build today. Current I am now on this version of Servoy Developer Version 3.1-build 404 Java version 1.5.0_10-b03(Windows XP) but it still is taking a long time(3 minutes) for my solution to load.
Why?
What logs can I look at that might give a clue to this problem, so I can come back and list it?

Also, There is small sample solution that uses Servoy’s sybase not informix and it loads imediately as it did before.

Below is the servoy_log.txt file from today.

2007-01-11 09:23:05,916 ERROR [main] com.servoy.j2db.util.Debug - Throwable
java.rmi.server.ExportException: Port already in use: 1099; nested exception is:
java.net.BindException: Address already in use: JVM_Bind
at sun.rmi.transport.tcp.TCPTransport.listen(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.exportObject(Unknown Source)
at sun.rmi.transport.tcp.TCPEndpoint.exportObject(Unknown Source)
at sun.rmi.transport.LiveRef.exportObject(Unknown Source)
at sun.rmi.server.UnicastServerRef.exportObject(Unknown Source)
at sun.rmi.registry.RegistryImpl.setup(Unknown Source)
at sun.rmi.registry.RegistryImpl.(Unknown Source)
at java.rmi.registry.LocateRegistry.createRegistry(Unknown Source)
at com.servoy.j2db.server.ApplicationServer.a(Unknown Source)
at com.servoy.j2db.server.ApplicationServer.initFromDeveloper(Unknown Source)
at com.servoy.j2db.develop.J2DBDeveloper.dataBaseInit(Unknown Source)
at com.servoy.j2db.develop.J2DBDeveloper.for(Unknown Source)
at com.servoy.j2db.develop.J2DBDeveloper.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.servoy.j2db.startup.Bootstrap.main(Bootstrap.java:45)
at Servoy.main(Servoy.java:28)
Caused by: java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.(Unknown Source)
at java.net.ServerSocket.(Unknown Source)
at javax.net.ssl.SSLServerSocket.(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLServerSocketFactoryImpl.createServerSocket(Unknown Source)
at com.servoy.j2db.util.a.d.createServerSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(Unknown Source)
… 19 more
2007-01-11 09:23:09,712 ERROR [main] org.apache.coyote.http11.Http11Protocol - Error initializing endpoint
java.net.BindException: Address already in use: JVM_Bind:8080
at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:297)
at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:142)
at org.apache.catalina.connector.Connector.initialize(Connector.java:928)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:580)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:764)
at org.apache.catalina.startup.Catalina.load(Catalina.java:490)
at org.apache.catalina.startup.Catalina.start(Catalina.java:529)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.servoy.j2db.server.WebServer.startWebServer(Unknown Source)
at com.servoy.j2db.server.ApplicationServer.startWebServer(Unknown Source)
at com.servoy.j2db.develop.J2DBDeveloper.try(Unknown Source)
at com.servoy.j2db.develop.J2DBDeveloper.for(Unknown Source)
at com.servoy.j2db.develop.J2DBDeveloper.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.servoy.j2db.startup.Bootstrap.main(Bootstrap.java:45)
at Servoy.main(Servoy.java:28)
2007-01-11 09:23:09,712 ERROR [main] org.apache.catalina.startup.Catalina - Catalina.start
LifecycleException: Protocol handler initialization failed: java.net.BindException: Address already in use: JVM_Bind:8080
at org.apache.catalina.connector.Connector.initialize(Connector.java:930)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:580)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:764)
at org.apache.catalina.startup.Catalina.load(Catalina.java:490)
at org.apache.catalina.startup.Catalina.start(Catalina.java:529)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.servoy.j2db.server.WebServer.startWebServer(Unknown Source)
at com.servoy.j2db.server.ApplicationServer.startWebServer(Unknown Source)
at com.servoy.j2db.develop.J2DBDeveloper.try(Unknown Source)
at com.servoy.j2db.develop.J2DBDeveloper.for(Unknown Source)
at com.servoy.j2db.develop.J2DBDeveloper.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.servoy.j2db.startup.Bootstrap.main(Bootstrap.java:45)
at Servoy.main(Servoy.java:28)
2007-01-11 09:23:10,681 ERROR [TaskExecuter[3]] com.servoy.j2db.util.Debug - Throwable

java.lang.IllegalStateException: Pool not open
at org.apache.commons.pool.BaseObjectPool.assertOpen(BaseObjectPool.java:123)
at org.apache.commons.pool.impl.GenericObjectPool.returnObject(GenericObjectPool.java:898)
at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:110)
at org.apache.commons.dbcp.DelegatingConnection.close(DelegatingConnection.java:166)
at com.servoy.j2db.persistence.datasource.TransactionConnection.close(Unknown Source)
at com.servoy.j2db.util.Utils.closeConnection(Unknown Source)
at com.servoy.j2db.persistence.Server.fj(Unknown Source)
at com.servoy.j2db.persistence.Server.getTableNames(Unknown Source)
at com.servoy.j2db.server.ApplicationServer$a.run(Unknown Source)
at com.servoy.j2db.util.am.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2007-01-11 09:43:19,962 ERROR [TaskExecuter[3]] com.servoy.j2db.util.Debug - Throwable
java.io.FileNotFoundException: http://downloads.servoy.com/downloads/3 … te.jar.403
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at com.servoy.j2db.develop.c.y.a(Unknown Source)
at com.servoy.j2db.develop.c.y.if(Unknown Source)
at com.servoy.j2db.develop.c.h$a.run(Unknown Source)
at com.servoy.j2db.util.am.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2007-01-11 09:46:31,728 ERROR [TaskExecuter[1]] com.servoy.j2db.util.Debug - Throwable
java.lang.IllegalStateException: Pool not open
at org.apache.commons.pool.BaseObjectPool.assertOpen(BaseObjectPool.java:123)
at org.apache.commons.pool.impl.GenericObjectPool.returnObject(GenericObjectPool.java:898)
at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:110)
at org.apache.commons.dbcp.DelegatingConnection.close(DelegatingConnection.java:166)
at com.servoy.j2db.persistence.datasource.TransactionConnection.close(Unknown Source)
at com.servoy.j2db.util.Utils.closeConnection(Unknown Source)
at com.servoy.j2db.persistence.Repository.a(Unknown Source)
at com.servoy.j2db.persistence.Repository.a(Unknown Source)
at com.servoy.j2db.persistence.r.a(Unknown Source)
at com.servoy.j2db.persistence.r.if(Unknown Source)
at com.servoy.j2db.persistence.Repository.getActiveRootObject(Unknown Source)
at com.servoy.j2db.persistence.Repository.getActiveSolution(Unknown Source)
at com.servoy.j2db.ActiveSolutionHandler.loadActiveSolution(Unknown Source)
at com.servoy.j2db.J2DBClient$12.run(Unknown Source)
at com.servoy.j2db.util.am.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2007-01-11 10:00:44,587 ERROR [AWT-EventQueue-0] com.servoy.j2db.util.Debug - Deleting unreferenced blobs
2007-01-11 10:05:22,884 ERROR [AWT-EventQueue-0] com.servoy.j2db.util.Debug - Deleting unreferenced blobs
2007-01-11 10:29:53,400 ERROR [AWT-EventQueue-0] com.servoy.j2db.util.Debug - Deleting unreferenced blobs
2007-01-11 10:30:26,697 ERROR [AWT-EventQueue-0] com.servoy.j2db.util.Debug - Deleting unreferenced blobs

Are you developing on the same servoy server?

because I see: port 1099 and 8080 is in use.
So it looks like you are loading Servoy 2 times, on the same machine (developer & server?)

if so, this is not advisable to do.
develop on your local machine, and upload your solution (throug the admin-pages) on a seperate server!

Yes it is on one machine because we were evaluating it and we are definitely planning to do just that. We just purchased Servoy and have not moved it as yet.

Forgive me, but to me this still does not explain the initial load time change of the solution after opening Servoy, as it has been on the same machine a few months back while we decided on purchasing it.

We tested it by doing a simple solution/project and it met our needs and it has been loaded quickly until now after the update I listed in my original post so I think there is more to it than that.

Any other ideas?
If you can tell me what other settings, options etc to check?
Any other logs that might give more information?
Thanks for responding back.

oke, I think it is important, that you do it, right from the first start. (no offence, trust me, I have been there! :wink: )
so first of all, don’t run the server and the developer the same time, because you can get in all kind of troubles. One example is: If you add new columns in developer, you have to restart the server, or else the server simply does not notice it. and so there are dozens or reason, not to do that.

but oke, shutdown developer and restart the server.
and try to start a client with: http://localhost:8080

does the client also load such a long time??

Just wanted to post this, noticed with the new version of Servoy 3.1.3 build which I just updated to with in the last couple of week.
my solution comes up fast now! Almost imediately. No other change.
Just thought you’d like to know.

you say “don’t run the server and the developer the same time, because you can get in all kind of troubles”

I like to edit “live”, off hours, to fix labels, and update methods, and it appears to work

I understand a solution flush or server restart is required, but wonder what is the “worst” that can happen? not to challenge this, just to better understand

when then is solution flush appropriate? if I avoid servoy sequences, am I OK?

thanks
greg

Hi,
if you make changes on a ‘live’ system, there are times you need to ‘flush’ & times you need to ‘restart’

‘Flush’ if you have only changed forms, or methods, or calcs.

‘Restart’ if you have made any column changes, i.e. if you have added or removed any columns. That way Servoy Application Server ‘knows’ about the back-end changes.

Just be careful when working on a live system :D

Hope that helps.

Rafi