This is why the usage model is
 
begin coordination;
try {
  do something that should be coordinated;
} finally {
  end coordination;
}
 
The finally ensures the coordination is not left forever in a thread local.
--

BJ Hargrave
Senior Technical Staff Member, IBM // office: +1 386 848 1781
OSGi Fellow and CTO of the OSGi Alliance // mobile: +1 386 848 3788
hargr...@us.ibm.com
 
 
----- Original message -----
From: Christian Schneider <ch...@die-schneider.net>
Sent by: osgi-dev-boun...@mail.osgi.org
To: OSGi Developer Mail List <osgi-dev@mail.osgi.org>
Cc:
Subject: Re: [osgi-dev] Valid coordinator scenario?
Date: Fri, Jul 31, 2015 8:57 AM
 
On 31.07.2015 14:30, Carsten Ziegeler wrote:
> Am 31.07.15 um 14:24 schrieb Peter Kriens:
>> I think it is impossible to implement Coordinator without having a strong reference to all active Coordination’s, how could pop() otherwise return the current coordination? And the reflection API has the same implications. So the answer is clearly yes.
>>
>> That said, this way you loose an extra safety check that nobody screwed up downstream …
>>
> Ok, if the answer is yes, then this coordination might stay around
> forever (or until that thread dies), e.g. if I just do
>
> coordinator.begin("test", 0);
>
> Carsten

Yes .. this is a disadvantage.

The problem though without this feature would be that I would need my
own thread local to keep the coordinations I use.

For example look into this scenario:

serviceA -> serviceB -> RepositoryC

serviceA and serviceB and RepositoryC define @Transactional.

I have an interceptor that handles all the beans. It will start a
coordination before calling the real method and end it after the call
comes back.
So if I would not use the stack based coordinator API I would have three
levels of coordinations in the same thread in my example that I have to
track. So I would have to
create my own thread local with a Stack and store the coordinations
there. In the end I would have the same problem as with the
coordinator.begin api.

So I agree that it is risky if you are not careful with ending the
coordinations but I do not see a better way to do it.

Christian



--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com

_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to