Hi,

Here I have attached the changed code for the suggested solution (using a
regex as the key). I ran some load tests and the results are listed below.

No of Threads                 Without the fix (tps)              With the
fix (tps)
1
410                                         315
5
2010                                       1900
100
6260                                        6200

Is it OK to proceed with this fix?

Thanks



On Thu, Dec 19, 2013 at 7:37 AM, Chanika Geeganage <[email protected]> wrote:

> Hi Sameera,
>
> getConstantFromHTTPLocation method in [1]  is used to maintain the map in
> deployment time and getOperationFromHTTPLocation method is called when you
> invoke the rest service in [2]
>
> [1]
> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/dependencies/axis2/1.6.1-wso2v10/modules/kernel/src/org/apache/axis2/wsdl/WSDLUtil.java
>
> [2]
> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/dependencies/axis2/1.6.1-wso2v10/modules/kernel/src/org/apache/axis2/dispatchers/HTTPLocationBasedDispatcher.java
>
> Thanks
>
>
> On Thu, Dec 19, 2013 at 12:51 AM, Sameera Jayasoma <[email protected]>wrote:
>
>> Hi Chanika,
>>
>> Can you please gimme me some pointers to the relevant code blocks which
>> are responsible for this situation?
>>
>> Thanks,
>> Sameera.
>>
>>
>> On Wed, Dec 18, 2013 at 3:29 PM, Chanika Geeganage <[email protected]>wrote:
>>
>>> Hi,
>>>
>>> This issue was come across when we invoke a rest resource deployed in
>>> DSS. According to the current implementation it fails to delegate different
>>> requests for same base URL. For an example lets say we want to have
>>> following resources in the dataservice config
>>>
>>> products/{id}
>>> products/{id}/name/{name}
>>>
>>> According to the current implementation it maintains a map to keep the
>>> resource info in the deployment time. It keeps a string of the HTTP method
>>> + the resource name  as the key and the relevant axis2 operation as the
>>> value. Therefore in the example both resources having the same key and the
>>> value is replaced by the last one.
>>>
>>> So as a solution, a regex for the resource is kept in the map as the
>>> key, and when we invoke the resource it compares the regex with the request
>>> url. But this will hit a performance issue, as we have to compile all regex
>>> in the map each time we invoke resource.
>>>
>>> Any input regarding this is appreciated.
>>>
>>> Thanks
>>> --
>>> Best Regards..
>>>
>>> Chanika Geeganage
>>> Software Engineer
>>> WSO2, Inc.; http://wso2.com
>>>
>>>
>>> _______________________________________________
>>> Architecture mailing list
>>> [email protected]
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> Sameera Jayasoma,
>> Architect,
>>
>> WSO2, Inc. (http://wso2.com)
>> email: [email protected]
>> blog: http://sameera.adahas.org
>> twitter: https://twitter.com/sameerajayasoma
>> flickr: http://www.flickr.com/photos/sameera-jayasoma/collections
>> Mobile: 0094776364456
>>
>> Lean . Enterprise . Middleware
>>
>> _______________________________________________
>> Architecture mailing list
>> [email protected]
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> Best Regards..
>
> Chanika Geeganage
> Software Engineer
> WSO2, Inc.; http://wso2.com
>
>


-- 
Best Regards..

Chanika Geeganage
Software Engineer
WSO2, Inc.; http://wso2.com

Attachment: axis2_changes
Description: Binary data

_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to