3DEXPERIENCE 2024x Installation on RHEL 8.6

This is only for demo case, all servers in one OS.

create dedicated user for 3DEInstallation

for all the commands, do not copy the first character.

#useradd dsuser
#passwd dsuser
#useradd oracle
#passwd oracle

switch to dsuser ,and check user resource limit.

$ulimit -a
$ulimit -aH

in my case , open file is not enough , so I add to /etc/security/limits.conf

*       hard    nofile  262144
*       soft    nofile  65536

add to /etc/sysctl.conf folowing, it is for 3DSpace Index and Swym Exalead to protect their ports not be occupied.

This example is all in one installation, if normal installation, need add to the corresponding 3DSpace Index Server and Swym Server.

net.ipv4.ip_local_reserved_ports = 19000-19100,29000-29100
#sysctl -p

oracle install

#dnf localinstall compat-libcap1-1.10-7.el7.x86_64.rpm
#dnf localinstall compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
#dnf localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
#dnf localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
#/etc/init.d/oracledb_ORCLCDB-19c configure 

set oracle 19c as system service so it will start when reboot.

#systemctl enable oracledb_ORCLCDB-19c

modify /etc/oratab

ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y

login as oracle:

modify .bash_profile add

export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=ORCLCDB

execute below commands. it will open 5501 port for pdb orclpdb1’s express manager

$. .bash_profile
$sqlplus / as sysdba
SQL>ALTER USER sys IDENTIFIED BY oracle;
SQL>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
SQL> alter pluggable database all open;
SQL> alter pluggable database all save state;
SQL> alter system set processes = 640 scope = spfile;
SQL> alter session set container=ORCLPDB1;
SQL> exec dbms_xdb_config.sethttpsport(5501);

upgrade oracle 19.3 to 19.21

$mv OPatch OPatch.12.2.0.1.17
$cd parent_path_of_new_OPath
$mv OPatch $ORACLE_HOME
$$ORACLE_HOME/OPatch/opatch version
$dbshut $ORACLE_HOME
$cd 35643107
$$ORACLE_HOME/OPatch/opatch apply
$dbstart $ORACLE_HOME
$cd $ORACLE_HOME/OPatch
$./datapatch -verbose
SQL> @/opt/oracle/product/19c/dbhome_1/rdbms/admin/utlrp.sql

create tablespace and schema for 3DE

SQL> alter session set container=ORCLPDB1;
SQL> @2024xsql.txt;

create certification in case you do not have commercial certification, change the name and domain and subj

generate the certification file to /conf folder

#DOMAIN=yourcompany.com
#NAME=3de.$DOMAIN
#openssl genrsa -out $NAME.key 2048
#openssl req -new -key $NAME.key -subj "/C=CN/ST=REGION_NAME/L=LOCATION_NAME/O=ORG_NAME/OU=UNIT_NAME/CN=$NAME/emailAddress=admin_user@$DOMAIN" -out $NAME.csr
#>$NAME.ext cat <<-EOF
#authorityKeyIdentifier=keyid,issuer
#basicConstraints=CA:FALSE
#keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
#subjectAltName = @alt_names
#[alt_names]
#DNS.1 = $NAME
#DNS.2 = *.$DOMAIN
#DNS.3 = untrusted.$NAME
#EOF
#openssl x509 -req -in $NAME.csr -CA myCA.crt -CAkey myCA.key -CAcreateserial -out $NAME.crt -days 1825 -sha256 -extfile $NAME.ext

install some prerequisite

#dnf install ksh libaio* numactl* redhat-lsb-core spax motif libXp xorg-x11-xbitmaps zlib* expat* pcre* openssl-devel gcc mesa-libOSMesa libnsl compat-openssl10 xorg-x11-server-Xvfb libpng12

create directory /app, change owner to dsuser,

#mkdir /app
#chown dsuser.dsuser /app

install apache 2.4.58

can use newer version. unzip download source codes first.

#mv apr-util-1.6.3/ httpd-2.4.58/srclib/apr-util/
#mv apr-1.7.4/ httpd-2.4.58/srclib/apr/
#mv apr-iconv-1.2.2 httpd-2.4.58/srclib/apr-iconv/
#./configure --with-included-apr --enable-ssl --prefix=/app/apache
#make
#make install

enable below module at apache conf file:
mod_cache.so
mod_cache_disk.so
mod_deflate.so
mod_proxy.so
mod_proxy_http.so
mod_proxy_wstunnel.so
mod_rewrite.so
mod_socache_shmcb.so
mod_ssl.so
mod_slotmem_shm.so

add 3de.conf to /app/apache/conf.d , for security , you can add IP restrict at /server-status and /balancer-manager

<Location "/server-status">
SetHandler server-status
</Location>
<Location "/balancer-manager">
SetHandler balancer-manager
</Location>
<IfModule mpm_event_module>
StartServers 3
MinSpareThreads 75
MaxSpareThreads 500
ThreadsPerChild 25
ServerLimit 32
MaxRequestWorkers 800
MaxConnectionsPerChild 0
</IfModule>
TimeOut 600
KeepAlive On
KeepAliveTimeout 6
MaxKeepAliveRequests 400
Listen 443
SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLHonorCipherOrder on
SSLProtocol all -SSLv3
SSLProxyProtocol all -SSLv3
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:/app/apache/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
<VirtualHost *:443>
ServerName 3de.yourcompany.com
ServerAlias *.yourcompany.com untrusted.3de.yourcompany.com
SSLEngine on
SSLProxyEngine On
SSLCertificateFile "/conf/3de.yourcompany.com.crt"
SSLCertificateKeyFile "/conf/3de.yourcompany.com.key"
ErrorLog "|/usr/DassaultSystemes/apache/bin/rotatelogs logs/3de_error-%Y-%m-%d.log 86400"
LogFormat "%h %v:%{local}p %l %u %{SSL_PROTOCOL}x %{SSL_CIPHER}x %t %{ms}T \"%r\" %>s %b" 3deformat
CustomLog "|/usr/DassaultSystemes/apache/bin/rotatelogs logs/3de_access-%Y-%m-%d.log 86400" 3deformat
Include /usr/DassaultSystemes/R2024x/3DPassport/linux_a64/templates/3DPassport_httpd_fragment.conf
Include /usr/DassaultSystemes/R2024x/3DDashboard/linux_a64/templates/3DDashboard_httpd_fragment.conf
Include /usr/DassaultSystemes/R2024x/FedSearch/linux_a64/templates/federated_httpd_fragment.conf
Include /usr/DassaultSystemes/R2024x/3DSpace/linux_a64/templates/3DSpace_httpd_fragment.conf
Include /usr/DassaultSystemes/R2024x/3DNotification/linux_a64/templates/3DNotification_httpd_fragment.conf
Include /usr/DassaultSystemes/R2024x/3DComment/linux_a64/templates/3DComment_httpd_fragment.conf
Include /usr/DassaultSystemes/R2024x/3DSwym/linux_a64/templates/3DSwym_httpd_fragment.conf
</VirtualHost>

Make apache as Service

Add to /etc/rc.d/rc.local

/app/apache/bin/apachectl start

make rc.local executable

chmod +x /etc/rc.d/rc.local

Logout and Login as dsuser

unzip openjdk version “17.0.9” to /app

$ln -s jdk-17.0.9+9 jdk17

modify .bash_profile add:

export JAVA_HOME=/app/jdk17
export PATH=$JAVA_HOME/bin:$PATH:/usr/DassaultSystemes/R2024x/3DSpace/scripts

in case the certification is self-generated.

$. ~/.bash_profile
$keytool -import -cacerts -storepass changeit -alias 3ds.yourcompany.com -file /conf/myCA.crt
$keytool -list -cacerts -storepass changeit -alias 3ds.yourcompany.com -v

unzip apache-tomee-8.0.16-plus to /app

At tomee bin folder, create setevn.sh

$touch setenv.sh
$chmod +x setenv.sh

modify setenv.sh, add below

export CATALINA_PID="$CATALINA_BASE/tomcat.pid"

Edit context.xml under conf folder:

<Manager pathname="" />
<Resources cachingAllowed="true" cacheMaxSize="200000" />

create 3DSpace CAS Server tomee

$cd /app
$cp -r tomee-plus-8 casTomee
$cd casTomee/bin

modify startup.sh, add at second line

. /usr/DassaultSystemes/R2024x/3DSpace/scripts/mxEnvCAS.sh

also copy tomee8 to nocasTomee and modify startup.sh

. /usr/DassaultSystemes/R2024x/3DSpace/scripts/mxEnv.sh

and also copy to other tomee which is needed.

unzip oracle instant client to /app/instantclient_19_21

modify .bash_profile

export ORACLE_HOME=/app/instantclient_19_21
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH

Then install 3DEXPERIENCE, I will not detail describe how to install 3DExperience. only mention,

you need use below as database connection

//yourhostname:1521/orclpdb1

after install 3DSpace, use below to fix 61616 conflict issue.

cp /usr/DassaultSystemes/R2024x/3DSpace/linux_a64/templates/tomee.xml /app/castomee/conf/
cp /usr/DassaultSystemes/R2024x/3DSpace/linux_a64/templates/tomee.xml /app/nocastomee/conf

when install app ,extract installer to /home/dsuser , you use below alias to quickly install app, just cd install app folder and execute “dsi”

$alias dsi='./StartTUI.sh -installerPath /home/dsuser/DS_Installer.Linux64'

My simplified app list as example. added whatever app as you wanted.

  • ENOVIAIPClassificationFoundation
  • ENOVIACollaborativeTasksFoundation
  • ENOVIAEnterpriseChangeManagement
  • ENOVIAEngineeringBOMManagementFoundation
  • ENOVIAEBOMAVLManagement
  • ENOVIAEnterpriseAVLManagement
  • ENOVIAConfiguredBOMManagementFoundation
  • ENOVIAVariantManagementFoundation
  • ENOVIAUnitBOMManagementFoundation
  • ENOVIAProjectManagementFoundation
  • ENOVIATraceableRequirementsManagementFoundation
  • ENOVIAUnifiedX-CADDesignManagement
  • ENOVIACollaborationforMicrosoftServer
  • AdapterforX-PDMFoundation
  • 3DExplore
  • DataModelCustomizationFoundation
  • ENOVIADocumentControlFoundation
  • CATIASystemsReportGeneration
  • ENOVIASpecificationManagementFoundation
  • CATIASystemsTraceability
  • DELMIAMfgItemsStructurePlanner
  • ENOVIADocumentManagement
  • ENOVIAIPProtectionandExportControlManagement
  • ENOVIASupplierItemManagement
  • CATIASystemsDesigner
  • ENOVIADefectManagementandCollaborationFoundation
  • ENOVIAConnectedSoftwareManagementFoundation
  • ENOVIAEventPublishingFoundation
  • ENOVIAComplaintsandNonConformancesFoundation

after 3dspace and app installed. generate war files and deploy

$BuildDeploy3DSpace_CAS.sh
$BuildDeploy3DSpace_NoCAS.sh
$cp /usr/DassaultSystemes/R2024x/3DSpace/distrib_CAS/3dspace.war /app/castomee/webapps/
$cp /usr/DassaultSystemes/R2024x/3DSpace/distrib_NoCAS/internal.war /app/nocastomee/webapps/

and compile JPO

$mql
mql<x>set context user creator; 
mql<x>compile prog * force update size 500;

set config.xml and do full index and enable partial index.

$FullTextSearch_PostInstall.sh
$registerCrontaskFullTextSearch.sh

This Post Has 2 Comments

Leave a Reply