You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Maurice Betzel <m....@gaston-schul.com> on 2022/07/04 12:16:50 UTC

Karaf Cellar, un-import OSGi service on client node if remote service is stopped?

Good afternoon,

Some DOSGi questions appeared when researching cluster wide exported service properties propagation.
In version 4.2.1 I am observing the following behaviour on the client node if I turn off a remote service:

On startup the client node will import the remote service to the local service registry by endpoint ID via the ImportServiceListener.
I can start using the service and receive responses.
If I now stop the remote service bundle I would expect that the client would un-import the service from the local OSGi service registry.
This is not the case.
The service tracker monitoring remote services does notice the removed service but nothing else is happening.
If the client now calls the service, it will stall for about 20 seconds and then return null instead of a service not found exception.

I this the default behaviour? Is it possible to un-import the remote service if the endpoint gets removed from the Hazelcast service map?

Met vriendelijke groet / Mit freundlichen Grüßen / Kind regards,
Maurice


Al onze verrichtingen geschieden op basis van de Algemene voorwaarden der Expediteurs van België, gepubliceerd in de bijlage tot het Belgisch Staatsblad dd. 24 juni 2005 onder nr. 0090237. De tekst van deze voorwaarden wordt op uw verzoek gratis toegezonden.
All our transactions are subject to the General Conditions of the Belgian Forwarders Association which have been published under nr. 0090237 in the "Bijlage tot het Belgisch Staatsblad" dated June 24th, 2005, and is available free of charge upon request.
Toutes nos opérations se font sur base des Conditions Générales des Expéditeurs de Belgique. Le texte en a été publié dans l' Annexe au Moniteur Belge du 24 juin 2005 sous le n° 0090237. Ce texte sera vous envoyé gratuitment sur demande.
Email confidentiality notice:
This email and any files transmitted with it are confidential and intended only for the use of the recipient. If you have received this email in error please notify its sender.


RE: Karaf Cellar, un-import OSGi service on client node if remote service is stopped?

Posted by Maurice Betzel <m....@gaston-schul.com>.
Thanks Scott,

I have started hardening the DOSGi module of Karaf Cellar and the tests are looking very good.
The main issue was an executer thread dying a silent death and not registering any further remote services on the local registry.
The project you suggested will be my bathtub lecture for the upcoming days, maybe I can gain some more insights in handling distributed OSGI services.

Met vriendelijke groet / Mit freundlichen Grüßen / Kind regards,
Maurice Betzel

From: Scott Lewis <sl...@composent.com>
Sent: 26 July 2022 03:11
To: user@karaf.apache.org
Subject: Re: Karaf Cellar, un-import OSGi service on client node if remote service is stopped?

 CAUTION: This email originated from outside of Gaston Schul. Do not click links or open attachments unless you recognize the sender and know the content is safe.


Hi Maurice,
On 7/4/2022 5:16 AM, Maurice Betzel wrote:
Good afternoon,

Some DOSGi questions appeared when researching cluster wide exported service properties propagation.
In version 4.2.1 I am observing the following behaviour on the client node if I turn off a remote service:

On startup the client node will import the remote service to the local service registry by endpoint ID via the ImportServiceListener.
I can start using the service and receive responses.
If I now stop the remote service bundle I would expect that the client would un-import the service from the local OSGi service registry.
This is not the case.
The service tracker monitoring remote services does notice the removed service but nothing else is happening.
If the client now calls the service, it will stall for about 20 seconds and then return null instead of a service not found exception.

I this the default behaviour? Is it possible to un-import the remote service if the endpoint gets removed from the Hazelcast service map?

I'm  not familiar enough with the Cellar DOSGi impl to say why you are not experiencing the expected behavior (remote service is unregistered, then clients should unimport the remote service and unregister the proxy).

I can tell you that ECF RSA impl [1] + the Hazelcast distribution provider (see [2]) does have this expected behavior.  There are instructions in the README.md for running an example app with the Hazelcast provider on Karaf (i.e. using karaf features).

Scott

[1] https://wiki.eclipse.org/Eclipse_Communication_Framework_Project

[2] https://github.com/ECF/HazelcastProvider



Met vriendelijke groet / Mit freundlichen Grüßen / Kind regards,
Maurice


Al onze verrichtingen geschieden op basis van de Algemene voorwaarden der Expediteurs van België, gepubliceerd in de bijlage tot het Belgisch Staatsblad dd. 24 juni 2005 onder nr. 0090237. De tekst van deze voorwaarden wordt op uw verzoek gratis toegezonden.
All our transactions are subject to the General Conditions of the Belgian Forwarders Association which have been published under nr. 0090237 in the "Bijlage tot het Belgisch Staatsblad" dated June 24th, 2005, and is available free of charge upon request.
Toutes nos opérations se font sur base des Conditions Générales des Expéditeurs de Belgique. Le texte en a été publié dans l' Annexe au Moniteur Belge du 24 juin 2005 sous le n° 0090237. Ce texte sera vous envoyé gratuitment sur demande.
Email confidentiality notice:
This email and any files transmitted with it are confidential and intended only for the use of the recipient. If you have received this email in error please notify its sender.



Al onze verrichtingen geschieden op basis van de Algemene voorwaarden der Expediteurs van België, gepubliceerd in de bijlage tot het Belgisch Staatsblad dd. 24 juni 2005 onder nr. 0090237. De tekst van deze voorwaarden wordt op uw verzoek gratis toegezonden.
All our transactions are subject to the General Conditions of the Belgian Forwarders Association which have been published under nr. 0090237 in the "Bijlage tot het Belgisch Staatsblad" dated June 24th, 2005, and is available free of charge upon request.
Toutes nos opérations se font sur base des Conditions Générales des Expéditeurs de Belgique. Le texte en a été publié dans l' Annexe au Moniteur Belge du 24 juin 2005 sous le n° 0090237. Ce texte sera vous envoyé gratuitment sur demande.
Email confidentiality notice:
This email and any files transmitted with it are confidential and intended only for the use of the recipient. If you have received this email in error please notify its sender.


Re: Karaf Cellar, un-import OSGi service on client node if remote service is stopped?

Posted by Scott Lewis <sl...@composent.com>.
Hi Maurice,

On 7/4/2022 5:16 AM, Maurice Betzel wrote:
>
> Good afternoon,
>
> Some DOSGi questions appeared when researching cluster wide exported 
> service properties propagation.
>
> In version 4.2.1 I am observing the following behaviour on the client 
> node if I turn off a remote service:
>
> On startup the client node will import the remote service to the local 
> service registry by endpoint ID via the ImportServiceListener.
>
> I can start using the service and receive responses.
>
> If I now stop the remote service bundle I would expect that the client 
> would un-import the service from the local OSGi service registry.
>
> This is not the case.
>
> The service tracker monitoring remote services does notice the removed 
> service but nothing else is happening.
>
> If the client now calls the service, it will stall for about 20 
> seconds and then return null instead of a service not found exception.
>
> I this the default behaviour? Is it possible to un-import the remote 
> service if the endpoint gets removed from the Hazelcast service map?
>
I'm  not familiar enough with the Cellar DOSGi impl to say why you are 
not experiencing the expected behavior (remote service is unregistered, 
then clients should unimport the remote service and unregister the proxy).

I can tell you that ECF RSA impl [1] + the Hazelcast distribution 
provider (see [2]) does have this expected behavior.  There are 
instructions in the README.md for running an example app with the 
Hazelcast provider on Karaf (i.e. using karaf features).

Scott

[1] https://wiki.eclipse.org/Eclipse_Communication_Framework_Project

[2] https://github.com/ECF/HazelcastProvider


> Met vriendelijke groet / Mit freundlichen Grüßen / Kind regards,
>
> Maurice
>
> Al onze verrichtingen geschieden op basis van de Algemene voorwaarden 
> der Expediteurs van België, gepubliceerd in de bijlage tot het 
> Belgisch Staatsblad dd. 24 juni 2005 onder nr. 0090237. De tekst van 
> deze voorwaarden wordt op uw verzoek gratis toegezonden.
> All our transactions are subject to the General Conditions of the 
> Belgian Forwarders Association which have been published under nr. 
> 0090237 in the "Bijlage tot het Belgisch Staatsblad" dated June 24th, 
> 2005, and is available free of charge upon request.
> Toutes nos opérations se font sur base des Conditions Générales des 
> Expéditeurs de Belgique. Le texte en a été publié dans l' Annexe au 
> Moniteur Belge du 24 juin 2005 sous le n° 0090237. Ce texte sera vous 
> envoyé gratuitment sur demande.
> Email confidentiality notice:
> This email and any files transmitted with it are confidential and 
> intended only for the use of the recipient. If you have received this 
> email in error please notify its sender.
>