Thanks for the information Scott!
We are currently using ECF 3.12 (from Mars release), so I will give
the new version a try.
Bye, Peter
Am 26.05.2016 um 18:24 schrieb Scott
Lewis:
Here's the bug:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=488045
Fixed in ECF 3.13+
Scott
On 5/26/2016 7:08 AM, Scott Lewis wrote:
Hi Peter,
This was a bug having to do with the use of the class
resolver....never calling ServiceTracker.close. I can't
remember the bug right now but I will look it up later and reply
to this email. In any event, it has been fixed in more recent
versions. Which version are you on?
Thanks,
Scott
On 5/26/2016 3:10 AM, Peter Hermsdorf wrote:
Hi all,
recently I had an OutOfMemory on one of our app servers which
is connected to some 150 rcp clients via ecf.
In the memory dump (1GB heap) I recognized about 437000
ServiceTracker instances which, from my point of view, seems
too many.
Local testing with a profiler showed, that the application
server creates 11 instances of ServiceTracker for each client
"connect". After closing the Client these instances stay there
- they do not seem to get closed / garbage collected.
In Production the application server is running for a long
time and clients come and go the whole day so this could sum
up.
Please see below for the stacktraces of the ServiceTracker
creation when one client connects.
Thanks for any hints or thoughts about this problem.
Best regards, Peter
PS: our setup
* we use the generic provider
* server exports / client imports 3 remote services
******* created 23681044
java.lang.Exception
at
org.osgi.util.tracker.ServiceTracker.<init>(ServiceTracker.java:214)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.getClassResolver(ClassResolverObjectInputStream.java:88)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.resolveClass(ClassResolverObjectInputStream.java:98)
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at
org.eclipse.ecf.provider.generic.SOContainerGroup.readConnectRequestMessage(SOContainerGroup.java:87)
at
org.eclipse.ecf.provider.generic.SOContainerGroup.handleAccept(SOContainerGroup.java:104)
at
org.eclipse.ecf.provider.comm.tcp.Server$2.run(Server.java:96)
at java.lang.Thread.run(Thread.java:745)
******* created 33227769
java.lang.Exception
at
org.osgi.util.tracker.ServiceTracker.<init>(ServiceTracker.java:214)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.getClassResolver(ClassResolverObjectInputStream.java:88)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.resolveClass(ClassResolverObjectInputStream.java:98)
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at
org.eclipse.ecf.provider.generic.SOContainer.deserializeContainerMessage(SOContainer.java:530)
at
org.eclipse.ecf.provider.generic.SOContainer.processAsynch(SOContainer.java:868)
at
org.eclipse.ecf.provider.generic.SOContainer$2.handleAsynchEvent(SOContainer.java:206)
at
org.eclipse.ecf.provider.comm.tcp.Client.handleRcv(Client.java:383)
at
org.eclipse.ecf.provider.comm.tcp.Client$4.run(Client.java:356)
at java.lang.Thread.run(Thread.java:745)
******* created 1588972
java.lang.Exception
at
org.osgi.util.tracker.ServiceTracker.<init>(ServiceTracker.java:214)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.getClassResolver(ClassResolverObjectInputStream.java:88)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.resolveClass(ClassResolverObjectInputStream.java:98)
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at
org.eclipse.ecf.provider.generic.SOContainer.defaultDeserializeSharedObjectMessage(SOContainer.java:1009)
at
org.eclipse.ecf.provider.generic.SOContainer$1.deserializeMessage(SOContainer.java:163)
at
org.eclipse.ecf.provider.generic.SOContainer.deserializeSharedObjectMessage(SOContainer.java:1041)
at
org.eclipse.ecf.provider.generic.SOContainer.handleSharedObjectMessage(SOContainer.java:710)
at
org.eclipse.ecf.provider.generic.SOContainer.processAsynch(SOContainer.java:885)
at
org.eclipse.ecf.provider.generic.SOContainer$2.handleAsynchEvent(SOContainer.java:206)
at
org.eclipse.ecf.provider.comm.tcp.Client.handleRcv(Client.java:383)
at
org.eclipse.ecf.provider.comm.tcp.Client$4.run(Client.java:356)
at java.lang.Thread.run(Thread.java:745)
******* created 8301198
java.lang.Exception
at
org.osgi.util.tracker.ServiceTracker.<init>(ServiceTracker.java:214)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.getClassResolver(ClassResolverObjectInputStream.java:88)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.resolveClass(ClassResolverObjectInputStream.java:98)
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at
org.eclipse.ecf.provider.generic.SOContainer.deserializeContainerMessage(SOContainer.java:530)
at
org.eclipse.ecf.provider.generic.SOContainer.processAsynch(SOContainer.java:868)
at
org.eclipse.ecf.provider.generic.SOContainer$2.handleAsynchEvent(SOContainer.java:206)
at
org.eclipse.ecf.provider.comm.tcp.Client.handleRcv(Client.java:383)
at
org.eclipse.ecf.provider.comm.tcp.Client$4.run(Client.java:356)
at java.lang.Thread.run(Thread.java:745)
******* created 23539477
java.lang.Exception
at
org.osgi.util.tracker.ServiceTracker.<init>(ServiceTracker.java:214)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.getClassResolver(ClassResolverObjectInputStream.java:88)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.resolveClass(ClassResolverObjectInputStream.java:98)
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at
org.eclipse.ecf.provider.generic.SOContainer.defaultDeserializeSharedObjectMessage(SOContainer.java:1009)
at
org.eclipse.ecf.provider.generic.SOContainer$1.deserializeMessage(SOContainer.java:163)
at
org.eclipse.ecf.provider.generic.SOContainer.deserializeSharedObjectMessage(SOContainer.java:1041)
at
org.eclipse.ecf.provider.generic.SOContainer.handleSharedObjectMessage(SOContainer.java:710)
at
org.eclipse.ecf.provider.generic.SOContainer.processAsynch(SOContainer.java:885)
at
org.eclipse.ecf.provider.generic.SOContainer$2.handleAsynchEvent(SOContainer.java:206)
at
org.eclipse.ecf.provider.comm.tcp.Client.handleRcv(Client.java:383)
at
org.eclipse.ecf.provider.comm.tcp.Client$4.run(Client.java:356)
at java.lang.Thread.run(Thread.java:745)
******* created 28666476
java.lang.Exception
at
org.osgi.util.tracker.ServiceTracker.<init>(ServiceTracker.java:214)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.getClassResolver(ClassResolverObjectInputStream.java:88)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.resolveClass(ClassResolverObjectInputStream.java:98)
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at
org.eclipse.ecf.provider.generic.SOContainer.deserializeContainerMessage(SOContainer.java:530)
at
org.eclipse.ecf.provider.generic.SOContainer.processAsynch(SOContainer.java:868)
at
org.eclipse.ecf.provider.generic.SOContainer$2.handleAsynchEvent(SOContainer.java:206)
at
org.eclipse.ecf.provider.comm.tcp.Client.handleRcv(Client.java:383)
at
org.eclipse.ecf.provider.comm.tcp.Client$4.run(Client.java:356)
at java.lang.Thread.run(Thread.java:745)
******* created 24957018
java.lang.Exception
at
org.osgi.util.tracker.ServiceTracker.<init>(ServiceTracker.java:214)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.getClassResolver(ClassResolverObjectInputStream.java:88)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.resolveClass(ClassResolverObjectInputStream.java:98)
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at
org.eclipse.ecf.provider.generic.SOContainer.defaultDeserializeSharedObjectMessage(SOContainer.java:1009)
at
org.eclipse.ecf.provider.generic.SOContainer$1.deserializeMessage(SOContainer.java:163)
at
org.eclipse.ecf.provider.generic.SOContainer.deserializeSharedObjectMessage(SOContainer.java:1041)
at
org.eclipse.ecf.provider.generic.SOContainer.handleSharedObjectMessage(SOContainer.java:710)
at
org.eclipse.ecf.provider.generic.SOContainer.processAsynch(SOContainer.java:885)
at
org.eclipse.ecf.provider.generic.SOContainer$2.handleAsynchEvent(SOContainer.java:206)
at
org.eclipse.ecf.provider.comm.tcp.Client.handleRcv(Client.java:383)
at
org.eclipse.ecf.provider.comm.tcp.Client$4.run(Client.java:356)
at java.lang.Thread.run(Thread.java:745)
******* created 21093621
java.lang.Exception
at
org.osgi.util.tracker.ServiceTracker.<init>(ServiceTracker.java:214)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.getClassResolver(ClassResolverObjectInputStream.java:88)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.resolveClass(ClassResolverObjectInputStream.java:98)
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at
org.eclipse.ecf.provider.generic.SOContainer.deserializeContainerMessage(SOContainer.java:530)
at
org.eclipse.ecf.provider.generic.SOContainer.processAsynch(SOContainer.java:868)
at
org.eclipse.ecf.provider.generic.SOContainer$2.handleAsynchEvent(SOContainer.java:206)
at
org.eclipse.ecf.provider.comm.tcp.Client.handleRcv(Client.java:383)
at
org.eclipse.ecf.provider.comm.tcp.Client$4.run(Client.java:356)
at java.lang.Thread.run(Thread.java:745)
******* created 6684209
java.lang.Exception
at
org.osgi.util.tracker.ServiceTracker.<init>(ServiceTracker.java:214)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.getClassResolver(ClassResolverObjectInputStream.java:88)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.resolveClass(ClassResolverObjectInputStream.java:98)
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at
org.eclipse.ecf.provider.generic.SOContainer.defaultDeserializeSharedObjectMessage(SOContainer.java:1009)
at
org.eclipse.ecf.provider.generic.SOContainer$1.deserializeMessage(SOContainer.java:163)
at
org.eclipse.ecf.provider.generic.SOContainer.deserializeSharedObjectMessage(SOContainer.java:1041)
at
org.eclipse.ecf.provider.generic.SOContainer.handleSharedObjectMessage(SOContainer.java:710)
at
org.eclipse.ecf.provider.generic.SOContainer.processAsynch(SOContainer.java:885)
at
org.eclipse.ecf.provider.generic.SOContainer$2.handleAsynchEvent(SOContainer.java:206)
at
org.eclipse.ecf.provider.comm.tcp.Client.handleRcv(Client.java:383)
at
org.eclipse.ecf.provider.comm.tcp.Client$4.run(Client.java:356)
at java.lang.Thread.run(Thread.java:745)
******* created 32530145
java.lang.Exception
at
org.osgi.util.tracker.ServiceTracker.<init>(ServiceTracker.java:214)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.getClassResolver(ClassResolverObjectInputStream.java:88)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.resolveClass(ClassResolverObjectInputStream.java:98)
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at
org.eclipse.ecf.provider.generic.SOContainer.deserializeContainerMessage(SOContainer.java:530)
at
org.eclipse.ecf.provider.generic.SOContainer.processAsynch(SOContainer.java:868)
at
org.eclipse.ecf.provider.generic.SOContainer$2.handleAsynchEvent(SOContainer.java:206)
at
org.eclipse.ecf.provider.comm.tcp.Client.handleRcv(Client.java:383)
at
org.eclipse.ecf.provider.comm.tcp.Client$4.run(Client.java:356)
at java.lang.Thread.run(Thread.java:745)
******* created 86212
java.lang.Exception
at
org.osgi.util.tracker.ServiceTracker.<init>(ServiceTracker.java:214)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.getClassResolver(ClassResolverObjectInputStream.java:88)
at
org.eclipse.ecf.core.util.ClassResolverObjectInputStream.resolveClass(ClassResolverObjectInputStream.java:98)
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at
org.eclipse.ecf.provider.generic.SOContainer.defaultDeserializeSharedObjectMessage(SOContainer.java:1009)
at
org.eclipse.ecf.provider.generic.SOContainer$1.deserializeMessage(SOContainer.java:163)
at
org.eclipse.ecf.provider.generic.SOContainer.deserializeSharedObjectMessage(SOContainer.java:1041)
at
org.eclipse.ecf.provider.generic.SOContainer.handleSharedObjectMessage(SOContainer.java:710)
at
org.eclipse.ecf.provider.generic.SOContainer.processAsynch(SOContainer.java:885)
at
org.eclipse.ecf.provider.generic.SOContainer$2.handleAsynchEvent(SOContainer.java:206)
at
org.eclipse.ecf.provider.comm.tcp.Client.handleRcv(Client.java:383)
at
org.eclipse.ecf.provider.comm.tcp.Client$4.run(Client.java:356)
at java.lang.Thread.run(Thread.java:745)
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/ecf-dev
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/ecf-dev
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/ecf-dev
--
Mit
freundlichen Grüßen,
Peter Hermsdorf
|
GODYO
Business Solutions AG
Prüssingstraße 35
07745 Jena
|
Peter
Hermsdorf
Senior
Software Developer
|
E-Mail: peter.hermsdorf@xxxxxxxxx
Telefon: +49 3641 287-0
Telefax: +49 3641 287-287
Internet: www.godyo-p4.de
|
![signatur](pngoaqGcc6X29.png)
|
GODYO
Business Solutions AG, Prüssingstraße 35, 07745 Jena,
Vorstand: Hans-Uwe Schramm, Aufsichtsratsvorsitzender: Dirk
Waltje,
Amtsgericht Jena HRB 502 129
Diese
E-Mail ist vertraulich. Wenn Sie nicht der vorgesehene Empfänger
sind, verwenden Sie bitte keine Inhalte dieser E-Mail und leiten
sie diese auch nicht weiter. Wenn Sie fälschlicherweise diese
E-Mail bekommen haben, informieren Sie uns bitte umgehend und
löschen dieses Dokument.
This e-mail is confidential. If you are not the
intended recipient, please do not disclose or use the contents
of the e-mail. If you have erroneously received this e-mail,
please inform us immediately by return e-mail and delete the
document.
|