axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Damitha Kumarage <>
Subject Implementing Http Keep Alive and Transport level session support for Axis2/C
Date Tue, 15 Dec 2009 06:28:12 GMT
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 

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.


Damitha Kumarage

View raw message