remote clients with bad performance

Hello,

I have a Servoy Server - Client connection over a VPN IPsec tunnel. The Server Host speed is SDSL 1024 kbit/s and the Client Remote speed is more than 2000 kbit/s. Host and Remotes network are behind an ASTARO Firewall. The connection between Servoy Client and Server works and the solution opens. But the performance is verry bad. Loading and changing forms takes too much time (more than 20 sec.).
Any ideas what is wrong?

Thomas

Hi Thomas,

Have you done any comparison testing to identify whether it is the VPN which is causing this delay ?

For example:
Does this performance/form load issue happen in developer ?
Have you launched a client from developer and tested that local served performance ?
Can you test the true Server/Client setup without the VPN ?

Cheers
Harry

Hi Harry,

the Client/Server connection performance in the local network is really good. Also the local Client/Developer connection makes no difference in speed.
Over the VPN connection I have access to the Hosts in the clients network. Up- and downloading files works with more than 300 kbit/s and VNC access to hosted machines works very well for administrative activities. RDP connection to a Windows PC works so fast as in the local network.

Regards
Thomas

Loading and changing forms takes too much time (more than 20 sec.).

Is this always or only the first time of loading the form?

Hi Marcel,

not only the first time of loading the forms, but if a loaded form is still in cash it opens quick. The whole launch procedure takes too much time…

not only the first time of loading the forms, but if a loaded form is still in cash it opens quick. The whole launch procedure takes too much time…

Your reply confused me a little, so what you say is that the process of loading forms takes (too) long the first time but there is no issue anymore when the form is cached?
And, apart from the above, you are under the impression that loading your solution takes too long?
Do you see any error in your log files on startup?
Do you perform many queries or is there some ‘heavy’ stuff going on in your on startup method(s)?

No sorry, loading the solution takes (too) long time, also changing the forms (from list to form view) and fireing some simple onAction methodes, but it seems that opening previous forms will be faster (because they are hold in cash?). There is only less data in the database and no heavy query in the startup methode. Here is the log file entry on startup:

Jan 4 17:13:40 iMac88-1 /usr/bin/java: Java is generating its shared archive, version 1.5
04.01.2008 17:16:58 com.servoy.j2db.util.Debug log
INFO: Starting Servoy from /
04.01.2008 17:16:58 com.servoy.j2db.util.Debug log
INFO: Servoy 3.5.3 build-516 on Mac OS X using Java 1.5.0_13
04.01.2008 17:19:56 com.servoy.j2db.util.Debug error
SEVERE: Throwable
java.lang.IllegalArgumentException: Malformed pattern “###.###,##”
at java.text.DecimalFormat.applyPattern(DecimalFormat.java:2561)
at java.text.DecimalFormat.(DecimalFormat.java:414)
at com.servoy.j2db.dataui.RoundHalfUpDecimalFormat.(Unknown Source)
at com.servoy.j2db.dataui.DataField.setFormat(Unknown Source)
at com.servoy.j2db.dataui.ComponentFactory.a(Unknown Source)
at com.servoy.j2db.dataui.ComponentFactory.a(Unknown Source)
at com.servoy.j2db.dataui.ComponentFactory.createComponent(Unknown Source)
at com.servoy.j2db.dataui.DataRendererFactory.a(Unknown Source)
at com.servoy.j2db.dataui.DataRendererFactory.completeRenderers(Unknown Source)
at com.servoy.j2db.FormController.a(Unknown Source)
at com.servoy.j2db.FormController.try(Unknown Source)
at com.servoy.j2db.FormManager.goto(Unknown Source)
at com.servoy.j2db.scripting.CreationalPrototype.get(Unknown Source)
at org.mozilla.javascript.ScriptRuntime.getProp(ScriptRuntime.java:726)
at org.mozilla.javascript.gen.c138.call(m_print_invoice:28)
at org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1254)
at org.mozilla.javascript.gen.c137.call(m_btn_print:29)
at com.servoy.j2db.scripting.f.executeFunction(Unknown Source)
at com.servoy.j2db.FormController.a(Unknown Source)
at com.servoy.j2db.FormController.executeFunction(Unknown Source)
at com.servoy.j2db.FormController.actionPerformed(Unknown Source)
at com.servoy.j2db.FormController$a.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
at java.awt.Component.processMouseEvent(Component.java:5583)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
at java.awt.Component.processEvent(Component.java:5348)
at java.awt.Container.processEvent(Container.java:2010)
at java.awt.Component.dispatchEventImpl(Component.java:4050)
at java.awt.Container.dispatchEventImpl(Container.java:2068)
at java.awt.Component.dispatchEvent(Component.java:3885)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4256)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3936)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3866)
at java.awt.Container.dispatchEventImpl(Container.java:2054)
at java.awt.Window.dispatchEventImpl(Window.java:1791)
at java.awt.Component.dispatchEvent(Component.java:3885)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

I hope I could discribe it a little bit better
Thomas

Hi Thomas,

What about the Server Performance Data under Server Admin ?

Does it show any delays in response time for the queries being fired ?

Cheers
Harry

Much difference when you run it over the lan?

What about this error 'Java.lang.IllegalArgumentException: Malformed pattern “###.###,##” '?

Hi Harry,

the Server Performance Data shows actions (5) like:

select top 501 sg.group_id,sg.group_name from servoy_groups sg,servoy_user_groups sug, servoy_users su where sg.group_id = sug.group_id and sug.user_id=su.user_id and su.user_uid=? order by sg.group_name

or

select top 1001 user_uid,user_name,user_id from servoy_users order by user_name

with time stamp 00:00:000 00:00:000

Hi Marcel,

running the solution over the lan is much faster.

IT2Be:
What about this error 'Java.lang.IllegalArgumentException: Malformed pattern “###.###,##” '?

Hmm, may be Servoy don’t like this format?

make it ###,###.##

Ok, thank you :-).

The performance between Servoy Server and the remote Clients is now better. I tried a lot by changing the Firewall’s parameters, like configuring a forwarding for port 1099 and so on. I think there is the key to get a faster connection and launching. Am I right?

Thomas

Hi Thomas,

If your solution works fine on the LAN but it is slow over the VPN then any improvements or tweaks which can be made to the routed connection must help

I am no router expert so this is opinion only: I understand that you only have to make sure that specific ports are open to allow traffic through and they should not need to be ‘forwarded’ to any other port. If 1099 is open and allowing traffic to pass through then that should be enough

Do note that there could still be elements in how the solution is built that may still have an impact upon how it performs over the VPN connection, though :o

Cheers
Harry

Hi Harry,

Firewalls and Router cofigurations is an other wide field and every network has its own character…

Harry Catharell:
Do note that there could still be elements in how the solution is built that may still have an impact upon how it performs over the VPN connection, thoughy

I’m with you, but what kind of elements that are? I’m not a Servoy routinier in remote network solutions. I could detect heavy stuff in my solutions after have had built it… :-(. I believe that all Servoy programmers will make their experience in learning by doing :-).

Nice weekend
Thomas

I’m with you, but what kind of elements that are? I’m not a Servoy routinier in remote network solutions. I could detect heavy stuff in my solutions after have had built it… . I believe that all Servoy programmers will make their experience in learning by doing .

Yes. Delete folder ‘.Servoy’ from profile user used in the PC client and restart Servoy.

It is very likely that the solution is damaged. We are already happened several times.

Ciao.