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/
__________________________________________________________________

Reply via email to