public class

ACMSessionDistributionHelper

extends Object
java.lang.Object
   ↳ com.microstrategy.webapi.ACMSessionDistributionHelper

Class Overview

ACMSessionDistributionHelper is a collection of methods to help decide where to create the sessions in the Intelligence Server Cluster

Summary

Public Constructors
ACMSessionDistributionHelper()
Public Methods
static List<String> getActiveProjectsOnNode(IDSSXMLClusterNode iClusterNode)
Get the active projects on a Node@return
static List<IDSSXMLClusterNode> getAllNodesInCluster(IDSSXMLClusterNode iNode)
getAllNodesInCluster returns all the nodes in the cluster, it can be empty Each time the function gets called, the cluster membership will get updated based on the latest information in RefreshClusterMembership.
static List<IDSSXMLClusterNode> getAllNodesInCluster(IDSSXMLSessionId iServerSession)
getAllNodesInCluster returns all the nodes in the cluster, it can be empty Each time the function gets called, the cluster membership will get updated based on the latest information in RefreshClusterMembership.
static List<IDSSXMLClusterNode> getAllNodesInCluster(String iNodeName)
getAllNodesInCluster returns all the nodes in the cluster, it can be empty Each time the function gets called, the cluster membership will get updated based on the latest information in RefreshClusterMembership.
static List<IDSSXMLClusterNode> getAllNodesInCluster(IDSSXMLCluster iCluster)
getAllNodesInCluster returns all the nodes in the cluster, it can be empty@return
static List<IDSSXMLClusterNode> getAllNodesInCluster(IDSSXMLServerSession iServerSession)
Each time the function gets called, the cluster membership will get updated based on the latest information in RefreshClusterMembership.
static List<String> getCommonElements(List<String> iPids1, List<String> iPids2)
getCommonElements return the common elements in two lists
static IDSSXMLClusterNode getNodeInClusterByName(List<IDSSXMLClusterNode> iClusterNodes, String iServerName, int iPort)
getNodeInClusterByName returns the IDSSXMLClusterNode by server name and port It returns null if cannot find the node@return
static IDSSXMLClusterNode getNodeLeastAdjustLoad(List<IDSSXMLClusterNode> iClusterNodes)
Get the node with least adjust node in the list of cluster nodes@return
static IDSSXMLClusterNode getNodeLeastAdjustLoadProject(List<IDSSXMLClusterNode> iClusterNodes, String iPid)
getNodeLeastAdjustLoadProject returns the node (1) loaded with the project and the project is active (2) the node has least adjusted load@return
static IDSSXMLClusterNode getNodeMaxActiveProjects(List<IDSSXMLClusterNode> iClusterNodes)
getNodeMaxActiveProjects finds the node that has the most active projects (not idle).
static Map<IDSSXMLClusterNode, List<String>> getNodeProjectsForCrossProjectOperations(IDSSXMLSessionId.IMasterSessionId iMasterSessionId, List<IDSSXMLClusterNode> iClusterNodes, List<String> iPids, boolean useFence)
Get the node and the projects on the node for cross project operations@return
static List<IDSSXMLClusterNode> getNodesFenceTierZero(List<ACMSessionDistributionHelper.ProjectFenceTier> iPidsFenceTier)
getNodesFenceTierZero gets the list of unique cluster nodes that are tier 0 for the user.
static List<IDSSXMLClusterNode> getNodesLoadedProject(List<IDSSXMLClusterNode> iClusterNodes, String iPid)
getNodesLoadedProject returns the list of nodes loaded with the project and the project is active@return
static List<IDSSXMLClusterNode> getNodesSameAdjustedLoad(List<IDSSXMLClusterNode> iClusterNodes, double iAdjustedLoad)
getNodesSameAdjustedLoad returns the list of the nodes with the same adjusted load It can be empty
static List<IDSSXMLClusterNode> getNodesSameAdjustedLoadProject(List<IDSSXMLClusterNode> iClusterNodes, double iAdjustedLoad, String iPid)
getNodesSameAdjustedLoadProject returns a list of nodes with the same adjusted load and loaded with the project and the project is active.
static List<IDSSXMLClusterNode> getNodesToConnectForProject(IDSSXMLSessionId.IMasterSessionId iMasterSessionId, String iProjectID, List<IDSSXMLClusterNode> iClusterNodes, boolean useFence)
getNodesToConnectForProject returns the list of nodes able to create the project sessions to@return
static List<String> getUniqueActiveProjectsInNodes(List<IDSSXMLClusterNode> iClusterNodes)
Get the unique projects in the list of cluster nodes@return
static boolean getUserAffinityFlag()
getUserAffinityFlag return the user affinity flag specified in IServer server definition
static List<IDSSXMLClusterNode> getUserFenceInNodes(List<ACMSessionDistributionHelper.ProjectFenceTier> iPidFenceTiers)
getUserFenceInNodes gets the list of unique cluster nodes that are tier 0 for the user.
static List<ACMSessionDistributionHelper.ProjectFenceTier> getUserProjectsFenceTier(String iConfigSession, List<IDSSXMLClusterNode> iNodesInCluster, boolean useFence)
getUserProjectsFenceTier gets all the fencing tiers for all the IServers for the user, if fencing is on.
static List<ACMSessionDistributionHelper.NodeConfigPids> sortNodesByPidNum(Map<IDSSXMLClusterNode, List<String>> lNodesConfigPids)
sortNodesByPidNum returns the map by sorting the nodes with number of projects in accending order
static ACMClusterInfo userHasMasterSession(String iUserLogin)
userHasMasterSession returns the user master session connected to the node if existing otherwise, return null
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public ACMSessionDistributionHelper ()

Public Methods

public static List<String> getActiveProjectsOnNode (IDSSXMLClusterNode iClusterNode)

Get the active projects on a Node@return

public static List<IDSSXMLClusterNode> getAllNodesInCluster (IDSSXMLClusterNode iNode)

getAllNodesInCluster returns all the nodes in the cluster, it can be empty Each time the function gets called, the cluster membership will get updated based on the latest information in RefreshClusterMembership. It is recommended to only call the function once per decision making@return

public static List<IDSSXMLClusterNode> getAllNodesInCluster (IDSSXMLSessionId iServerSession)

getAllNodesInCluster returns all the nodes in the cluster, it can be empty Each time the function gets called, the cluster membership will get updated based on the latest information in RefreshClusterMembership. It is recommended to only call the function once per decision making@return

public static List<IDSSXMLClusterNode> getAllNodesInCluster (String iNodeName)

getAllNodesInCluster returns all the nodes in the cluster, it can be empty Each time the function gets called, the cluster membership will get updated based on the latest information in RefreshClusterMembership. It is recommended to only call the function once per decision making@return

public static List<IDSSXMLClusterNode> getAllNodesInCluster (IDSSXMLCluster iCluster)

getAllNodesInCluster returns all the nodes in the cluster, it can be empty@return

public static List<IDSSXMLClusterNode> getAllNodesInCluster (IDSSXMLServerSession iServerSession)

Each time the function gets called, the cluster membership will get updated based on the latest information in RefreshClusterMembership. It is recommended to only call the function once per decision making getAllNodesInCluster returns all the nodes in the cluster, it can be empty@return

public static List<String> getCommonElements (List<String> iPids1, List<String> iPids2)

getCommonElements return the common elements in two lists

public static IDSSXMLClusterNode getNodeInClusterByName (List<IDSSXMLClusterNode> iClusterNodes, String iServerName, int iPort)

getNodeInClusterByName returns the IDSSXMLClusterNode by server name and port It returns null if cannot find the node@return

public static IDSSXMLClusterNode getNodeLeastAdjustLoad (List<IDSSXMLClusterNode> iClusterNodes)

Get the node with least adjust node in the list of cluster nodes@return

public static IDSSXMLClusterNode getNodeLeastAdjustLoadProject (List<IDSSXMLClusterNode> iClusterNodes, String iPid)

getNodeLeastAdjustLoadProject returns the node (1) loaded with the project and the project is active (2) the node has least adjusted load@return

public static IDSSXMLClusterNode getNodeMaxActiveProjects (List<IDSSXMLClusterNode> iClusterNodes)

getNodeMaxActiveProjects finds the node that has the most active projects (not idle). If multiple, choose random Note, this method does not use adjusted load@return

public static Map<IDSSXMLClusterNode, List<String>> getNodeProjectsForCrossProjectOperations (IDSSXMLSessionId.IMasterSessionId iMasterSessionId, List<IDSSXMLClusterNode> iClusterNodes, List<String> iPids, boolean useFence)

Get the node and the projects on the node for cross project operations@return

Parameters
iMasterSessionId - master session id for the cross project operations
iClusterNodes - the list of nodes to allocate
iPids - the list of projects to allocate

public static List<IDSSXMLClusterNode> getNodesFenceTierZero (List<ACMSessionDistributionHelper.ProjectFenceTier> iPidsFenceTier)

getNodesFenceTierZero gets the list of unique cluster nodes that are tier 0 for the user. Guaranteed to not return null; the list may be empty@return

public static List<IDSSXMLClusterNode> getNodesLoadedProject (List<IDSSXMLClusterNode> iClusterNodes, String iPid)

getNodesLoadedProject returns the list of nodes loaded with the project and the project is active@return

public static List<IDSSXMLClusterNode> getNodesSameAdjustedLoad (List<IDSSXMLClusterNode> iClusterNodes, double iAdjustedLoad)

getNodesSameAdjustedLoad returns the list of the nodes with the same adjusted load It can be empty

public static List<IDSSXMLClusterNode> getNodesSameAdjustedLoadProject (List<IDSSXMLClusterNode> iClusterNodes, double iAdjustedLoad, String iPid)

getNodesSameAdjustedLoadProject returns a list of nodes with the same adjusted load and loaded with the project and the project is active. The list can be empty@return

public static List<IDSSXMLClusterNode> getNodesToConnectForProject (IDSSXMLSessionId.IMasterSessionId iMasterSessionId, String iProjectID, List<IDSSXMLClusterNode> iClusterNodes, boolean useFence)

getNodesToConnectForProject returns the list of nodes able to create the project sessions to@return

public static List<String> getUniqueActiveProjectsInNodes (List<IDSSXMLClusterNode> iClusterNodes)

Get the unique projects in the list of cluster nodes@return

public static boolean getUserAffinityFlag ()

getUserAffinityFlag return the user affinity flag specified in IServer server definition

public static List<IDSSXMLClusterNode> getUserFenceInNodes (List<ACMSessionDistributionHelper.ProjectFenceTier> iPidFenceTiers)

getUserFenceInNodes gets the list of unique cluster nodes that are tier 0 for the user. Guaranteed to not return null; the list may be empty@return

public static List<ACMSessionDistributionHelper.ProjectFenceTier> getUserProjectsFenceTier (String iConfigSession, List<IDSSXMLClusterNode> iNodesInCluster, boolean useFence)

getUserProjectsFenceTier gets all the fencing tiers for all the IServers for the user, if fencing is on. If fencing is off then all IServers will be returned with tier 0. May return an empty list@return

public static List<ACMSessionDistributionHelper.NodeConfigPids> sortNodesByPidNum (Map<IDSSXMLClusterNode, List<String>> lNodesConfigPids)

sortNodesByPidNum returns the map by sorting the nodes with number of projects in accending order

public static ACMClusterInfo userHasMasterSession (String iUserLogin)

userHasMasterSession returns the user master session connected to the node if existing otherwise, return null

Parameters
iUserLogin - user login