Configuring FrameworX runtime servers for production operations.
Parent Page: Deployment (Reference)
Server Architecture
Core Components
Component | Function | Default Port |
---|---|---|
TServer.exe | Runtime engine | N/A (internal) |
TWebServices | Remote access, web clients | 10108 |
Database | Tag values, history, alarms | 1433 (SQL Server) |
TSecureGateway | Multi-site routing | Configurable |
Runtime Configuration
Startup Settings
Configure in Runtime → Startup:
Auto-Start Options:
- Start when computer starts
- Start as Windows Service
- Delay start (seconds)
- Auto-restart on failure
Command Line Parameters:
cmd
TServer.exe /solution:MySolution.tproj
/port:10108
/disableinterface
/trace:verbose
Memory Management
Large Solutions (>50,000 tags):
xml
<runtime>
<gcServer enabled="true"/>
<gcConcurrent enabled="true"/>
<GCHeapCount>8</GCHeapCount>
</runtime>
Database Configuration
Embedded SQLite (Default)
Location: Solution folder Size Limit: 50,000 tags recommended Backup: Copy .db files when runtime stopped
External SQL Server
Connection String:
Server=sqlserver.domain.com;
Database=FrameworX;
User Id=fxuser;
Password=SecurePass123!;
Required Permissions:
- db_datareader
- db_datawriter
- db_ddladmin (for table creation)
Time-Series Optimization
For historian data:
sql
CREATE INDEX IX_Timestamp ON HistorianData(Timestamp)
CREATE INDEX IX_TagName ON HistorianData(TagName, Timestamp)
Network Configuration
Firewall Rules
Required Ports:
Port | Protocol | Direction | Purpose |
---|---|---|---|
10108 | TCP | Inbound | TWebServices/Clients |
1433 | TCP | Outbound | SQL Server |
502 | TCP | Outbound | Modbus devices |
102 | TCP | Outbound | S7 PLCs |
Windows Firewall:
cmd
netsh advfirewall firewall add rule name="FrameworX Runtime"
dir=in action=allow protocol=TCP localport=10108
Network Adapters
For multi-homed servers:
xml
<networkSettings>
<bindToIP>192.168.1.100</bindToIP>
<clientInterface>192.168.1.0/24</clientInterface>
<deviceInterface>10.0.0.0/24</deviceInterface>
</networkSettings>
Performance Tuning
Windows Optimization
Power Settings:
cmd
powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
(High Performance plan)
Process Priority:
cmd
wmic process where name="TServer.exe" CALL setpriority "high"
Linux Optimization
System Limits:
bash
# /etc/security/limits.conf
frameworkx soft nofile 65536
frameworkx hard nofile 65536
frameworkx soft nproc 32768
frameworkx hard nproc 32768
CPU Affinity:
bash
taskset -c 0-3 /opt/frameworkx/TServer.exe
Monitoring
Performance Counters
Monitor these metrics:
- CPU usage < 70%
- Memory usage < 80%
- Disk queue length < 2
- Network utilization < 60%
Log Configuration
xml
<logging>
<level>Information</level>
<maxFileSize>100MB</maxFileSize>
<maxFiles>10</maxFiles>
<path>C:\Logs\FrameworX\</path>
</logging>
Health Checks
Configure endpoint for monitoring:
http://server:10108/health
Returns: CPU, Memory, Disk, Service Status
Backup and Recovery
Backup Strategy
Daily Backup:
- Stop runtime (if possible)
- Backup solution files (.tproj, .dbsln)
- Backup database
- Backup configuration files
- Restart runtime
Backup Script:
powershell
Stop-Service "FrameworX Runtime"
Copy-Item "C:\Solutions\*" "\\backup\solutions\" -Recurse
Start-Service "FrameworX Runtime"
Disaster Recovery
RPO/RTO Targets:
- Recovery Point Objective: 1 hour
- Recovery Time Objective: 15 minutes
Recovery Steps:
- Install FrameworX on new server
- Restore solution files
- Restore database
- Update client connections
- Verify operation