Implementing redundancy and failover for mission-critical systems.

Parent Page: Deployment (Reference)



Redundancy Architecture

Hot Standby Configuration

[Primary Server]          [Secondary Server]
     TServer.exe    <-->      TServer.exe
     (Active)                 (Standby)
         |                        |
     [Shared Storage or Database Sync]

Synchronization Methods:

  • Real-time tag synchronization
  • Database replication
  • File system mirroring

Configuration Steps

Primary Server Setup

  1. Enable Redundancy: Runtime → Redundancy → Enable
  2. Configure Primary:

    xml

    <redundancy>
      <role>Primary</role>
      <partner>192.168.1.101</partner>
      <heartbeat>1000</heartbeat>
      <timeout>5000</timeout>
    </redundancy>
  3. Set Virtual IP: For transparent failover

Secondary Server Setup

  1. Configure Secondary:

    xml

    <redundancy>
      <role>Secondary</role>
      <partner>192.168.1.100</partner>
      <syncMode>Full</syncMode>
    </redundancy>
  2. Synchronization Settings:
    • Tag values: Real-time
    • Alarms: Real-time
    • History: Periodic

Failover Mechanisms

Automatic Failover

Heartbeat Monitoring:

  • Interval: 1 second
  • Timeout: 5 seconds
  • Failure count: 3

Failover Process:

  1. Heartbeat loss detected
  2. Secondary validates primary failure
  3. Secondary activates
  4. Clients redirected
  5. Alarms generated

Manual Switchover

For maintenance:

cmd

FrameworXCmd.exe /switchover /target:secondary

Database Redundancy

SQL Server Always On

Configuration:

sql

ALTER AVAILABILITY GROUP [FrameworX_AG]
ADD DATABASE [FrameworX_Production];

Database Mirroring

For SQL Server Standard:

sql

ALTER DATABASE FrameworX 
SET PARTNER = 'TCP://Secondary:5022'

Client Behavior

Connection Management

Client Failover:

xml

<connectionList>
  <primary>192.168.1.100:10108</primary>
  <secondary>192.168.1.101:10108</secondary>
  <retryInterval>5000</retryInterval>
</connectionList>

Session Persistence

  • Maintain client state
  • Preserve alarm acknowledgments
  • Continue trends without gaps

Testing Procedures

Failover Test

  1. Simulate Primary Failure:

    cmd

    Stop-Service "FrameworX Runtime"
  2. Verify Secondary Activation:
    • Check service status
    • Verify client connections
    • Confirm data continuity
  3. Test Failback:

    cmd

    Start-Service "FrameworX Runtime"

Performance Impact

Monitor during failover:

  • Failover time < 30 seconds
  • Data loss = 0
  • Client reconnection < 10 seconds


  • No labels