0

We are trying to change how we manage our QA Enviroments.
Till now we have installed Coldfusion using the Adobe Installer that install a modified Tomcat.

We want to manage the QA server using CommandBox Tool that installs Coldfusion in JEE install mode using war file, but situation will be similar with any of the supported JEE Application Server. (EAP, Wildfly, Tomcat).

We have little experience in using Coldfusion in the JEE install mode then several questions arise regarding the JVM Settings.

Below the JVM Setting we got after install CF using the Adobe Standard installer, accessing the Coldfusion (CF) Administrator (here for a fresh installation of a CF2018):

--add-modules=java.xml.ws 
--add-opens=java.base/java.lang=ALL-UNNAMED 
--add-opens=java.base/java.nio=ALL-UNNAMED 
--add-opens=java.base/sun.util.cldr=ALL-UNNAMED  
--add-opens=java.base/sun.util.locale.provider=ALL-UNNAMED 
--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 
-Dcoldfusion.classPath={application.home}/lib/updates,{application.home}/lib,{application.home}/lib/axis2,{application.home}/gateway/lib/,{application.home}/wwwroot/WEB-INF/cfform/jars,{application.home}/wwwroot/WEB-INF/flex/jars,{application.home}/lib/oosdk/lib,{application.home}/lib/oosdk/classes 
-Dcoldfusion.home={application.home} 
-Dcoldfusion.jsafe.defaultalgo=FIPS186Random 
-Dcoldfusion.libPath={application.home}/lib 
-Dcoldfusion.rootDir={application.home} 
-Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true 
-Djava.awt.headless=true 
-Djava.locale.providers=COMPAT,SPI 
-Djava.security.auth.policy={application.home}/lib/neo_jaas.policy  
-Djava.security.policy={application.home}/lib/coldfusion.policy 
-Djava.util.logging.config.file={application.home}/lib/logging.properties 
-Djdk.attach.allowAttachSelf=true 
-Dorg.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true 
-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.JavaUtilLog 
-Dsun.font.layoutengine=icu
-XX:+UseParallelGC 
-XX:MaxMetaspaceSize=192m 
-Xbatch 
-Xdebug
-Xms256m 
-Xmx1024m 
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6006 
-server

Q1. the Coldfusion war have inside it the JVM settings (we have written above) and will apply it during deploy?

Q2. if answer to is no!, what are the settings that are applicable according the JEE Application Server used (i.e. some settings are ok for Tomcat but meaniless for wildfly).

We were able to find specific documentation from Adobe for Coldfusion 2018 (https://helpx.adobe.com/it/coldfusion/installing/coldfusion-2018-install-jee-configuration.html). The number of settings is incredible low comparing with the standard one!:

-Djava.locale.providers=COMPAT,SPI
-Dcoldfusion.disablejsafe=true
-Djdk.attach.allowAttachSelf=true
-Djdk.serialFilter= !org.mozilla.**;!com.sun.syndication.**

We were not able to find similar documentationfor Coldfusion 2021 (latest release).

Till now trying to get help from Adobe has been produce not effective results.

Thanks in advance

fman
  • 175
  • 2
  • 4

1 Answers1

1

Adobe isn't going to help you support an installation via CommandBox, you need to talk to Ortus Solutions about that. Every JVM setting available in CF Admin for Standard is not displayed in the UI for CF Enterprise. You're looking for the CF install folder for the instance you have (non-CB version), find a file called jvm.config.

https://www.cfguide.io/coldfusion-administrator/server-settings-java-jvm/

In ColdBox, you can set everything via the command line or use a server.json file to do that same configuration.

https://commandbox.ortusbooks.com/embedded-server/configuring-your-server/jvm-args

Here's an example from a CB install I have on a Mac where I'm running an older version of CF that requires an older JDK, but I've also set the heapSize.

{
    "jvm": {
        "javaHome": "/Library/Java/JavaVirtualMachines/jdk1.7.0_15.jdk/Contents/Home",
        "heapSize": 1024
    }
}

What I would suggest is

  • export your existing CF Admin settings to a .car file
  • log in to your ColdBox server's CF Admin
  • import the .car file
  • adjust all the settings (DSN, etc) for your QA server
  • go to the command line and install the CFConfig plugin
  • export all the CF Admin settings to a JSON file (instructions in their docs)
  • save that to a private repo or your secrets / passwords vault.
  • Join the BoxTeam Slack where you can find the CommandBox community and ask more questions.
Adrian J. Moreno
  • 14,350
  • 1
  • 37
  • 44
  • Thanks. IMHO Adobe has to help to use Coldfusion in JEE installation. We have a support contract with Adobe, and no contract with Ortus people. I've already asked on cfml slack and got some answers, but honestely I do not think I've to disturb them with questions where Adobe has all the knowledge to provide the answers. – fman Oct 23 '21 at 16:47