axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Deepal jayasinghe <>
Subject Re: Implementing Http Keep Alive and Transport level session support for Axis2/C
Date Mon, 21 Dec 2009 05:05:26 GMT

Did you get a chance to check with Axis2/Java?  it would be a good
interoperability testing.

> Samisa Abeysinghe wrote:
>> Looks good.
>> Have you committed?
> Yes it is in svn
> Thanks,
> Damitha
>> Samisa...
>> On Tue, Dec 15, 2009 at 11:58 AM, Damitha Kumarage <
>> <>> wrote:
>>     Hi,
>>     I have implemented Http keep alive support and Cookie session
>>     support for Axis2/C and commited to svn.
>>     Following is a brief introduction into how I implemented it.
>>     Cookie session support.
>>     I use Apache mod_dbd module to store sessions at server side. The
>>     functions for storing and retrieving session can be accessed
>>     through Axis2/C environment. I have
>>     implemented this for Apache module. Plan to implement this for
>>     Axis2/C standalone server soon(which is trivial)
>>     A service could support session by creating a hash table filling
>>     it with key value pairs and setting it to the message context.
>>     Then when this message context reach the server side sender it
>>     extract the values from the hash table and make a session string
>>     from that. It then generate a session id and
>>     store the session string against the id generated(using the above
>>     mentioned function in environment).
>>     Then it add the Set-Cookie header into the response message which
>>     has the cookie header value of session id and expiration time.
>>     In the client side the sessions are stored in a session map
>>     against the server.
>>     When the server get the Cookie header it will retrieve the session
>>     value by calling the environment function mentioned above and
>>     create a hash table and set it to the message context.
>>     Http Keep Alive support for Axis2/C client side.
>>     Here implementation is as following.
>>     When http transport sender is initialized it will mark whether
>>     keep alive is supported when sending messages. This is the default
>>     behaviour. However user can change this(in HTTP1.0) by
>>     keep alive transport sender parameter in axis2.xml.
>>     Now when http sender send the message for the first time it will
>>     store the http_client in the keep alive map in the configuration
>>     context, against the server.  From there
>>     onwards it will reuse this http client for sending the messages.
>>     In http 1.0 case it will set the http keep alive header when
>>     sending the messages.
>>     The implementation handle session close messages from the server
>>     in http 1.1 case and keep alive header from server side in http
>>     1.0 case.
>>     Attached is the patch for the changes to implement above.
>>     Thanks,
>>     Damitha
>>     --    
>> __________________________________________________________________
>>     Damitha Kumarage
>>     __________________________________________________________________
>> -- 
>> Samisa Abeysinghe
>> Director, Engineering - WSO2 Inc.
>> - "The Open Source SOA Company"

Thank you!

View raw message