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
