MongoDB Enterprise Configuration
For Web
By default,Arbortext Content Delivery provides the MongoDB community edition. To use the enterprise version, you must separately install the enterprise version and restore the dump exported from the community database. Once encryption at REST is enabled, configure the encrypted MongoDB to Arbortext Content Delivery. To migrate from MongoDB community to enterprise version, complete the following steps:
1. Click here to download MongoDB 7.0.8 enterprise version.
2. Refer this link to install and start the MongoDB 7.0.8 enterprise version.
* 
Ensure that you do not install the MongoDB service, to prevent MongoDB from starting automatically after installation.
3. You can use a single-node replica set for transaction in the development or test environment. It is recommended to use a replication of three nodes for production.
4. You can only configure MongoDB enterprise to Arbortext Content Delivery post installation.
To configure MongoDB enterprise to Arbortext Content Delivery take a dump of the community MongoDB installed with Arbortext Content Delivery and to restore it to the enterprise MongoDB instance, complete the following steps:
a. In the new Arbortext Content Delivery 7.2.1.0 environment, browse to the following <ACD_Directory>\InS_SW\SW\System\Tools\MongoDB\<OS_Type>\<VersionIfLinux>\ location.
b. Run the mongodump command to create a backup of the data mongodump --host=<ACDHostName> --port=27017 --username=<username> --password=<password> --db=InService --authenticationDatabase=admin --out=<ACD_Directory>\MongoDB\dump.
For example, the Arbortext Content Delivery mongo community version is operational from this abdcsv-sctal11d server mongodump --host=abdcsv-sctal11d --port=27017 --username=admin --password=admin --db=InService --authenticationDatabase=admin --quiet --out=D:\ACD\ \MongoDB\dump.
c. From the same location, run the mongorestore command to restore the data to enterprise MongoDB instancemongorestore --host=<EntMongoDBHostName> --port=27017 --username=<username> --password=<password> --db=InService --authenticationDatabase=admin --drop =<ACD_Directory>\MongoDB\dump\InService.
For example, the Arbortext Content Delivery the MongoDB enterprise is operational from this Pnx-acd9.ptcnet.ptc.com server mongorestore --host= Pnx-acd9.ptcnet.ptc.com --port=27017 --username=admin --password=admin --db=InService --authenticationDatabase=admin –drop=ACD\721B66\InS_SW\SW\System\Tools\MongoDB\dump\InService
* 
You must follow the above step after enabling encryption at REST on the enterprise version.
MongoDB 7.0.8 version supports two types of Encryption — MongoDB Manual
1. Encryption at rest
2. Transport encryption
Encryption at Rest
This feature allows MongoDB to encrypt data files. Only parts with the decryption key can decode and read the data.Arbortext Content Delivery achieved the encryption at rest Local Key Management.
* 
Changes are not required from Arbortext Content Delivery when encryption at rest is enabled.
Transport Encryption
To use TLS or SSL with MongoDB, you must have the TLS or SSL certificate as PEM files, which are combined certificate containers.
MongoDB can use any valid TLS or SSL certificate issued by a certificate authority or a self-signed certificate.
Refer this link to enable SSL in MongoDB.
1. After enabling TLS on MongoDB, you need a .jks file and a password. Any host that is a member of the replica set requires this file.
2. In InS_SW/SW/System/WildFly/bin/Standalone.sh file, you must add the path of the .jks file and password in #Execute the JVM section if and else.
if [ "x$LAUNCH_JBOSS_IN_BACKGROUND" = "x" ]; then

# Execute the JVM in the foreground

eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -Dmail.mime.charset=UTF-8 -

Dmail.mime.encodefilename=true -Djboss.as.management.blocking.timeout=1800 -Djavax.net.ssl.keyStore=/qa/ptc/ACD114/pwdcsv-wcdb01d.ptcnet.ptc.com.jks -Djavax.net.ssl.keyStorePassword=TASK0470513 -Dcom.sun.CORBA.transport.ORBUseNIOSelectToWait=false -Dcom.sun.CORBA.giop.ORBFragmentSize=65536 -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses -Djdk.tls.ephemeralDHKeySize=2048 -Dorg.jboss.net.protocol.file.decodeFilePaths=true -Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB -Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton \

\"-Dorg.jboss.boot.log.file="$JBOSS_LOG_DIR"/server.log\" \

\"-Dlogging.configuration=file:"$JBOSS_CONFIG_DIR"/logging.properties\" \

\"-Dwildfly.config.url="$JBOSS_CONFIG_DIR"/wildfly-config.xml\" \

-jar \""$JBOSS_HOME"/jboss-modules.jar\" \

$MODULE_OPTS \

-mp \""${JBOSS_MODULEPATH}"\" \

org.jboss.as.standalone \

-Djboss.home.dir=\""$JBOSS_HOME"\" \

-Djboss.server.base.dir=\""$JBOSS_BASE_DIR"\" \

"$SERVER_OPTS"

JBOSS_STATUS=$?

else

# Execute the JVM in the background

eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -Dmail.mime.charset=UTF-8 -Dmail.mime.encodefilename=true -Djboss.as.management.blocking.timeout=1800 -Dcom.sun.CORBA.transport.ORBUseNIOSelectToWait=false -Dcom.sun.CORBA.giop.ORBFragmentSize=65536 -Djavax.net.ssl.keyStore=/qa/ptc/ACD114/pwdcsv-wcdb01d.ptcnet.ptc.com.jks -Djavax.net.ssl.keyStorePassword=TASK0470513 -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses -Djdk.tls.ephemeralDHKeySize=2048 -Dorg.jboss.net.protocol.file.decodeFilePaths=true -Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB -Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton \
3. Add the property <Property default="true" name="mongoDB.sslEnabled"/> in db.properties.xconf located in Ins_SW/SW/Applications/Windchill.ear/codebase.war/com/ptc/sc.xconf.
4. Configure the encrypted MongoDB server details in the Arbortext Content Delivery Configurator User Interface and restart the server. For more information, see Editing Properties of the Configurator Entities.
5. Restart the JBoss service.
For Offline
You can configure Enterprise MongoDB to offline after installation and before activation. To configure Enterprise MongoDB for offline, complete the following steps:
1. In InS_SW/SW/System/WildFly/bin/Standalone.sh file, you must add the path of the .jks file and password in #Execute the JVM section if and else.
if [ "x$LAUNCH_JBOSS_IN_BACKGROUND" = "x" ]; then

# Execute the JVM in the foreground

eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -Dmail.mime.charset=UTF-8 -

Dmail.mime.encodefilename=true -Djboss.as.management.blocking.timeout=1800 -Djavax.net.ssl.keyStore=/qa/ptc/ACD114/pwdcsv-wcdb01d.ptcnet.ptc.com.jks -Djavax.net.ssl.keyStorePassword=TASK0470513 -Dcom.sun.CORBA.transport.ORBUseNIOSelectToWait=false -Dcom.sun.CORBA.giop.ORBFragmentSize=65536 -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses -Djdk.tls.ephemeralDHKeySize=2048 -Dorg.jboss.net.protocol.file.decodeFilePaths=true -Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB -Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton \

\"-Dorg.jboss.boot.log.file="$JBOSS_LOG_DIR"/server.log\" \

\"-Dlogging.configuration=file:"$JBOSS_CONFIG_DIR"/logging.properties\" \

\"-Dwildfly.config.url="$JBOSS_CONFIG_DIR"/wildfly-config.xml\" \

-jar \""$JBOSS_HOME"/jboss-modules.jar\" \

$MODULE_OPTS \

-mp \""${JBOSS_MODULEPATH}"\" \

org.jboss.as.standalone \

-Djboss.home.dir=\""$JBOSS_HOME"\" \

-Djboss.server.base.dir=\""$JBOSS_BASE_DIR"\" \

"$SERVER_OPTS"

JBOSS_STATUS=$?

else

# Execute the JVM in the background

eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -Dmail.mime.charset=UTF-8 -Dmail.mime.encodefilename=true -Djboss.as.management.blocking.timeout=1800 -Dcom.sun.CORBA.transport.ORBUseNIOSelectToWait=false -Dcom.sun.CORBA.giop.ORBFragmentSize=65536 -Djavax.net.ssl.keyStore=/qa/ptc/ACD114/pwdcsv-wcdb01d.ptcnet.ptc.com.jks -Djavax.net.ssl.keyStorePassword=TASK0470513 -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses -Djdk.tls.ephemeralDHKeySize=2048 -Dorg.jboss.net.protocol.file.decodeFilePaths=true -Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB -Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton \
2. Add the property <Property default="true" name="mongoDB.sslEnabled"/> in db.properties.xconf located in Ins_SW/SW/Applications/Windchill.ear/codebase.war/com/ptc/sc.xconf.
3. In offline Configurator XML, update the Enterprise MongoDB hostname, port and user details:
<ExternalComponents>
<MongoDB id="MongoDB" pos="lgeafe">
<Properties>
<LoginDDataAdm>
<User>admin</User>
<Pass>-baefe5e824a431d</Pass>
</LoginDDataAdm>
<Name>ddata</Name>
<MongoName>InService</MongoName>
<Address>
<Host>EnterPrise_MongoDB_FullHostname</Host>
<Port>Port</Port>
</Address>
<Login>
<User>ptcuser</User>
<Pass>-34d2d3ab5aa9dfbc</Pass>
</Login>
</Properties>
</MongoDB>
</ExternalComponents>
Was this helpful?