Designing and Configuring a Multi-Server Distributed Architecture for 3DEXPERIENCE On-Premise

Deploying the Dassault Systèmes 3DEXPERIENCE platform on-premise requires transitioning from simple single-server architectures to high-availability, distributed infrastructures. For enterprise environments with hundreds or thousands of concurrent users, a single-box setup represents both a performance bottleneck and a single point of failure.

A production-grade, multi-server distributed architecture isolates the compute, storage, index, and database layers. This deep-dive technical blueprint walks through configuring a robust, horizontally scaled 3DEXPERIENCE On-Premise environment, complete with infrastructure flowcharts, network configurations, and programmatic parameters.

Architectural Topology: The Core Components

A resilient 3DEXPERIENCE environment splits logical roles across distinct server groups (nodes). This modular layout allows you to scale specific components independently based on user patterns, such as expanding search nodes for query-heavy work environments or increasing File Collaboration Servers for multi-site CAD data syncs.

Server Node Mapping

  • Reverse Proxy / Load Balancer: The unified public-facing entry point. It manages SSL termination, routes traffic based on URL context paths, and balances loads across middle-tier servers.
  • 3DCompass (Identity Provider): The central authentication hub handling Single Sign-On (SSO), OpenID Connect (OIDC), and User Session tokens.
  • 3DSpace (Core Application Server): Runs the main business logic via Apache Tomcat instances. It processes MQL (Matrix Query Language) commands and communicates with the database.
  • 3DSearch / Exalead CloudView: The distributed search indexing cluster that enables rapid global indexing and metadata retrieval.
  • File Collaboration Server (FCS): Manages the checking in and out of heavy physical CAD files, bypassing the main application server to streamline high-volume file transfers.
  • Database Server: The data repository hosting business objects, relationships, and metadata (typically Oracle RAC or Microsoft SQL Server Availability Groups).

Infrastructure Prerequisites and Network Matrix

Host Specifications Matrix

To maintain low system latency, do not over-allocate virtualized resources past 75% of actual hardware capacity.

Server NodeOS RecommendationMinimum CPU (Cores)Minimum RAMStorage Tier
Load BalancerRed Hat Enterprise Linux (RHEL) 8/94 Cores8 GBStandard SSD
3DCompassRHEL 8/9 or Windows Server 20224 Cores16 GBHigh-Performance SSD
3DSpace (x2)RHEL 8/9 or Windows Server 20228 Cores32 GBHigh-Performance SSD
3DSearchRHEL 8/9 or Windows Server 20228 Cores64 GBNVMe SSD (Fast I/O)
FCS ServerRHEL 8/9 or Windows Server 20224 Cores16 GBHigh-Capacity SAN/NAS
DatabaseRHEL 8/9 (Oracle) / Win Server (SQL)16 Cores128 GBUltra-Low Latency NVMe

Network and Firewall Rule Settings

All nodes must communicate via Fully Qualified Domain Names (FQDN) using trusted TLS certificates

Step-by-Step Configuration Guide

To build out the architecture safely, deploy components in a strict, sequential order. This approach isolates network validation, identity verification, and core business transactions before configuring search and storage layers.

Step 1: Front-End Load Balancing & Reverse Proxy

Use HAProxy or an F5 Big-IP device to terminate incoming SSL handshakes and route traffic to your back-end application nodes.

Below is a configuration snippet for /etc/haproxy/haproxy.cfg designed to manage sticky user sessions using a servlet cookie prefix.

global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
ssl-default-bind-ciphers PROFILE=SYSTEM

defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.1
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 30m
timeout server 30m
timeout http-keep-alive 10s
timeout check 5s

frontend plm_ssl_ingress
bind 192.168.10.50:443 ssl crt /etc/pki/tls/certs/3dexp_platform.pem
http-request set-header X-Forwarded-Proto https

# Context routing rules
acl is_3dcompass path_beg -i /3dcompass
acl is_3DSpace   path_beg -i /3dspace

use_backend compass_cluster if is_3dcompass
use_backend space_cluster   if is_3DSpace

backend space_cluster
balance roundrobin
option httpchk GET /3dspace/serverStatus.jsp
# Cookie-based sticky sessions matching Tomcat JVM route names
cookie JSESSIONID prefix nocookies
server 3dspace_node1 192.168.10.52:8080 cookie node01 check inter 3000 rise 2 fall 3
server 3dspace_node2 192.168.10.53:8080 cookie node02 check inter 3000 rise 2 fall 3

backend compass_cluster
balance source
server 3dcompass_node 192.168.10.51:8443 check ssl verify none

Step 2: Federated Identity Setup (3DCompass)

The 3DCompass application functions as the OpenID Connect Identity Provider. Open your passport.config.allocator.xml file on the 3DCompass server to explicitly map internal tokens back to the load-balanced virtual domain.

Step 3: Distributed Middle-Tier Setup (3DSpace Nodes)

Each Apache Tomcat instance running the 3DSpace kernel needs a direct link to the central cluster database.On both 3DSpace Node 1 and 3DSpace Node 2, navigate to your installation directory and configure the database connection pool within the server.xml file.

<Resource name="jdbc/3dspace_pool"
          auth="Container"
          type="javax.sql.DataSource"
          driverClassName="oracle.jdbc.OracleDriver"
          url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=rac-scan.enterprise.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=3DEXP_SVC)))"
          username="matrix"
          password="EncryptedPasswordSchemaString"
          maxTotal="100"
          maxIdle="30"
          maxWaitMillis="10000"
          validationQuery="SELECT 1 FROM DUAL"
          testOnBorrow="true"
          removeAbandonedOnBorrow="true"
          removeAbandonedTimeout="60"
          logAbandoned="true"/>

Next, matching the sticky session rules configured in Step 1’s proxy script, edit the <Engine> parameters inside server.xml to match the specific route identifiers.

  • For Node 1: <Engine defaultHost="localhost" jvmRoute="node01" name="Catalina">
  • For Node 2: <Engine defaultHost="localhost" jvmRoute="node02" name="Catalina">

Step 4: Storage Infrastructure (FCS Server Configuration)

The File Collaboration Server requires registration inside the 3DSpace kernel so the platform knows where to route heavy file check-ins.

Log into your 3DSpace instance via the Matrix Query Language (MQL) administrative command line tool and run the following parameters to register your remote storage site.

# Open MQL context as platform administrator
set context person creator;

# Add the new File Collaboration Store location
add location "Main_FCS_Store"
    description "Primary On-Premise Storage Vault"
    protocol "https"
    host "fcs.enterprise.com"
    port "8081"
    path "/fcs/servlet/fcs"
    ftp "";

# Modify the store to activate local extraction and ticket validation
modify store "COMMON SPACE" 
    add location "Main_FCS_Store";

Validating the Distributed Topology

Once you bring the system online, verify that your multi-server components are communicating correctly across the network.

Verification of the Load Balancer Health Status

Run this diagnostic command from an external server to ensure the proxy is correctly reading the node statuses.

Expected Response:

Validation of Cross-Node Ticket Generation

Verify that the 3DSpace middle-tier server is generating and passing authentication tokens to the 3DCompass passport service without routing errors.

Maintenance Best Practices for On-Premise Systems

Database Statistics Maintenance: Set up a nightly job to recalculate schema statistics on your database indexes. Outdated statistics can cause search queries to time out when querying complex bill of materials (BOM) trees.

Synchronized Storage Backups: Always take snapshots of your 3DSpace database instance and the physical FCS data store at the exact same time. Restoring a database without the corresponding physical files will lead to broken links and corrupted CAD object histories.

JVM Memory Allocation: For production 3DSpace Tomcat engines, always match the initial heap size (-Xms) with the maximum heap size (-Xmx) parameters to avoid mid-day memory reallocation lag. A safe baseline for a standard 32 GB RAM system is:

Migrating to a multi-server distributed architecture is more than just an infrastructure upgrade—it is a fundamental shift in how your enterprise protects and scales its digital thread. While setting up load balancers, database clusters, and dedicated storage nodes solves today’s performance and downtime bottlenecks, it also lays the foundation for future-proofing your business. As systems become more interconnected and automated through advanced analytics, AI-driven design, and closer supplier collaboration, ask yourself: Is your infrastructure built just to survive your current peak user traffic, or is it robust enough to anchor your next decade of product lifecycle innovation? The configuration decisions you make today will determine whether your PLM environment acts as a reactive data repository or a powerful engine for digital transformation.

Vivek Agrawal

Vivek Agrawal is dedicated to exploring the core themes of engineeringplm.com and trending product lifecycle management (PLM) topics. His research covers a variety of highly relevant 2026 trends, including the shift from AI copilots to autonomous agentic workflows, real-time IoT, and Digital Twin integration. Vivek also analyzes the evolving role of PLM in ESG tracking, specifically regarding Digital Product Passports. From unpacking the complexities of event-driven architectures to deep dives on real-time syndication between PLM and Product Information Management (PIM), he provides the insights necessary to navigate the 2026 product development landscape.

Leave a Reply

Your email address will not be published. Required fields are marked *