axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Damitha Kumarage <dami...@wso2.com>
Subject Re: Implementing Http Keep Alive and Transport level session support for Axis2/C
Date Tue, 22 Dec 2009 04:36:43 GMT
Danushka Menikkumbura wrote:
> Hi Damitha,
>
> A couple of questions ...
>  
>
>     A service could support session by creating a hash table filling
>     it with key value pairs and setting it to the message context.
>
>
> Since this is done at the service level - a higher level - I thinks 
> its nicer to have a simple API call to set session data rather than 
> having to create a new hash table and set that in the message context. 
> (e.g. msg_ctx_set_session_data(key, value) or something like that)
This is good improvement. However my initial thought was to avoid api 
changes as much as possible.
>  
>
>     Then it add the Set-Cookie header into the response message which
>     has the cookie header value of session id and expiration time.
>
>
> Is the expiration time configurable?
You can change AXIS2_TRANSPORT_SESSION_EXPIRE_DURATION in header file 
which is defaulted to 60 seconds. However deployment time configuration 
is not possible yet.
>  
>
>     In the client side the sessions are stored in a session map
>     against the server.
>
>
> What do you mean by storing sessions against the server?
cookies are stored in a hash table with key as server:port and value as 
the cookie value.
>
> Are there any plans to make the session data persistent so that we can 
> have persistent sessions?.
Sessions are made persistent at server side by storing them using dbd 
apache module. No plan yet to make them persistent at client side.
>  
>
>     Http Keep Alive support for Axis2/C client side.
>
>
>  Do we support Keep Alive on the server side?.
This support is provided by Apache. However it is not yet implementd for 
stand alone Axis2/C server. It just send back connection close header in 
HTTP1.1 case and no connection headre in HTTP1.0 case.
> IIRC the HTTP transport receiver closes the connection on the server 
> side?.
>
>     From there onwards it will reuse this http client for sending the
>     messages.
>
>
> The main issue in reusing an HTTP client and hence the persisted 
> connection is that in case the server goes down and maybe comes up 
> again, the persisted connections that we have are no longer valid. If 
> you now try to reuse these connections, the behavior is undefined. 
> Therefore you have to do a socket select to check the validity of a 
> persisted connection prior to reusing it. How do you handle this 
> situation in your implementation?.
Are you talking about tcp keep alive support?. Adding that to Axis2/C is 
a good option.

Thanks,
Damitha
>
> Danushka
>
> -- 
> Danushka Menikkumbura
> Technical Lead, WSO2 Inc.
>
> blog : http://danushka-menikkumbura.blogspot.com/
>
> http://wso2.com/ - "The Open Source SOA Company"
>
>


-- 
__________________________________________________________________

Damitha Kumarage
Technical Lead; WSO2 Inc.
"Oxygenating the Web Service Platform; " http://www.wso2.com/

blog: " http://damithakumarage.wordpress.com/
__________________________________________________________________

Mime
View raw message