Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » Eclipse Communications Framework (ECF) » Remote services lost after one hour
Remote services lost after one hour [message #1776237] Tue, 14 November 2017 09:26 Go to next message
Vincent Sennedot is currently offline Vincent SennedotFriend
Messages: 10
Registered: March 2015
Junior Member
Hello,
I have two applications which communicate with OSGi remote services on the same system.

But always after exactly one hour, the service consumer loses the remote services, although the host application still detects the consumer one in the remote registry.
If I restart the consumer application, it doesn't find the remote services anymore and the host application doesn't detect any connection. I need to restart the host application to go back to normal.

Does anyone have a solution to not lose the connection after this timeout?

Regards!

Vincent

Edit: I forgot to precise that I use the ECF generic server.

[Updated on: Tue, 14 November 2017 13:21]

Report message to a moderator

Re: Remote services lost after one hour [message #1776291 is a reply to message #1776237] Wed, 15 November 2017 05:52 Go to previous messageGo to next message
Scott Lewis is currently offline Scott LewisFriend
Messages: 1038
Registered: July 2009
Senior Member
Vincent Sennedot wrote on Tue, 14 November 2017 04:26
Hello,
I have two applications which communicate with OSGi remote services on the same system.

But always after exactly one hour, the service consumer loses the remote services, although the host application still detects the consumer one in the remote registry.
If I restart the consumer application, it doesn't find the remote services anymore and the host application doesn't detect any connection. I need to restart the host application to go back to normal.

Does anyone have a solution to not lose the connection after this timeout?

Regards!

Vincent

Edit: I forgot to precise that I use the ECF generic server.


Hi Vincent. This is strange. There is no timeout in the ECF generic server/client that would force such a disconnection after one hour. Why it's disconnecting for you after one hour is a bit of a mystery right now. First some questions that will help narrow things down: 1) What version of ECF are you using? 2) By same system to you mean the same host/localhost? 3) Are you able to reproduce this on some other system? 4) What OS is on this system? 5) What is your code doing during that hour? i.e. are some/all of the remote services being called/used? Or are they all idle?

Would it be possible for me to run your app(s) locally to see if I can reproduce?

I've created a bug for this here: https://bugs.eclipse.org/bugs/show_bug.cgi?id=527276

If you could join the cc for this bug it maybe easier. Thanks.
Re: Remote services lost after one hour [message #1776349 is a reply to message #1776291] Wed, 15 November 2017 14:15 Go to previous message
Vincent Sennedot is currently offline Vincent SennedotFriend
Messages: 10
Registered: March 2015
Junior Member
Thanks for your answer.

To reply to your questions:
1) The host application uses the ECF version which is on the Oxygen repo (3.13.8) and the consumer application uses the one which is on the Neon repo (3.13.2).
2) Yes, it's the same host/localhost.
3) Yes, my colleagues have encountered this problem on their system too.
4) We all use Windows 10.
5) The remote services are only used from user actions, they idle the rest of the time. But the disconnection is always one hour after the service bindings, no matter what is done during this time.

Unfortunately, I can't send you the applications because the host one is a proprietary software and I can't share it.

But there are some logs that maybe could help you.
After the disconnection, when I close the consumer application, there is this exception:
!ENTRY org.eclipse.ecf 4 0 2017-11-15 14:35:01.419
!MESSAGE org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf;code=4;message=container dispose error;severity4;exception=java.lang.NullPointerException;children=[]]
!STACK 0
java.lang.NullPointerException
	at org.eclipse.ecf.internal.docshare.ECFStart$1.handleEvent(ECFStart.java:34)
	at org.eclipse.ecf.core.AbstractContainer.fireContainerEvent(AbstractContainer.java:61)
	at org.eclipse.ecf.provider.generic.ClientSOContainer.disconnect(ClientSOContainer.java:445)
	at org.eclipse.ecf.provider.generic.ClientSOContainer.disconnect(ClientSOContainer.java:290)
	at org.eclipse.ecf.provider.generic.ClientSOContainer.dispose(ClientSOContainer.java:74)
	at org.eclipse.ecf.core.ContainerFactory$1.dispose(ContainerFactory.java:95)
	at org.eclipse.ecf.internal.core.ECFPlugin.fireDisposables(ECFPlugin.java:305)
	at org.eclipse.ecf.internal.core.ECFPlugin.stop(ECFPlugin.java:256)
	at org.eclipse.osgi.internal.framework.BundleContextImpl$4.run(BundleContextImpl.java:830)
	at org.eclipse.osgi.internal.framework.BundleContextImpl$4.run(BundleContextImpl.java:1)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.stop(BundleContextImpl.java:823)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.stopWorker0(EquinoxBundle.java:946)
	at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.stopWorker(EquinoxBundle.java:314)
	at org.eclipse.osgi.container.Module.doStop(Module.java:636)
	at org.eclipse.osgi.container.Module.stop(Module.java:498)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.decStartLevel(ModuleContainer.java:1661)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1580)
	at org.eclipse.osgi.container.SystemModule.stopWorker(SystemModule.java:270)
	at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule.stopWorker(EquinoxBundle.java:147)
	at org.eclipse.osgi.container.Module.doStop(Module.java:636)
	at org.eclipse.osgi.container.Module.stop(Module.java:498)
	at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:202)
	at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:165)
	at java.lang.Thread.run(Unknown Source)


And when I start it again:
!ENTRY org.eclipse.equinox.ds 1 0 2017-11-15 14:52:27.110
!MESSAGE Could not bind a reference of component org.eclipse.ecf.mgmt.rsa.discovery.ui.discovery. The reference is: Reference[name = RemoteServiceAdmin, interface = org.osgi.service.remoteserviceadmin.RemoteServiceAdmin, policy = dynamic, cardinality = 0..1, target = null, bind = bindRemoteServiceAdmin, unbind = unbindRemoteServiceAdmin]

!ENTRY org.eclipse.equinox.ds 1 0 2017-11-15 14:52:27.115
!MESSAGE Could not bind a reference of component org.eclipse.ecf.mgmt.rsa.discovery.ui.discovery. The reference is: Reference[name = IEndpointDescriptionLocator, interface = org.eclipse.ecf.osgi.services.remoteserviceadmin.IEndpointDescriptionLocator, policy = dynamic, cardinality = 0..1, target = null, bind = bindEndpointDescriptionLocator, unbind = unbindEndpointDescriptionLocator]
Previous Topic:Mutiple DistributionProviders for a the same component
Next Topic:Selecting best implementation for Remote Service
Goto Forum:
  


Current Time: Fri Apr 19 22:50:38 GMT 2024

Powered by FUDForum. Page generated in 0.01970 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top