Clustered Servers / AgilePoint CSM |
The AgilePoint CSM runs as a Windows Service and works as an event dispatcher using .NET Remoting. It records information from the AgilePoint Servers in the NLB to track which process instances are running on each of the AgilePoint Server machines. When a process instance is created the first event will be load balanced by the NLB, after that, the AgilePoint CSM is involved to dispatch events to each of the AgilePoint Servers in the cluster, ensuring that all events associated with the same process instance lifecycle are processed on the same AgilePoint Server machine. As the AgilePoint Server machines monitor the DB, when a new event is triggered, the AgilePoint Server machine picks up the event and posts a call to the AgilePoint CSM to determine whether the event is currently being handled by any of the AgilePoint Servers in the NLB based on the associated Process Instance ID. If the event is associated with a Process Instance ID that is already running on a different server, The AgilePoint CSM will re-route the event to be processed on the AgilePoint Server that is currently dedicated to processing events associated with that process instance.
AgilePoint CSM exploits the event-subscribe/publish approach, so CPU time is very low. It is not supposed to be a risk to install the AgilePoint CSM on the same machine as the Database Server if it is powerful (e.g. 2 CPU Xeons and 4G of memory), however most customers find this is not a viable option. Since the AgilePoint CSM uses .NET Remoting, consider installing it on a server separate from the AgilePoint DB server because it will require opening additional ports and generating an additional IO.