Technical Guide > Server Maintenance |
This page provides the best practices for maintenance of servers that run the Akcelerant Framework and includes high-level maintenance to very specific strategies for disaster recovery.
![]() |
This page is only a recommendation to use as a guide. It is the sole responsibility of the customer to design and implement procedures to fit its need, and Akcelerant Software is not liable for any data loss due to malfunctioning backups and maintenance procedures. |
Through normal usage, the Framework will consume additional disk space over time. On the web/app server, space is consumed by items such as letters, credit reports, archived import files, etc. This consumption is much more prevalent on the database server. The database will continue to grow as new accounts are imported and worked (creating workflows, comments, promise to pays, etc.). Over time, it is possible that a server will run out of disk space. When this happens, the Framework can no longer function and will be down until the space issue is resolved. Most often this problem occurs on the database server and results in the following error:
Through the use of file system quotas, which is a feature built into Windows, a system administrator can be notified via email when the disk usage exceeds a predefined threshold. This proactive monitoring will enable the administrator to take action to resolve the space issue before it affects the Framework and end users.
If the server uses multiple logical/physical drives, you must set up separate quotas for each.
The set up is complete. You will now receive email notifications when the drive(s) reaches 75%, 85%, and 95% of capacity.
Schedule and execute weekly maintenance of your Web, Application and Database servers. This general maintenance will ensure your servers are running efficiently. The maintenance should include the following:
Consistent periodic maintenance of the Framework database is important in keeping the Framework running at peak performance. This maintenance should be conducted once per week during off hours. This section will walk you through the steps required in setting up an effective maintenance plan.
Create the maintenance plan by using the SQL Server Agent.
The Value must match to the Database you are running Akcelerant Framework on.
Akcelerant recommends running this maintenance once per week on Sunday at 12:00 AM. The customer should consider their daily imports when creating the schedule. Import times can vary for each customer depending on their size, environment, etc. Customers should make sure that the maintenance and imports are not scheduled so that they are running at the same time.
High availability is achieved through hardware redundancy. Consider a scenario where the Framework is installed on a single web server. If that server goes down, the Framework is unavailable until the server is back online. If that single server experiences a hardware failure, it could be hours or days before the Framework is operational again. Implementing hardware redundancy will make the Framework application highly available. Consider another scenario where the Framework is installed and load balanced across two web servers. If server 1 goes down, server 2 will continue to serve requests while server 1 is brought back online or replaced. The end user experiences no interruptions in this scenario.
Redundancy on the web/application servers is achieved through load balancing. This solution distributes traffic among two or more identical servers. Choosing and implementing a load balancing solution is the responsibility of the customer. Two of the more popular solutions are Windows Network Load Balancing and f5 Load Balancing. Utilizing session state is a common roadblock for applications in a load balanced environment. The Framework application does not utilize session state so this is not a concern.
The following is required when implementing the Framework in a load balanced environment:
Redundancy on the database server is achieved through SQL Server Failover Clustering. This solution is a collection of two or more physical servers with identical access to shared storage. Implementing a clustering environment is the responsibility of the customer. This article will walk you through the basics of clustering configuration options and installation procedures.
The following is required when implementing the Framework in a clustered environment:
A committed back up strategy protects you in the event of unexpected data loss. A key factor devising your backup strategy is to determine the acceptable amount of data loss. If you can accept the risk of losing a day’s worth of data, you should implement the simple backup strategy. If this type of data loss is not acceptable, you should implement the advanced backup strategy.
Simple Backup Strategy |
The simple back up strategy is simple to implement and requires less server resources to maintain. By implementing this strategy, you accept the risk of losing one day's worth of data in the event of disaster.
|
Advanced Backup Strategy |
The advanced back up strategy is a bit more complicated to implement and requires more server resources to maintain. By implementing this strategy, you have complete control over the amount of data loss in the event of a disaster.
|
Important Considerations |
Here are important considerations regardless of the backup strategy implemented above:
|
The Akcelerant Framework stores important files in the share folder. These files include letters, documents, log files, credit reports and archived import files.
A stand-by server is beneficial in the event of a server failure. It will greatly reduce down time after the failure occurs. With a few configuration changes, the stand-by server can be brought online and begin serving requests.
Web Server | IIS |
Application Server |
IIS Akcelerant Process Manager (scheduled task) Akcelerant Lending Service (Windows service) |
In the event of a web server failure, follow these procedures to bring the stand-by server online.
dbo.tblGlobalParameter ParameterCode = SITEROOT dbo.tblGlobalParameter ParameterCode = SITEROOT2
In the event of an application server failure, follow these procedures to bring the stand-by server online.
Table Name Row Identifier dbo.tblGlobalParameter ParameterCode = SHAREPATH dbo.tblSolutionParameter ParameterCode = CORE_SERVICE_ROOT dbo.tblSolutionParameter ParameterCode = COLLECTIONS_SERVICE_ROOT dbo.tblSolutionParameter ParameterCode = LENDING_SERVICE_ROOT dbo.tblSolutionParameter ParameterCode = HOST_SERVICE_URL dbo.tblSolutionParameter ParameterCode = WEBLOAN_SERVICE_URL Lending.DisbursementProvider All rows Core.EventListener All rows
Disaster recovery procedures for Microsoft SQL Server Reporting Services are not included in this document. It is the customer’s responsibility to plan and implement procedures for high-availability and redundancy of the Reporting Services system.
The Framework stores configuration information for Reporting Services in the database in the dbo.tblGlobalParameter table. In the event of a disaster with Reporting Services, these configurations can be changed to point to a backup/restored instance:
Parameter Code | Parameter Description |
RS_ReportExecutionPath | Virtual folder where the RS Web Service resides |
RS_ReportFolderName | Name of the Folder in the RS Server that holds all reports and reporting DSNs |
RS_ServerName | Name of the Server where Reporting Services Runs |
RS_SQLServerVersion | Tells the systemtwhar version of SQL Server the client is running |
Database mirroring in SQL Server allows you to keep a copy, or mirror, of a SQL Server database on a standby server. Mirroring ensures that two separate copies of the data exist at all times, providing high availability and complete data redundancy.
The principal server sends the transaction and waits until the transaction is committed on the mirrored server. After a successful commit on the mirrored server, the transaction is committed on the principal server.
This mode guarantees that both servers are identical. There is no chance of data loss if the principal goes down.
Performance degradation is unavoidable with this mode since each transaction must be committed on two servers. In addition, certain processes in the Framework are very transaction log intensive including the imports and upgrades. The performance of these processes will suffer the most.
A witness server can be utilized to automatically fail over to the mirror should the principal server go down.
Transactions are committed immediately on the principal server. Then the transactions are sent asynchronously to the mirror server. If the transactions are created at a faster rate than can be sent, the transactions are queued on the principal server.
There is a possibility of data loss if the principal server goes down. All transactions that are queued when the principal server goes down will be lost.
A witness server should not be used in this mode.
Manual intervention is required if the principal goes down.
The implementation and maintenance of database mirroring is the responsibility of the customer. Akcelerant recommends that database mirroring be implemented in the following way:
Setting up the Framework for mirroring
The Framework can be configured to automatically redirect its connections to the mirror database during a failover. This will minimize down time should a failover occur. In order for this automatic redirection to take place, the failover information must exist in the connection string for the application. The connection string must use one of the following formats:
Server=principal;Failover Partner=mirror;Database=Framework;UID=user;PWD=password;
Or
Server=principal;Failover Partner=mirror;Database=Framework;Trusted_Connection=Yes;
The connection string is stored in many locations within the Framework installation. The following outlines all configuration files that use a connection string.
Web Server | Website\web.config |
Application Server |
Services\Akcelerant.Collections.Service\web.config Services\Akcelerant.Connector.FISBASE2000.Web\web.config Services\Akcelerant.Connector.PSCU\web.config Services\Akcelerant.Core.Service\web.config Services\Akcelerant.Lending.Service\web.config Services\Akcelerant.Lending.Service.Host.DataSafe\web.config Services\Akcelerant.Lending.Service.Host.Default\web.config Services\Akcelerant.Lending.Service.Host.OSI\web.config Services\Akcelerant.Lending.Service.Host.Symitar\web.config |
Reporting Services | Anywhere DSN |
This section assumes the mirroring session is using high-performance mode with no automatic failover.
To force a failover, the mirroring session must first be changed to high-safety mode. After the mode is changed, the failover can take place. Execute this SQL on the principal server:
ALTER DATABASE Framework SET PARTNER SAFETY FULL
GO
ALTER DATABASE Framework SET PARTNER FAILOVER
It is possible that the FAILOVER statement will return an error. This occurs if there are pending transactions that have not yet been applied to the mirror server. If this error is returned, wait a few moments and try the failover again. Here is the error message for this scenario:
Msg 1422, Level 16, State 2, Line 1
The mirror server instance is not caught up to the recent changes to database "Framework". Unable to fail over.
If the principal server goes down, a failover can be initiated on the mirror server. This process removes the database from the mirroring session. Once the principal is back online, the entire mirroring session must be reestablished using the previous mirror as the new principal. Execute this SQL on the mirror server:
ALTER DATABASE Framework SET PARTNER OFF
GO
RESTORE DATABASE Framework WITH RECOVERY
GO
Application Failover Procedures
The Framework application will automatically begin connecting to the mirror database after a failover takes place. There are several caveats to be aware of, and some that require manual intervention.