Database & Connection Strings Analysis for DR Planning
Project: DPKWI CoreApps
Date: February 13, 2026
Purpose: Complete connection strings and infrastructure documentation for Disaster Recovery Site setup
Executive Summary
TOTAL PRODUCTION HOSTS: 3
- HOST 1 ([SQL_SERVER_IP]): SQL Server (5 databases) + SSRS
- HOST 2 ([APP_SERVER_IP]): Application Server (API) + Web Server (CLI/UI)
- HOST 3 ([LDAP_SERVER_IP]): LDAP Server (authentication)
A. Runtime Connection Strings (Production - Web.config)
IMPORTANT: ALL production databases run on: [SQL_SERVER_IP] (SQL Server)
| Database |
Connection String |
| DPKWIADM |
Data Source=[SQL_SERVER_IP] |
| DPKWIKEP |
Data Source=[SQL_SERVER_IP] |
| DPKWIINV |
Data Source=[SQL_SERVER_IP] |
| DPKWIACC |
Data Source=[SQL_SERVER_IP] |
| DPKWIMIS |
Data Source=[SQL_SERVER_IP] |
Important notes for DR:
- At runtime/production, application ONLY uses connection strings from API/Web.config
- All databases are centralized on host [SQL_SERVER_IP]
B. Design-Time Connection Strings (DBML Files)
WARNING: DBML files contain connection strings used during development/design-time to generate LINQ-to-SQL classes. These connection strings are NOT used when the application runs.
| DBML File |
Host |
Port |
Database |
Note |
| ACCDataModel.dbml |
[DEV_HOST]\SQLSRV2022DEV |
[PORT] |
DPKWIACC |
SQL 2022 DEV |
| ADMDataModel.dbml |
[DEV_HOST]\MSSQLSERVER2019 |
[PORT] |
DPKPENADM |
SQL 2019 |
| AUTDataModel.dbml |
[DEV_HOST]\mssqlserver2019 |
- |
DPBCAADM |
SQL 2019 Local |
| FINDataModel.dbml |
[DEV_HOST]\SQLSRV2022DEV |
[PORT] |
DPKWIACC |
SQL 2022 DEV |
| KEPDataModel.dbml |
[DEV_HOST]\SQLSRV2022DEV |
[PORT] |
DPKWIKEP |
SQL 2022 DEV |
| MISDataModel.dbml |
[DEV_HOST]\SQLSRV2022DEV |
[PORT] |
DPKWIKEP |
SQL 2022 DEV |
| INVMSDataModel.dbml |
[DEV_HOST]\SQLSRV2022DEV |
[PORT] |
DPKWIINV |
SQL 2022 DEV |
| INVFIXDataModel.dbml |
[DEV_HOST]\MSSQLSERVER01 |
[PORT] |
DPKPENINV |
SQL 2019 |
| INVPAUDataModel.dbml |
[DEV_HOST]\SQLSRV2022DEV |
[PORT] |
DPKWIINV |
SQL 2022 DEV |
| INVPLADataModel.dbml |
[DEV_HOST]\SQLSRV2022DEV |
[PORT] |
DPKWIINV |
SQL 2022 DEV |
| INVPRODataModel.dbml |
[DEV_HOST]\MSSQLSERVER2019 |
- |
DPBCAINV |
SQL 2019 Local |
| INVRKSDataModel.dbml |
[DEV_HOST]\MSSQLSERVER2019 |
[PORT] |
DPBCAINV |
SQL 2019 |
| INVSHMDataModel.dbml |
[DEV_HOST]\MSSQLSERVER2019 |
[PORT] |
DPBCAINV |
SQL 2019 |
| INVDIRDataModel.dbml |
[DEV_HOST]\SQL2016 |
- |
DPBCAINV |
SQL 2016 (OLD) |
| INVRiskDataModel.dbml |
[DEV_HOST]\SQL2016 |
- |
DPBCAINV |
SQL 2016 (OLD) |
Conclusion:
- DBML files use various different development hosts
- This is only for development/regenerate LINQ-to-SQL classes purposes
- No need to replicate for DR because they are not used at runtime
C. Production Hosts to Replicate for DR
TOTAL PRODUCTION HOSTS: 3
HOST 1: SQL Server + SSRS ([SQL_SERVER_IP]) PRIORITY 1
Host: [SQL_SERVER_IP]
A. SQL Server Databases:
- DPKWIADM (Administration)
- DPKWIKEP (Membership)
- DPKWIINV (Investment)
- DPKWIACC (Accounting)
- DPKWIMIS (MIS/Reporting)
Replication methods:
- SQL Server Always On Availability Groups (AG) - Recommended
- Log Shipping (alternative)
- Database Mirroring (legacy option)
B. SSRS Report Server:
URL: http://[SQL_SERVER_IP]/ReportServer?/DPKWIRPT/DPKWIRPTPROD
- Database catalog:
ReportServer, ReportServerTempDB
- Report definitions (.rdl files) may exist in file system
- Replication method: Backup/restore SSRS database
HOST 2: Application & Web Server ([APP_SERVER_IP]) PRIORITY 2
Host: [APP_SERVER_IP]
This host runs 2 components on 1 server:
A. Application Server (API):
- Path:
{app_root}\API
- ASP.NET Web API (.NET Framework)
- Folder API/Files contains user uploads/attachments
- File replication method: DFS-R, robocopy scheduled task, or rsync
- Binary deployment: Publish from source control or sync bin/ folder
B. Web Server (UI/CLI):
- Path:
{app_root}\CLI
- Angular SPA bundles (already compiled)
- Deployment: Deploy via IIS or sync from source control
Note: Both applications run on IIS on the same host ([APP_SERVER_IP])
HOST 3: LDAP Server ([LDAP_SERVER_IP]) PRIORITY 3
Host: [LDAP_SERVER_IP]
- Used for user authentication/authorization
- Needs LDAP directory replication or setup secondary LDAP server
- Replication method: LDAP replication or secondary Domain Controller
- Configuration in API/Web.config (appSettings > LDAPServer)
D. DR Infrastructure Diagram
flowchart TB
subgraph PRIMARY["Primary Site (Local Network) - 3 HOST"]
subgraph HOST1["HOST 1: [SQL_SERVER_IP]"]
DB["SQL Server
(DPKWIADM/KEP/INV/ACC/MIS)"]
SSRS["SSRS
ReportServer"]
end
subgraph HOST2["HOST 2: [APP_SERVER_IP]"]
API["Application Server
(ASP.NET Web API)"]
UI["Web Server
(Angular SPA)"]
FILES["File Storage
API/Files"]
end
subgraph HOST3["HOST 3: [LDAP_SERVER_IP]"]
LDAP["LDAP Server
(Authentication)"]
end
end
subgraph DR["DR Site (Other Location) - 3 HOST"]
subgraph HOST1_DR["HOST 1 DR"]
DB_DR["SQL Server DR
(DPKWIADM/KEP/INV/ACC/MIS)"]
SSRS_DR["SSRS DR
ReportServer"]
end
subgraph HOST2_DR["HOST 2 DR"]
API_DR["Application Server DR
(ASP.NET Web API)"]
UI_DR["Web Server DR
(Angular SPA)"]
FILES_DR["File Storage DR
API/Files"]
end
subgraph HOST3_DR["HOST 3 DR"]
LDAP_DR["LDAP Server DR
(Authentication)"]
end
end
DB -->|"Always On AG
Log Shipping"| DB_DR
SSRS -->|"Database
Backup/Restore"| SSRS_DR
API -->|"App Deploy
Binary Sync"| API_DR
UI -->|"Bundle
Sync"| UI_DR
FILES -->|"DFS-R
Robocopy"| FILES_DR
LDAP -->|"LDAP
Replication"| LDAP_DR
E. DR Replication Checklist
Data Requiring Real-time/Near-time Synchronization
1. SQL Server Database ([SQL_SERVER_IP]):
- DPKWIADM (MDF/LDF)
- DPKWIKEP (MDF/LDF)
- DPKWIINV (MDF/LDF)
- DPKWIACC (MDF/LDF)
- DPKWIMIS (MDF/LDF)
Method: Always On AG (sync), Log Shipping (async)
2. File Storage:
- API/Files/* (user uploads/attachments)
Path: {app_root}/API/Files/
Method: DFS-R, robocopy scheduled task, rsync
3. SSRS Catalog:
- ReportServer database
- ReportServerTempDB database
- Report files (.rdl) if exist in file system
Method: Database backup/restore, file sync
4. LDAP Directory:
- User accounts & groups
- Organizational units
Method: LDAP replication, secondary DC
Configuration to Adjust at DR Site
1. API/Web.config:
- Connection strings (change [SQL_SERVER_IP] → DR site IP)
- LDAPServer (change [LDAP_SERVER_IP] → LDAP DR IP)
- machineKey (must be same as primary for cookie/session compatibility)
2. CLI/main.bundle.js:
- Global.URL / API_BASE_URL (change API IP → DR IP)
- REPORT_URL (change SSRS IP → DR IP)
Note: Needs Angular rebuild if source TS available, or edit bundle directly
3. SQL Server Logins:
- Grant appropriate permissions to 5 databases
4. IIS/Web Server:
- Setup application pool
- Configure bindings
- SSL certificate (if any)
DR Failover Testing
- Test database connection from DR app server
- Test LDAP authentication
- Test SSRS report generation
- Test file upload/download
- Test full user workflow (login → transaction → report)
External Dependencies (Summary)
TOTAL PRODUCTION HOSTS: 3
- HOST 1 ([SQL_SERVER_IP]):
- SQL Server (5 databases: DPKWIADM, DPKWIKEP, DPKWIINV, DPKWIACC, DPKWIMIS)
- SSRS Report Server (http://[SQL_SERVER_IP]/ReportServer)
- HOST 2 ([APP_SERVER_IP]):
- Application Server (ASP.NET Web API)
- Web Server (Angular SPA/CLI)
- File Storage (API/Files)
- HOST 3 ([LDAP_SERVER_IP]):
- LDAP Server (authentication/authorization)
Connection Strings: Configured in API/Web.config
DPKWI CoreApps - Disaster Recovery Planning Documentation
Generated: February 13, 2026