Saturday, July 10, 2010

Jsession CloneID for debugging

WebSphere Commerce Dyna-caching mechanism only supports cookie-based sessions, and not URL rewriting.
CloneID (also known as server ID) is appended to the session ID

Once a browser establishes session affinity with an application server, a JsessionId is created. When a HTTP session is created, the session id is passed back to the browser as part of a cookie or URL encoding

e.g.

JSESSIONID 00004QkpGtFgJZ01zkgdi7qMJvg:14aelsphk

The value after : is the cloneID of the server and is used to identify the server. It is usually appended to the JSESSION ID.

This is very useful in a clustered environment for debugging and looking into logs.

This CloneID is only visible from /config/plugin-cfg.xml.

e.g. location :
/opt/IBM/WebSphere/AppServer/profiles//config/cells/plugin-cfg.xml

search for CloneID

3 comments:

  1. I wonder if it is possible to edit your cookie and change the clone id in order to diagnose a different jvm.

    ie
    Currently pinned to JVM A
    JSESSIONID 00004QkpGtFgJZ01zkgdi7qMJvg:A

    Now want to test JVM B
    Edit cloneid cookie
    JSESSIONID 00004QkpGtFgJZ01zkgdi7qMJvg:B

    I've found the you just get a new JSESSION cookie when you try modify it.

    ReplyDelete
    Replies
    1. You can edit the jession id using a cookie editor like firebug and then refresh the webpage to point to a new jvm

      Delete
  2. I don't think you get different JSESSION Id. One more application for the same thing, if you use Dynacache monitor and want to check something on a different server in the cluster, you just change the cloneId in the JsessionId.

    ReplyDelete