org.wso2.carbon.webapp.mgt.session

## Class CarbonTomcatSessionMessage

- java.lang.Object
- - org.apache.axis2.clustering.ClusteringCommand
  - - org.apache.axis2.clustering.ClusteringMessage
    - - org.wso2.carbon.webapp.mgt.session.CarbonTomcatSessionMessage

- All Implemented Interfaces:
    Serializable, org.apache.catalina.ha.ClusterMessage, org.apache.catalina.ha.session.SessionMessage

      public class CarbonTomcatSessionMessage
      extends org.apache.axis2.clustering.ClusteringMessage
      implements org.apache.catalina.ha.session.SessionMessage

  This class implements tomcat session message and extends axis2 clustering message. This is needed when clustering is enabled for webapps with tomcat, the session messages for those webapps should be sent to other nodes via the axis2 clustering implementation.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected org.apache.catalina.tribes.Member` | `address`

    - ### Fields inherited from interface org.apache.catalina.ha.session.SessionMessage

      `EVT_ALL_SESSION_DATA, EVT_ALL_SESSION_NOCONTEXTMANAGER, EVT_ALL_SESSION_TRANSFERCOMPLETE, EVT_CHANGE_SESSION_ID, EVT_GET_ALL_SESSIONS, EVT_SESSION_ACCESSED, EVT_SESSION_CREATED, EVT_SESSION_DELTA, EVT_SESSION_EXPIRED`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CarbonTomcatSessionMessage()`
    `CarbonTomcatSessionMessage(String contextName, int eventtype, byte[] session, String sessionID, String uniqueID)` Deprecated.
    `CarbonTomcatSessionMessage(String contextName, int eventtype, byte[] session, String sessionID, String uniqueID, int tenantId)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `execute(org.apache.axis2.context.ConfigurationContext mainConfigContext)`
    `org.apache.catalina.tribes.Member` | `getAddress()`
    `String` | `getContextName()`
    `int` | `getEventType()` returns the event type
    `String` | `getEventTypeString()` clear text event type name (for logging purpose only)
    `org.apache.axis2.clustering.ClusteringCommand` | `getResponse()`
    `byte[]` | `getSession()`
    `String` | `getSessionID()`
    `long` | `getTimestamp()`
    `String` | `getUniqueId()`
    `void` | `setAddress(org.apache.catalina.tribes.Member member)`
    `void` | `setTenantId(int tenantId)`
    `void` | `setTimestamp(long time)` set message send time but only the first setting works (one shot)
    `void` | `setUniqueId(String uniqueId)`
    `String` | `toString()`

    - ### Methods inherited from class org.apache.axis2.clustering.ClusteringMessage

      `equals, getUuid, hashCode`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### address

          protected transient org.apache.catalina.tribes.Member address

  - ### Constructor Detail

    - #### CarbonTomcatSessionMessage

          public CarbonTomcatSessionMessage()

    - #### CarbonTomcatSessionMessage

          public CarbonTomcatSessionMessage(String contextName,
                                            int eventtype,
                                            byte[] session,
                                            String sessionID,
                                            String uniqueID,
                                            int tenantId)

    - #### CarbonTomcatSessionMessage

          @Deprecated
          public CarbonTomcatSessionMessage(String contextName,
                                                        int eventtype,
                                                        byte[] session,
                                                        String sessionID,
                                                        String uniqueID)

      Deprecated.
      Creates a session message. Depending on what event type you want this message to represent, you populate the different parameters in the constructor
      The following rules apply dependent on what event type argument you use:
      EVT_SESSION_CREATED
      The parameters: session, sessionID must be set.
      EVT_SESSION_EXPIRED
      The parameters: sessionID must be set.
      EVT_SESSION_ACCESSED
      The parameters: sessionID must be set.
      EVT_GET_ALL_SESSIONS
      get all sessions from from one of the nodes.
      EVT_SESSION_DELTA
      Send attribute delta (add,update,remove attribute or principal, ...).
      EVT_ALL_SESSION_DATA
      Send complete serializes session list
      EVT_ALL_SESSION_TRANSFERCOMPLETE
      send that all session state information are transfered after GET_ALL_SESSION received from this sender.
      EVT_CHANGE_SESSION_ID
      send original sessionID and new sessionID.
      EVT_ALL_SESSION_NOCONTEXTMANAGER
      send that context manager does not exist after GET_ALL_SESSION received from this sender.
      Parameters:
        `contextName` - - the name of the context (application
        `eventtype` - - one of the 8 event type defined in this class
        `session` - - the serialized byte array of the session itself
        `sessionID` - - the id that identifies this session
        `uniqueID` - - the id that identifies this message

  - ### Method Detail

    - #### getEventType

          public int getEventType()

      returns the event type
      Specified by:
        `getEventType` in interface `org.apache.catalina.ha.session.SessionMessage`
      Returns:
        one of the event types EVT_XXXX

    - #### getSession

          public byte[] getSession()

      Specified by:
        `getSession` in interface `org.apache.catalina.ha.session.SessionMessage`
      Returns:
        the serialized data for the session

    - #### getSessionID

          public String getSessionID()

      Specified by:
        `getSessionID` in interface `org.apache.catalina.ha.session.SessionMessage`
      Returns:
        the session ID for the session

    - #### setTimestamp

          public void setTimestamp(long time)

      set message send time but only the first setting works (one shot)
      Specified by:
        `setTimestamp` in interface `org.apache.catalina.ha.ClusterMessage`

    - #### getTimestamp

          public long getTimestamp()

      Specified by:
        `getTimestamp` in interface `org.apache.catalina.ha.ClusterMessage`
      Overrides:
        `getTimestamp` in class `org.apache.axis2.clustering.ClusteringMessage`

    - #### getEventTypeString

          public String getEventTypeString()

      clear text event type name (for logging purpose only)
      Specified by:
        `getEventTypeString` in interface `org.apache.catalina.ha.session.SessionMessage`
      Returns:
        the event type in a string representation, useful for debugging

    - #### getContextName

          public String getContextName()

      Specified by:
        `getContextName` in interface `org.apache.catalina.ha.session.SessionMessage`

    - #### getAddress

          public org.apache.catalina.tribes.Member getAddress()

      Specified by:
        `getAddress` in interface `org.apache.catalina.ha.ClusterMessage`

    - #### setAddress

          public void setAddress(org.apache.catalina.tribes.Member member)

      Specified by:
        `setAddress` in interface `org.apache.catalina.ha.ClusterMessage`

    - #### getUniqueId

          public String getUniqueId()

      Specified by:
        `getUniqueId` in interface `org.apache.catalina.ha.ClusterMessage`

    - #### setUniqueId

          public void setUniqueId(String uniqueId)

      Specified by:
        `setUniqueId` in interface `org.apache.catalina.ha.ClusterMessage`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### getResponse

          public org.apache.axis2.clustering.ClusteringCommand getResponse()

      Specified by:
        `getResponse` in class `org.apache.axis2.clustering.ClusteringMessage`

    - #### setTenantId

          public void setTenantId(int tenantId)

    - #### execute

          public void execute(org.apache.axis2.context.ConfigurationContext mainConfigContext)
                       throws org.apache.axis2.clustering.ClusteringFault

      Specified by:
        `execute` in class `org.apache.axis2.clustering.ClusteringCommand`
      Throws:
        `org.apache.axis2.clustering.ClusteringFault`

Copyright © 2017 WSO2. All rights reserved.