Akcelerant Collections 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.

ShowServer Monitoring

File System Quotas

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.

ShowGeneral Server Maintenance

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:

ShowDatabase Maintenance

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.

ShowHigh Availability

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.

Load Balancing

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:

  • Akcelerant Process Manager (scheduled task)
  • Akcelerant Lending Service (Windows service)

SQL Server Failover Clustering

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:

ShowDisaster Recovery

Database Backups

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.

  • Set the Recovery Model database option to "Simple."
  • Create a full backup of the database once per day during off hours.
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.

  • Set the Recovery Model database option to "Full."
  • Create a full backup of the database once per day during off hours.
  • Create an incremental backup of the database every four hours.
  • Create a transaction log backup at a minimum every hour.  You may increase the frequency of a transaction log backup to suit your needs.  In the event of a disaster, you will  be able to recover your database up to the point of your last transaction log backup.
Important Considerations

Here are important considerations regardless of the backup strategy implemented above:

  • Always keep several days’ worth of backup files. Backup files can become corrupted, lost or accidentally overwritten after they are created. It is wise to keep several days’ worth in the event that the most recent backup files are not available.
  • Store backups on a separate physical disk. In the event of disk failure, the database and all its backups are lost if they are on the same physical disk.
  • If possible, store backups at an external site. This protects against natural disasters at your site.

Share Folder Backups

The Akcelerant Framework stores important files in the share folder. These files include letters, documents, log files, credit reports and archived import files.

Stand-by Servers

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)

Web Server Failure Procedures

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

Application Server Failure Procedures

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

Reporting Services

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

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.

ShowRequirements

  • SQL Server version must be 2005 or later.
  • SQL Server edition must be Standard, Developer or Enterprise.
  • If using high-performance mode, the SQL Server edition must be Enterprise
  • All servers participating in mirroring must use the same edition
  • The principal and mirror servers must have equivalent hardware. This ensures that application performance does not degrade in the event of a failover.
  • The principal database must use the Full Recovery Model option.
  • A domain account must be used to run the SQL Server service so that data can flow freely between servers.
  • The domain account must have the “Access this computer from the network” local security policy on each participating server.
  • The ports configured for mirroring must be opened in the appropriate firewalls/network devices between participating servers.
  • The SQL logins used to run the Framework must have identical access and permissions between the principal and mirror servers.

ShowConfiguration Options

High-safety mode

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.

High-performance mode

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.

ShowConfiguration Recommendation

The implementation and maintenance of database mirroring is the responsibility of the customer.  Akcelerant recommends that database mirroring be implemented in the following way:

  • Set up instructions for SQL Server 2008
  • Set up instructions for SQL Server 2005
  • All partner servers (principal, mirror, and witness) should reside on separate physical servers. 
  • Configure mirroring to use high-performance mode with no witness.  This mode is the least sensitive to the network environment and provides superior performance over other modes.
  • If using automatic failover, the normal load on each failover partner should be less than 50 percent of the CPU.  If your work load overloads the CPU, failover partner might be unable to ping the other server instances in the mirroring session.  This causes an unnecessary failover.  If you cannot keep the CPU usage under 50 percent, we recommend you use either high-safety mode without automatic failover or high-performance mode.
  • Database mirroring does not supersede your backup strategy.  Even with a mirrored database, a disaster could occurr that affects both databases.  It is important to implement a sound backup strategy even when using database mirroring.

ShowSetting 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

ShowDatabase Failover Procedures

This section assumes the mirroring session is using high-performance  mode with no automatic failover.

Manual Database 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.

Unexpected Database Failover

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

ShowApplication 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.

  • After a failover, end users might be redirected to the login page. The connection pool has cached connections pointing to the old server. As these connections are reused by the application, they will be updated to use the new server after encountering a communication error with the old server. There are planned changes to address this issue and to make the failover process seamless to the end user.
  • The legacy components of the Akcelerant Framework (VB6, COM+, ASP) do not support automatic redirection after a failover. There is planned work to address this issue and support automatic redirection. Until that time, the connections strings serving these legacy components must be updated after a failover occurs. The connection strings are stored in the following locations:
    • Website\resetapp.asp
    • Website\global.asa
    • Exe\Config.xml
  • The installation programs for the Framework store the database server in the registry. When an update is installed after a failover occurs, the installation will attempt to connect to the old server. To correct this, update the registry keys used by the installation programs.
    • HKEY_LOCAL_MACHINE\SOFTWARE\Akcelerant\Productivity Framework\Application\dbserver
    • HKEY_LOCAL_MACHINE\SOFTWARE\Akcelerant\Productivity Framework\Database\server
    • HKEY_LOCAL_MACHINE\SOFTWARE\Akcelerant\Productivity Framework\Website\dbserver

 

 


©2017 Akcelerant Software LLC. All Rights Reserved.