Service EndpointsBefore you start the installation, each service can have previously configured, dedicated URL endpoints. These are examples of service endpoints, comprising a service name and a domain name:
3dlicencing.mydomain.com 3dpassport.mydomain.com 3ddashboard.mydomain.com untrusted.3ddashboard.mydomain.com 3dsearch.mydomain.com 3dspace.mydomain.com 3dspace.mydomain.com/{webapp_name}
fcs.3dspace.mydomain.com 3dswym.mydomain.com Note:
You can use a single port on a dedicated machine with one root URL for all the services and distinguish the different services by their root URI. Also, if you want the Service Endpoints to be the same (Single FQDN), you must change the name of the cookies as mentioned for each service in the Operations section. .HTTPS and CertificatesTo be accepted by the 3DEXPERIENCE platform servers, the certificate CN must be equal to the full server URL (i.e.
The certificate comprises two parts:
Certificates can be obtained from any certificate creation public authority, or, if you have your own authority, generated and signed by this authority. Do not use self signed certificates. Firefox (since version 55) and Chrome-based browsers (since version 80), block them. You can generate certificate requests and transmit them to your administrator or provider. For more information see Set Up Certificates of each service installation guide. If you are deploying 3DSpace on an application server which relies on its native java, you must import certificates on the native java as well.
Note:
Only certificate files using the extension
.cer must be
used. Reverse Proxy and Load BalancersConnection to all 3DEXPERIENCE platform services is done via The reverse proxy, apart from securing the communication between the client (or other servers) and the application, also sets some headers to allow CORS capabilities between elements of the platform. Configurations for apache2.4 are built during the service installation process and can be found at: <install_dir>/<os>/templates/<service_name>_http_fragment.conf[.txt] They can easily be translated into configurations for other reverse proxy technologies. All load balancers should be configured to conserve the sessions using cookies and a parameter value (see examples given for some load balancers). See the installation documentation for each service for more details. There are several different possibilities:
The case where the services are set up using the same virtual host, on the same / uri (without a different path for each service) is not possible in a single httpd.conf configuration file with only one domain. Note that the fragments for each service are isolated in a location container, allowing them to be used on the same Apache HTTPD server on the same port. Add all templates into one HTTPD configuration file within a single correctly configured ssl Virtualhost. For more information, see the section "Configuring the Reverse Proxy" in each service installation guide. MachinesPhysical or virtual machines can be used except for licensing using the DS License Server (DSLS) which needs physical machines unless you use the following specific implementations:
On Linux make sure /usr/tmp folder exists in write access before launching the 3DSpace installer. Internet AccessInternet access is mandatory in the following cases:
Firewall settingsThe TCP (HTTPS) protocol must be allowed from all machines to the DS License Server typically on port 4085, or another port number if the DS License Server is configured to listen to a non-default port number. We recommend that you update firewall settings to accommodate non-default ports, if chosen for all services. DatabasesFor each service, refer to Microsoft documentation for connecting with encryption to SQL Server. For more information, see the Preparing the installation section of each service. Application ServersNote that EACH SERVICE requires a dedicated, separate application server: the services cannot share the same application server. If the embedded Server JRE is not selected at installation, the setenv.bat/.sh file must be updated with the variable JAVA_HOME for each application server. User IDsThroughout the installation, whenever you are prompted to create users, all userids must be created in lowercase. This limitation does not apply to other user information in user profiles such as first and last names, addresses, etc. Furthermore, spaces are NOT allowed in userids. Users should be created in both 3DPassport and 3DSpace, in that order, with the same userid that should never be changed, and then synchronized with the rest of the platform. So it is critical that all services be up and running when a new user is created. There are two methods for creating users:
If you are migrating from V6R2014x or earlier, users should be created with user IDs with the same case as 3DSpace user IDs. Migrate Existing Users Created in an Earlier Release explains how to import these users in batch mode. TimezoneFor all servers, set the time zone to UTC (Coordinated Universal Time). On Windows, configure the system date and time to use UTC (Coordinated Universal Time) as the time zone. On Linux, configure the system time zone to UTC. To do so, run for instance the following command: ln -s /usr/share/zoneinfo/UTC /etc/localtime Clock synchronizationYou must ensure that all clocks on all servers are synchronized using technology such as NTP synchronization. Mail Server ConfigurationCertain service instances require a local mail server to send mail to users. Consequently, you must configure each mail server. A mail sender name is required for each service for the following reasons:
Batch Authentification Certain internal services do not support 3DPassport CAS authentication, consequently they must be configured with a NO-CAS
authentication on a dedicated TomEE application server on the 3DSpace
side, set with a dedicated List of services communicating with DSLS Server
Load Balancing RecommendationsLoad balancing multiple instances of each 3DEXPERIENCE platform service is recommended for production environments, for availability, scalability and performance. All services supporting access through load balancing must comply with the following constraints:
Standard First request: OPTION request: Standard other request (not OPTION, not first): In compliance with these constraints, here is an example of a load balancing configuration using haproxy (behind an independent reverse proxy). Note:
HAProxy support is limited to Linux Operating Systems.
global
log 127.0.0.1 syslog notice
option httplog
maxconn 4000
defaults
log global
option tcplog
option forwardfor
timeout connect 5000
timeout client 50000
timeout server 50000
option http-server-close
frontend http-in
bind *:{inbound port}
mode http
capture cookie SERVERID len 100
default_backend Service_All
backend Service_All
balance roundrobin
mode http
cookie SERVERID insert indirect nocache secure httponly
#for all services except 3DSpace :
option httpchk OPTIONS /{Service uri}//healthcheck/ HTTP/1.0
#for 3DSpace :
# option httpchk OPTIONS /enovia/ HTTP/1.0
http-send-name-header x-dsp-client-node
# List of servers
server Front_0 {server0 IP}:{tomee port} cookie Front_0 check
server Front_1 {server1 IP}:{tomee port} cookie Front_1 check
For the configuration of HAProxy specific to 3DDashboard, the following line should be added:
If you add an URL for 3DDashboard like this:
<3DDashboardUri>: custom3dd <3DDashboardHostname>: domain.com If you add an URL for 3DDashboard like this:
<3DDashboardUri>: 3ddashboard <3DDashboardHostname>: domain.com Another example: For hardware load balancer BigIP from F5, an iRule can be designed
to set the when LB_SELECTED {
#following 3 lines could determine persistence cookie name being
used if not manually set in the RULE_INIT section
#if {not [info exists cookie_name]} {
# if { [set cookie_name [PROFILE::persist mode cookie
cookie_name]] eq "" } { set $cookie_name
"no_cookie_persist_but_nevermind" }
#}
#Next function is here to forge the persistence cookie value when
it doesn't exist yet (because it's the first hit)
if { [set COOKIE [HTTP::cookie value $cookie_name]] == "" } {
scan [LB::server addr] {%d.%d.%d.%d} a b c d
#Forging the cookie value based on sol6917
set ADDR [expr { $a + $b * 256 + $c * 65536 + $d * 16777216 }]
set PORT [ntohs [LB::server port]]
set COOKIE "${ADDR}.${PORT}.0000"
#log local0. "$cookie_name = $COOKIE created for [HTTP::uri]"
unset a b c d ADDR PORT
}
HTTP::header insert "x-dsp-client-node" $COOKIE
}
Note:
x-dsp-client-node is the default header name and is hardcoded in the code of the filters. If you want to change the name of this header, you need to proceed as explained in each section Operations of 3DDashboard, 3DSpace 3DSearch, 3DSwym, 3DComment Native Apps (CATIA) use headers. Here is the list of headers to be kept on the RP /
LB chain. During Operations like CATIA open, with Accept-Encoding: SIDL, gzip, deflate with Content-Encoding: application/octet-stream Certain load balancers are configured to modify these headers leading to errors. The diagram below explains session affinity in more detail.
The ![]() Load request filter load balancingFollow this procedure to enable session affinity required for callbacks sent by 3DPassport to the other services of the 3DEXPERIENCE platform.
Service healthcheckYou can check services status by opening the following URLs in your browser.
| |||||||||||||||||||||||||||||||||||||||||||||||||