Our app has changed minimally - really only what was necessary to upgrade to 6. These memory errors are being fired as soon as a user attempts to open a Smart Client. The PC's have all been using Java v14 (old I know but they have it on LOTs of PC's), but since this was perfectly adequate for V5 it has come as a big surprise to find it impossible to run the Clients - especially since there has been no change in the memory allocations of the Clients or the Server (we have been using the default heap size). These PC's have been rebooted and completely disconnected for periods to ensure they were clean and any stored memory was cleared, and yet the memory error would arise before the app was even started.
The solution on one test PC was the installation of Java v21, and this seems to have resolved the issue for the moment. My concern is that this is only a temporary fix however - and before we get the client to roll-out this version to dozens of PC's we need to be sure that our system is not some-how filling some memory allocation? We have stress tested this single operational Smart Client connection today without error but my lack of knowledge on these matters has me concerned that we are going to get to a point where this one on v21 will run out of memory too.
Is there any experience of this out there in Servoy Land? Suggestions would be welcome as to how to either satisfy ourselves that the memory error is gone in Java 21 or how to test for issues that may contribute to this.
- Code: Select all
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
at java.io.ObjectInputStream$HandleTable.grow(Unknown Source)
at java.io.ObjectInputStream$HandleTable.assign(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at java.util.HashMap.readObject(Unknown Source)
at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at java.util.concurrent.ConcurrentHashMap.readObject(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 java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
01-09-2011 07:37:54 com.servoy.j2db.util.Debug error
SEVERE: Failure error in the tunnel, trying to reconnect
java.io.IOException: Input stream closed
at com.sebster.tunnel.impl.j.j(j.java:64)
at com.sebster.tunnel.impl.j.d(j.java:189)
at com.sebster.tunnel.impl.j.a(j.java:122)
at com.sebster.tunnel.impl.cc.a(cc.java:17)
at com.sebster.tunnel.impl.gc.a(gc.java:35)
at com.sebster.tunnel.impl.yc.run(yc.java:42)
at java.lang.Thread.run(Unknown Source)
01-09-2011 07:37:54 com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider onFail
SEVERE: rmi multiplexer failed
java.io.IOException: Input stream closed
at com.sebster.tunnel.impl.j.j(j.java:64)
at com.sebster.tunnel.impl.j.d(j.java:189)
at com.sebster.tunnel.impl.j.a(j.java:122)
at com.sebster.tunnel.impl.cc.a(cc.java:17)
at com.sebster.tunnel.impl.gc.a(gc.java:35)
at com.sebster.tunnel.impl.yc.run(yc.java:42)
at java.lang.Thread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
at java.io.ObjectInputStream$HandleTable.grow(Unknown Source)
at java.io.ObjectInputStream$HandleTable.assign(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at java.util.HashMap.readObject(Unknown Source)
at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at java.util.concurrent.ConcurrentHashMap.readObject(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 java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
01-09-2011 07:38:01 com.servoy.j2db.util.Debug error
SEVERE: Failure error in the tunnel, trying to reconnect
java.io.IOException: Input stream closed
at com.sebster.tunnel.impl.j.j(j.java:64)
at com.sebster.tunnel.impl.j.d(j.java:189)
at com.sebster.tunnel.impl.j.a(j.java:122)
at com.sebster.tunnel.impl.cc.a(cc.java:17)
at com.sebster.tunnel.impl.gc.a(gc.java:35)
at com.sebster.tunnel.impl.yc.run(yc.java:42)
at java.lang.Thread.run(Unknown Source)
01-09-2011 07:38:01 com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider onFail
SEVERE: rmi multiplexer failed
java.io.IOException: Input stream closed
at com.sebster.tunnel.impl.j.j(j.java:64)
at com.sebster.tunnel.impl.j.d(j.java:189)
at com.sebster.tunnel.impl.j.a(j.java:122)
at com.sebster.tunnel.impl.cc.a(cc.java:17)
at com.sebster.tunnel.impl.gc.a(gc.java:35)
at com.sebster.tunnel.impl.yc.run(yc.java:42)
at java.lang.Thread.run(Unknown Source)