/// <summary> /// Called each time a new server node is set to running state /// </summary> /// <param name="NodeName">Name of the Node</param> public void MemberJoined(string port, string nodeName, bool raiseEvent, bool isInproc) { try { if (isInproc && !this._inprocInstances.Contains(nodeName.Trim() + "." + port)) { nodeName = nodeName.Trim() + "." + port; this._inprocInstances.Add(nodeName); if (!this._nodes.Contains(nodeName)) { this._nodes.Add(nodeName); } } if (_runningNodes.IndexOf(nodeName.Trim()) == -1) { _runningNodes.Add(nodeName.Trim()); if (raiseEvent) { NodeUp node = new NodeUp(this.ClusterName, nodeName.Trim()); node.Fire(); } } } catch { } }
public void MemberJoined(string port, string nodeName, string subGroupName, bool fireEvent, bool isInproc) { try { if (isInproc) { nodeName = nodeName.Trim() + "." + port; if (this._inprocPorInstances.Contains(subGroupName)) { string previousInstances = this._inprocPorInstances[subGroupName] as string; if (previousInstances != null && previousInstances != string.Empty) { if (previousInstances.IndexOf(nodeName) == -1) { previousInstances += "," + nodeName; } } else { previousInstances = nodeName; } this._inprocPorInstances[subGroupName] = previousInstances; } else { this._inprocPorInstances.Add(subGroupName, nodeName); } for (int i = 0; i < this._porNodes.Count; i++) { string porNodes = this._porNodes[i] as string; if (porNodes.Trim().IndexOf(subGroupName) == 0) { if (porNodes.IndexOf(nodeName) == -1) { porNodes += "," + nodeName; } } this._porNodes[i] = porNodes; } } if (!this._porRunningNodeList.Contains(subGroupName)) { this._runningNodes.Add(nodeName.Trim()); this._porRunningNodeList.Add(subGroupName, nodeName.Trim()); } else { string nodelist = ((string)this._porRunningNodeList[subGroupName] != null) ? (string)this._porRunningNodeList[subGroupName].ToString().Replace(subGroupName, "") : string.Empty; if (nodelist.IndexOf(nodeName.Trim()) == -1) { string currentlist = ((string)this._runningNodes[this._runningNodes.IndexOf(subGroupName + nodelist)]) + "," + nodeName.Trim(); this._runningNodes[this._runningNodes.IndexOf(subGroupName + nodelist)] = currentlist; this._porRunningNodeList[subGroupName] = currentlist; } } if (!_doNotPublish && fireEvent) { NodeUp node = new NodeUp(this.ClusterName, nodeName.Trim()); node.Fire(); } } catch { } }