Configuring FrameworX runtime servers for production operations.
Parent Page: Deployment (Reference)
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 |
Configure in Runtime → Startup:
Auto-Start Options:
Command Line Parameters:
cmd
TServer.exe /solution:MySolution.tproj
/port:10108
/disableinterface
/trace:verbose
Large Solutions (>50,000 tags):
xml
<runtime>
<gcServer enabled="true"/>
<gcConcurrent enabled="true"/>
<GCHeapCount>8</GCHeapCount>
</runtime>
The platform supports modular project design by automatically merging multiple project files at runtime based on naming conventions.
How It Works:
When launching a main solution (e.g., MyProject
), FrameworX automatically merges any projects whose names:
__suffix__
Example Structure:
MyProject.tproj → Main solution (core UI, shared logic)
MyProject__DeviceConfig1__.tproj → Device-specific configurations
MyProject__DBTest__.tproj → Test database connections
MyProject__CustomerA__.tproj → Customer-specific customizations
Runtime Behavior:
When you start MyProject
, the runtime automatically:
MyProject__*__.tproj
filesBenefits:
Merge Priority:
If conflicts exist (same tag name in multiple files):
Configuration Example:
Solutions/
??? MyProject.tproj
??? MyProject__Common__.tproj
??? MyProject__PlantA__.tproj
??? MyProject__PlantB__.tproj
??? MyProject__Debug__.tproj
Starting MyProject
loads all modules automatically.
Location: Solution folder Size Limit: 50,000 tags recommended Backup: Copy .db files when runtime stopped
Connection String:
Server=sqlserver.domain.com;
Database=FrameworX;
User Id=fxuser;
Password=SecurePass123!;
Required Permissions:
For historian data:
sql
CREATE INDEX IX_Timestamp ON HistorianData(Timestamp)
CREATE INDEX IX_TagName ON HistorianData(TagName, Timestamp)
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
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>
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"
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
Monitor these metrics:
xml
<logging>
<level>Information</level>
<maxFileSize>100MB</maxFileSize>
<maxFiles>10</maxFiles>
<path>C:\Logs\FrameworX\</path>
</logging>
Configure endpoint for monitoring:
http://server:10108/health
Returns: CPU, Memory, Disk, Service Status
Daily Backup:
Backup Script:
powershell
Stop-Service "FrameworX Runtime"
Copy-Item "C:\Solutions\*" "\\backup\solutions\" -Recurse
Start-Service "FrameworX Runtime"
RPO/RTO Targets:
Recovery Steps: