Hi Dushan,

Dispatcher/Handler will only help in cases where message come to synapse
from outside.

For other cases, we need to develop a extension point in synapse which
invokes after a thread spawn to set CC as thread local.

Seems we can get AxisConfiguration in any place which synapse create a new
thread. So we can develop a handler API which has something like

public void populateThreadLocal(AxisConfiguration) or something

which figure out tenant information and  polulate CC.

@Azeez, can we figure out tenant information by looking at
AxisConfiguration?
Using something like AxisConfiguration.getRepository()

On Fri, Jul 12, 2013 at 10:19 AM, Dushan Abeyruwan <[email protected]> wrote:

> Hi Miyru,
>    I think we can intercept the Carbon context by writing a dispatch in
> DispatchPhase this can be a component whose suppose to resides outside
> synapse.
>
>
> Cheers
> Dushan
>
>
> On Fri, Jul 12, 2013 at 9:58 AM, Afkham Azeez <[email protected]> wrote:
>
>>
>>
>>
>> On Fri, Jul 12, 2013 at 9:54 AM, Miyuru Wanninayaka <[email protected]>wrote:
>>
>>>
>>>
>>> On Fri, Jul 12, 2013 at 9:36 AM, Afkham Azeez <[email protected]> wrote:
>>>
>>>>
>>>>
>>>>
>>>> On Fri, Jul 12, 2013 at 7:28 AM, Miyuru Wanninayaka <[email protected]>wrote:
>>>>
>>>>> Hi Azeez,
>>>>>
>>>>> Sorry, we were not properly following dev@ discussions recently as
>>>>> team was very busy with ESB 4.7 release.
>>>>>
>>>>> Yes we can set proper CC as thread local in request path via handler
>>>>> for NIO transports by looking at To address. But how this can implement in
>>>>> generic manner for other transport ( JMS, VFS....). May be since other
>>>>> transports does not support MT anyway, we can always set ST CC for non 
>>>>> http
>>>>> transports?
>>>>>
>>>>> Also how we can handle thread switching in response path of NIO?
>>>>> Handler will not help in response path.
>>>>>
>>>>> Also there are some mediation threads spawns within synapse without
>>>>> going through axis2 flow such as
>>>>> * Synapse tasks
>>>>> * Message processors
>>>>> * Priority executors
>>>>> * Clone and iterate mediators
>>>>>
>>>>> How can we set CC in these cases?
>>>>
>>>>
>>>> Any bit of execution has to to be associated with some tenant. It is
>>>> true for everything listed above. We need to track things like how much CPU
>>>> time each tenant consumed and so on. So you need to identify the relevant
>>>> plug points, and inject the proper CC.
>>>>
>>>
>>> Only problem is above mentioned flows cannot intercept from outside of
>>> synapse. In such case do we have alternative than writing carbon specific
>>> code inside synapse?
>>>
>>
>>
>> No. This is why interfaces are needed. We have done this enough & more
>> time for Axis2, without writing WSO2 specific code in Axis2.
>>
>>
>>>
>>>>
>>>>>
>>>>>
>>>>> On Thu, Jul 11, 2013 at 9:50 PM, Afkham Azeez <[email protected]> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Jul 11, 2013 at 7:59 PM, Miyuru Wanninayaka 
>>>>>> <[email protected]>wrote:
>>>>>>
>>>>>>> ESB does not sets Carbon Context as thread local because PTT/NHTTP
>>>>>>> threads are totally under synapse. AFIK only servlet transport sets CC 
>>>>>>> as a
>>>>>>> thread local.
>>>>>>>
>>>>>>> In 4.1.0 branch this is working fine without setting CC as thread
>>>>>>> local. Did something changed in trunk?
>>>>>>
>>>>>>
>>>>>> Please keep yourself up to date on what is going on at the platform
>>>>>> level. Platform level enhancements have an effect on all products. There
>>>>>> have been several mail threads on this. you should be able to define a
>>>>>> handler which sets the proper CC into the Thread.
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Jul 11, 2013 at 7:49 PM, Amila Suriarachchi 
>>>>>>> <[email protected]>wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Jul 11, 2013 at 7:31 PM, Miyuru Wanninayaka <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hi Amila,
>>>>>>>>>
>>>>>>>>> Are you referring to CarbonContext thread local variable?
>>>>>>>>
>>>>>>>>
>>>>>>>> yes it gets the tenant domain like this
>>>>>>>>
>>>>>>>> public static String getTenantDomain() {
>>>>>>>>         return getCarbonContext().getTenantDomain();
>>>>>>>>     }
>>>>>>>>
>>>>>>>> thanks,
>>>>>>>> Amila.
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thu, Jul 11, 2013 at 6:27 PM, Amila Suriarachchi <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Thu, Jul 11, 2013 at 4:40 PM, Dushan Abeyruwan <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi
>>>>>>>>>>>  Getting following error when executing proxy service ESB 4.8.0
>>>>>>>>>>> built 2013-07-11
>>>>>>>>>>>
>>>>>>>>>>> [2013-07-11 16:37:22,177]  INFO - ProxyService Building Axis
>>>>>>>>>>> service for Proxy service : SearchTwitter
>>>>>>>>>>> [2013-07-11 16:37:22,177]  INFO - ProxyService Adding service
>>>>>>>>>>> SearchTwitter to the Axis2 configuration
>>>>>>>>>>> [2013-07-11 16:37:22,182]  INFO - DeploymentInterceptor
>>>>>>>>>>> Deploying Axis2 service: SearchTwitter {super-tenant}
>>>>>>>>>>> [2013-07-11 16:37:22,208]  INFO - ProxyService Successfully
>>>>>>>>>>> created the Axis2 service for Proxy service : SearchTwitter
>>>>>>>>>>> [2013-07-11 16:37:29,694]  INFO - LogMediator To:
>>>>>>>>>>> /services/SearchTwitter, WSAction: urn:getQuote, SOAPAction: 
>>>>>>>>>>> urn:getQuote,
>>>>>>>>>>> MessageID: urn:uuid:6421430e-e95c-4aa2-a9ba-f*cd37f7753e3,
>>>>>>>>>>> Direction: request*
>>>>>>>>>>> *[2013-07-11 16:37:29,695] ERROR - NativeWorkerPool Uncaught
>>>>>>>>>>> exception*
>>>>>>>>>>> *java.lang.NullPointerException*
>>>>>>>>>>> * at
>>>>>>>>>>> java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768)
>>>>>>>>>>> *
>>>>>>>>>>> * at
>>>>>>>>>>> org.wso2.carbon.caching.impl.CacheManagerFactoryImpl.getCacheManager(CacheManagerFactoryImpl.java:78)
>>>>>>>>>>> *
>>>>>>>>>>> at
>>>>>>>>>>> org.wso2.carbon.registry.core.utils.RegistryUtils.getCacheManager(RegistryUtils.java:289)
>>>>>>>>>>>  at
>>>>>>>>>>> org.wso2.carbon.registry.core.utils.RegistryUtils.getResourceCache(RegistryUtils.java:272)
>>>>>>>>>>> at
>>>>>>>>>>> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.getCache(CacheBackedRegistry.java:62)
>>>>>>>>>>>  at
>>>>>>>>>>> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.resourceExists(CacheBackedRegistry.java:246)
>>>>>>>>>>> at
>>>>>>>>>>> org.wso2.carbon.registry.core.session.UserRegistry.resourceExists(UserRegistry.java:629)
>>>>>>>>>>>  at
>>>>>>>>>>> org.wso2.carbon.mediation.registry.WSO2Registry.getResource(WSO2Registry.java:527)
>>>>>>>>>>> at
>>>>>>>>>>> org.wso2.carbon.mediation.registry.WSO2Registry.lookup(WSO2Registry.java:131)
>>>>>>>>>>>  at
>>>>>>>>>>> org.apache.synapse.registry.AbstractRegistry.getResource(AbstractRegistry.java:63)
>>>>>>>>>>> at
>>>>>>>>>>> org.apache.synapse.config.SynapseConfiguration.getSequenceTemplate(SynapseConfiguration.java:395)
>>>>>>>>>>>  at
>>>>>>>>>>> org.apache.synapse.core.axis2.Axis2MessageContext.getSequenceTemplate(Axis2MessageContext.java:191)
>>>>>>>>>>> at
>>>>>>>>>>> org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:71)
>>>>>>>>>>>  at
>>>>>>>>>>> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:71)
>>>>>>>>>>> at
>>>>>>>>>>> org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
>>>>>>>>>>>  at
>>>>>>>>>>> org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:162)
>>>>>>>>>>> at
>>>>>>>>>>> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
>>>>>>>>>>>  at
>>>>>>>>>>> org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:404)
>>>>>>>>>>> at
>>>>>>>>>>> org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:184)
>>>>>>>>>>>  at
>>>>>>>>>>> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(Nat
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> seems like tenant domain is null for the threads originating from
>>>>>>>>>> passthrough transport threads. Can you please check the tenant 
>>>>>>>>>> domain of
>>>>>>>>>> the pass through transport threads?
>>>>>>>>>>
>>>>>>>>>> thanks,
>>>>>>>>>> Amila.
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Dushan Abeyruwan
>>>>>>>>>>> Associate Tech Lead
>>>>>>>>>>> *Integration Technologies Team*
>>>>>>>>>>> *WSO2 Inc. http://wso2.com/*
>>>>>>>>>>> *Mobile:(+94)714408632*
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Dev mailing list
>>>>>>>>>>> [email protected]
>>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> *Amila Suriarachchi*
>>>>>>>>>>
>>>>>>>>>> Software Architect
>>>>>>>>>> WSO2 Inc. ; http://wso2.com
>>>>>>>>>> lean . enterprise . middleware
>>>>>>>>>>
>>>>>>>>>> phone : +94 71 3082805
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Dev mailing list
>>>>>>>>>> [email protected]
>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Miyuru Wanninayaka
>>>>>>>>> Technical Lead
>>>>>>>>> WSO2 Inc. : http://wso2.com
>>>>>>>>>
>>>>>>>>> Mobile : +94 77 209 9788
>>>>>>>>> Blog : http://miyurudw.blogspot.com
>>>>>>>>> Flickr : http://www.flickr.com/photos/miyuru_daminda
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> *Amila Suriarachchi*
>>>>>>>>
>>>>>>>> Software Architect
>>>>>>>> WSO2 Inc. ; http://wso2.com
>>>>>>>> lean . enterprise . middleware
>>>>>>>>
>>>>>>>> phone : +94 71 3082805
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Miyuru Wanninayaka
>>>>>>> Technical Lead
>>>>>>> WSO2 Inc. : http://wso2.com
>>>>>>>
>>>>>>> Mobile : +94 77 209 9788
>>>>>>> Blog : http://miyurudw.blogspot.com
>>>>>>> Flickr : http://www.flickr.com/photos/miyuru_daminda
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Dev mailing list
>>>>>>> [email protected]
>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Afkham Azeez*
>>>>>> Director of Architecture; WSO2, Inc.; http://wso2.com
>>>>>> Member; Apache Software Foundation; http://www.apache.org/
>>>>>> * <http://www.apache.org/>**
>>>>>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919
>>>>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>*
>>>>>> twitter: 
>>>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
>>>>>> *
>>>>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez*
>>>>>> *
>>>>>> *
>>>>>> *Lean . Enterprise . Middleware*
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Miyuru Wanninayaka
>>>>> Technical Lead
>>>>> WSO2 Inc. : http://wso2.com
>>>>>
>>>>> Mobile : +94 77 209 9788
>>>>> Blog : http://miyurudw.blogspot.com
>>>>> Flickr : http://www.flickr.com/photos/miyuru_daminda
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> *Afkham Azeez*
>>>> Director of Architecture; WSO2, Inc.; http://wso2.com
>>>> Member; Apache Software Foundation; http://www.apache.org/
>>>> * <http://www.apache.org/>**
>>>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919
>>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>*
>>>> twitter: 
>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
>>>> *
>>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez*
>>>> *
>>>> *
>>>> *Lean . Enterprise . Middleware*
>>>>
>>>
>>>
>>>
>>> --
>>> Miyuru Wanninayaka
>>> Technical Lead
>>> WSO2 Inc. : http://wso2.com
>>>
>>> Mobile : +94 77 209 9788
>>> Blog : http://miyurudw.blogspot.com
>>> Flickr : http://www.flickr.com/photos/miyuru_daminda
>>>
>>
>>
>>
>> --
>> *Afkham Azeez*
>> Director of Architecture; WSO2, Inc.; http://wso2.com
>> Member; Apache Software Foundation; http://www.apache.org/
>> * <http://www.apache.org/>**
>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919
>> blog: **http://blog.afkham.org* <http://blog.afkham.org>*
>> twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
>> *
>> linked-in: **http://lk.linkedin.com/in/afkhamazeez*
>> *
>> *
>> *Lean . Enterprise . Middleware*
>>
>> _______________________________________________
>> Dev mailing list
>> [email protected]
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
> Dushan Abeyruwan
> Associate Tech Lead
> *Integration Technologies Team*
> *WSO2 Inc. http://wso2.com/*
> *Mobile:(+94)714408632*
>



-- 
Miyuru Wanninayaka
Technical Lead
WSO2 Inc. : http://wso2.com

Mobile : +94 77 209 9788
Blog : http://miyurudw.blogspot.com
Flickr : http://www.flickr.com/photos/miyuru_daminda
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to