Hi Kasun, Yes sure, I will debug the flow and see. Thanks
On Tue, Mar 10, 2015 at 7:44 PM, Mahesh Chinthaka <[email protected]> wrote: > I talked with KasunG and he said that this might be due to a problem in > the process we load the webapp and check whether its loaded. I have > explained in below sketch as I understood it. > @kasunG please correct me if I've misunderstood anything here. > > > According to the above flow, if the webapp is unloaded at the time of > request comes, this kind of a issue can occur. > > On Tue, Mar 10, 2015 at 7:18 PM, Mahesh Chinthaka <[email protected]> > wrote: > >> Hi all, >> I think I found the root cause here. >> >> Actually there are two scenarios, >> scenario1 - webapp is loaded >> scenario2 - webapp is unloaded >> >> (Reason for getting this reproduced when the tenant is unloaded; is that >> when tenant is unloaded , the webapp gets unloaded too.But actual effect is >> unloading the webapp) >> >> Simply the cause is InitialContext not being set properly. >> >> In *ApplicationAwareCarbonJavaURLContextFactory* class, before we get >> the initial context we check whether the request coming from a webapp. >> If yes we return the *CarbonServerSelectorContext* else we just send the >> *NamingContext.* >> We have used following code to check whether the request is coming from a >> webapp or not, As I can see its checking with class loader. >> >> *if (ContextBindings.isClassLoaderBound())* >> >> when the webapp is unloaded above code returns false. >> >> >> values of contexts are as follows, >> *CarbonServerSelectorContext* - >> org.wso2.carbon.appfactory.ext.jndi.Context.CarbonServerSelectorContext >> *NamingContext* - org.apache.naming.NamingContext >> >> Our datasource is available only in *CarbonServerSelectorContext. *So >> whenever the *NamingContext* is returned , datasource appears to be >> null. So application is unable to show data. Thats pretty much the case. >> >> I have one question. >> >> *Is there any other way to check the request whether its coming from a >> webapp or not ?* If yes we can easily solve this issue. >> >> >> >> >> >> On Mon, Mar 9, 2015 at 12:12 PM, Mahesh Chinthaka <[email protected]> >> wrote: >> >>> Hi Harsha, >>> >>> Frankly I dont have much idea why its happenning like that, and this >>> happens in that way after the fix for APPFAC -2195 [1] >>> >>> This is the exact code segment im talking about. >>> >>> >>> try { >>> context.startTenantFlow(); >>> >>> >>> context.getThreadLocalCarbonContext().setTenantId(tenantManager.getTenantId(tenantDomain)); >>> context.getThreadLocalCarbonContext().setTenantDomain(tenantDomain); >>> context.getThreadLocalCarbonContext().setUsername(userName); >>> accessUrl = >>> server.osgiService('org.wso2.carbon.appfactory.application.mgt.service.ApplicationManagementService') >>> >>> .getApplicationUrl(applicationKey, version, stage, tenantDomain); >>> status = >>> server.osgiService('org.wso2.carbon.appfactory.application.mgt.service.ApplicationManagementService') >>> >>> .getApplicationStatus(applicationKey, version, stage, tenantDomain); >>> >>> if(!status){ >>> //fix for APPFAC-2195 >>> //load the tenant >>> if(accessUrl){ >>> var xhr = new XMLHttpRequest(); >>> xhr.open("GET",accessUrl + "",false); >>> xhr.send(""); >>> } >>> >>> status = >>> server.osgiService('org.wso2.carbon.appfactory.application.mgt.service.ApplicationManagementService') >>> >>> .getApplicationStatus(applicationKey, version, stage, tenantDomain); >>> } >>> if(status){ >>> url=accessUrl; >>> } >>> >>> } finally { >>> context.endTenantFlow(); >>> } >>> >>> >>> >>> [1] - https://wso2.org/jira/browse/APPFAC-2195 >>> >>> >>> On Mon, Mar 9, 2015 at 11:59 AM, Harsha Thirimanna <[email protected]> >>> wrote: >>> >>>> Hi Mahesh, >>>> >>>> One question, >>>> What is the meaning of deploy status false and why it try >>>> to retrieve URl if it is not deploy ? Is that the behavior we are doing or >>>> are there any logic behind the seen ? >>>> >>>> If it is required then, I think you suggestion may be good. But how it >>>> load the tenant ? >>>> >>>> >>>> *Harsha Thirimanna* >>>> Senior Software Engineer; WSO2, Inc.; http://wso2.com >>>> * <http://www.apache.org/>* >>>> *email: **[email protected]* <[email protected]>* cell: +94 71 5186770 , >>>> +94 * >>>> *774617784twitter: **http://twitter.com/ >>>> <http://twitter.com/afkham_azeez>* >>>> *harshathirimannlinked-in: **http: >>>> <http://lk.linkedin.com/in/afkhamazeez>**//www.linkedin.com/pub/harsha-thirimanna/10/ab8/122 >>>> <http://www.linkedin.com/pub/harsha-thirimanna/10/ab8/122>* >>>> >>>> *Lean . Enterprise . Middleware* >>>> >>>> >>>> On Sun, Mar 8, 2015 at 11:21 PM, Mahesh Chinthaka <[email protected]> >>>> wrote: >>>> >>>>> Hi all, >>>>> >>>>> Found that when the "Launch" button is clicked in Repos n builds page >>>>> it checks for the application deployed status, >>>>> If deployed status is false, then it loads the tenant again and get >>>>> access url for the app. >>>>> If deployed status is true, then it just access the app url without >>>>> loading the tenant. >>>>> >>>>> When I tried with removing the if statement and tried loading the >>>>> tenant each time fixed the issue. >>>>> >>>>> What are the bad/good effects of solving this issue with above >>>>> mentioned change ? >>>>> >>>>> On Sat, Mar 7, 2015 at 10:08 AM, Harsha Thirimanna <[email protected]> >>>>> wrote: >>>>> >>>>>> Hi Mahesh, >>>>>> >>>>>> You can set tenant unloading time for few minutes. And check that. >>>>>> >>>>>> >>>>>> *Harsha Thirimanna* >>>>>> Senior Software Engineer; WSO2, Inc.; http://wso2.com >>>>>> * <http://www.apache.org/>* >>>>>> *email: **[email protected]* <[email protected]>* cell: +94 71 5186770 >>>>>> , +94 * >>>>>> *774617784twitter: **http://twitter.com/ >>>>>> <http://twitter.com/afkham_azeez>* >>>>>> *harshathirimannlinked-in: **http: >>>>>> <http://lk.linkedin.com/in/afkhamazeez>**//www.linkedin.com/pub/harsha-thirimanna/10/ab8/122 >>>>>> <http://www.linkedin.com/pub/harsha-thirimanna/10/ab8/122>* >>>>>> >>>>>> *Lean . Enterprise . Middleware* >>>>>> >>>>>> >>>>>> On Fri, Mar 6, 2015 at 8:35 PM, Mahesh Chinthaka <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Hi Danushka, >>>>>>> >>>>>>> Tenant domain and tenant Id are set properly at everytime. other >>>>>>> parameters are null. ok, lets see on Monday. >>>>>>> @Harsha, >>>>>>> Could be, have any idea of overcoming that ?? >>>>>>> >>>>>>> On Fri, Mar 6, 2015 at 10:08 PM, Danushka Fernando < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> May be this is due to some missing patch. Lets discuss this monday. >>>>>>>> >>>>>>>> Thanks & Regards >>>>>>>> Danushka Fernando >>>>>>>> Software Engineer >>>>>>>> WSO2 inc. http://wso2.com/ >>>>>>>> Mobile : +94716332729 >>>>>>>> >>>>>>>> On Fri, Mar 6, 2015 at 9:43 PM, Harsha Thirimanna <[email protected] >>>>>>>> > wrote: >>>>>>>> >>>>>>>>> Hi Mahesh, >>>>>>>>> Is this may be tenant loading delay for the first time ? >>>>>>>>> On Mar 6, 2015 6:51 AM, "Danushka Fernando" <[email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> When you say "CarbonContext data are empty" are they null or are >>>>>>>>>> they not tenant data? >>>>>>>>>> What's the value of tenant domain and tenant id of carbon context? >>>>>>>>>> >>>>>>>>>> Thanks & Regards >>>>>>>>>> Danushka Fernando >>>>>>>>>> Software Engineer >>>>>>>>>> WSO2 inc. http://wso2.com/ >>>>>>>>>> Mobile : +94716332729 >>>>>>>>>> >>>>>>>>>> On Fri, Mar 6, 2015 at 8:10 PM, Mahesh Chinthaka < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Hi All, >>>>>>>>>>> >>>>>>>>>>> Im working on [1]. This is regarding appfactory sample "Customer >>>>>>>>>>> Portal". >>>>>>>>>>> >>>>>>>>>>> We have a webapp that uses a datasource/database. >>>>>>>>>>> When we deploy it and access for the first time , context data >>>>>>>>>>> doesn't get loaded. When refreshed the browser or try to access the >>>>>>>>>>> app for >>>>>>>>>>> the second time (click again in 'open' url) it works fine. >>>>>>>>>>> >>>>>>>>>>> When I analyzed and debugged the code I found that CarbonContext >>>>>>>>>>> data are empty. >>>>>>>>>>> But in ApplicationAwareDataSourceRepository.java class and >>>>>>>>>>> in CarbonContextCreatorValve.java class those context details are >>>>>>>>>>> being set >>>>>>>>>>> properly. >>>>>>>>>>> >>>>>>>>>>> When our sample webapp tries to read those values it returns >>>>>>>>>>> null for the first time. >>>>>>>>>>> >>>>>>>>>>> What can be the reason for this ? >>>>>>>>>>> >>>>>>>>>>> [1] - https://wso2.org/jira/browse/APPFAC-2998 >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> *Mahesh Chinthaka Vidanagama* | Software Engineer >>>>>>>>>>> WSO2, Inc | lean. enterprise. middleware. >>>>>>>>>>> #20, Palm Grove, Colombo 03, Sri Lanka >>>>>>>>>>> Mobile: +94 71 63 63 083 | Work: +94 112 145 345 >>>>>>>>>>> Email: [email protected] | Web: www.wso2.com >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> Dev mailing list >>>>>>>>>>> [email protected] >>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> Dev mailing list >>>>>>>>>> [email protected] >>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Mahesh Chinthaka Vidanagama* | Software Engineer >>>>>>> WSO2, Inc | lean. enterprise. middleware. >>>>>>> #20, Palm Grove, Colombo 03, Sri Lanka >>>>>>> Mobile: +94 71 63 63 083 | Work: +94 112 145 345 >>>>>>> Email: [email protected] | Web: www.wso2.com >>>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Mahesh Chinthaka Vidanagama* | Software Engineer >>>>> WSO2, Inc | lean. enterprise. middleware. >>>>> #20, Palm Grove, Colombo 03, Sri Lanka >>>>> Mobile: +94 71 63 63 083 | Work: +94 112 145 345 >>>>> Email: [email protected] | Web: www.wso2.com >>>>> >>>> >>>> >>> >>> >>> -- >>> *Mahesh Chinthaka Vidanagama* | Software Engineer >>> WSO2, Inc | lean. enterprise. middleware. >>> #20, Palm Grove, Colombo 03, Sri Lanka >>> Mobile: +94 71 63 63 083 | Work: +94 112 145 345 >>> Email: [email protected] | Web: www.wso2.com >>> >> >> >> >> -- >> *Mahesh Chinthaka Vidanagama* | Software Engineer >> WSO2, Inc | lean. enterprise. middleware. >> #20, Palm Grove, Colombo 03, Sri Lanka >> Mobile: +94 71 63 63 083 | Work: +94 112 145 345 >> Email: [email protected] | Web: www.wso2.com >> > > > > -- > *Mahesh Chinthaka Vidanagama* | Software Engineer > WSO2, Inc | lean. enterprise. middleware. > #20, Palm Grove, Colombo 03, Sri Lanka > Mobile: +94 71 63 63 083 | Work: +94 112 145 345 > Email: [email protected] | Web: www.wso2.com > -- *Mahesh Chinthaka Vidanagama* | Software Engineer WSO2, Inc | lean. enterprise. middleware. #20, Palm Grove, Colombo 03, Sri Lanka Mobile: +94 71 63 63 083 | Work: +94 112 145 345 Email: [email protected] | Web: www.wso2.com
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
