Server clustering is the standard method for increasing the scalability of a server system. Instead of using one server component to handle all client requests, multiple instances of the server can be created. The clustering system redirects server requests to achieve maximum throughput.
Enterprise Manager's clustering support is based on server-side load distribution. The clustering of servers is not visible to the client. A proxy/load-balancer serves as the sole interface to all clients, and manages the communication to individual server instances (cluster nodes).
To set up a clustered environment, follow the steps below:
1. Configure clustering in Enterprise Manager.
2. Configure the cluster proxy.
3. Configure the cluster nodes.
4. Define the cluster nodes in Enterprise Manager.
There should be only one instance of the Enterprise Manager (inetsoft.sree.web.AdmServlet) running in the entire cluster setup. It can be running on a machine inside the cluster (the proxy or any node), or outside the cluster on an independent machine. The initial configuration of the cluster should be done by directly connecting to this Enterprise Manager and setting up the clustering environment.
To deploy the Enterprise Manager, create a web application with the following web.xml file, and place the etools.jar file and the product jar file (sree_pro.jar, visual_pro.jar, or bisuite_pro.jar) into the WEB-INF/lib directory.
<servlet>
<servlet-name>manager</servlet-name>
<servlet-class>inetsoft.sree.adm.AdmServlet</servlet-class>
<init-param>
<param-name>sree.home</param-name>
<param-value>\\share\sreehome</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>manager</servlet-name>
<url-pattern>/ClusterAdmin</url-pattern>
</servlet-mapping>
Once the Enterprise Manager is running, the following parameters must be set in the Enterprise Manager through the web interface:
1. Click the 'Configuration' > 'Server' node of the Server tab, and select 'Servlet with server clustering'.
2. Click the 'Server' > 'Cluster' node of the Server tab. Set the 'Node Servlet URI,' which is the report nodes' repository
URI. For example, if your URL is 'http://host:port/sree/Reports,' then the value of this parameter should be “/sree/Reports”.
3. Set 'Enterprise Manager URL' to the URL of the Enterprise Manager.
4. Select the 'Cluster Load Balance Algorithm,' 'Round Robin' or 'Load-Based'.
The next step is to set up the proxy server and each cluster node.
What Are the Pros and Cons of Report Server Clustering?
Report server clustering is a high-availability and load-balancing solution for reporting services. It involves configuring multiple report servers to work together as a single entity, improving reliability, scalability, and performance. However, like any technology, clustering has both advantages and disadvantages.
Pros of Report Server Clustering
1. High Availability & Fault Tolerance
- If one report server fails, the workload is automatically redirected to another server in the cluster.
- Minimizes downtime and ensures continuous access to reporting services.
2. Load Balancing & Performance Optimization
- Distributes incoming report requests across multiple servers, preventing a single server from being overwhelmed.
- Improves response times for users, especially in large enterprises with heavy reporting needs.
3. Scalability
- Organizations can add more report servers to the cluster as demand increases.
- Helps accommodate growing user bases and data volume without significant performance degradation.
4. Centralized Management
- Clustering can be managed through load balancers, reducing the complexity of administering individual servers.
- Some clustering solutions provide unified monitoring and reporting for easier troubleshooting.
5. Session Persistence
- Ensures that users maintain their reporting session even if a specific report server fails.
- Improves user experience and prevents report generation failures mid-process.
Cons of Report Server Clustering
1. High Initial Setup and Maintenance Costs
- Requires multiple servers, load balancers, and a robust database infrastructure.
- IT teams need expertise to configure and maintain the cluster.
2. Complexity in Configuration
- Requires careful setup of database synchronization, load balancing, and failover mechanisms.
- Incorrect configurations can lead to performance issues or failures in failover scenarios.
3. Licensing and Infrastructure Costs
- Some reporting tools, like Microsoft SSRS or InetSoft, may require additional licensing fees for clustered environments.
- Hardware and networking expenses can add up, especially in enterprise environments.
4. Potential Data Synchronization Issues
- If reports rely on caching or temporary storage, maintaining data consistency across servers can be challenging.
- Clusters that use distributed caching mechanisms may require additional configuration to prevent stale or inconsistent data.
5. Load Balancer Overhead
- Load balancers introduce an additional layer of infrastructure that needs to be maintained.
- If improperly configured, load balancing can create bottlenecks or lead to uneven request distribution.