Class ACMUserAffinityHandler


  • public class ACMUserAffinityHandler
    extends java.lang.Object
    ACMUserAffinityHandler handles the User Affinity condition returned by IServer when making an XML API call that creates a Session Id.

    The main method "handleUserAffinity" is called in the middle of CDSSXMLServerSessionImpl.hCreateSession(). At this point, the decision logic has already made a choice and we tried it. But, alas, IServer tells us that User Affinity tells us to use a different IServer. That call was a CreateSession XML API call. Note, it has gotten partial success and partial failure.

    The Session Id returned is "valid" and looks like this:
  • "00000000000000000000000000000000tec-w-012512@34952$PROJECT"

    The CDSSMsg replyMsg is filled with an error:
  • ErrorCode = WebAPIErrorCodes.MSI_CLUSTER_AFFINITY_LOGIN_SERVER
  • ErrorMessage = "(Please login to the following server to reduce synchronization needs: tec-w-012513)"

    Some oddities to be aware:
  • The session id is all zeros
  • The error message is surrounded by ()
  • The IServer that should be used is specified in the error message
  • There are two spaces after the colon then the IServer that should be used is specified