[frs-379] Known issues with FRAM

Installing and managing your application servers via FRAM can fail from time to time, as much as we try to prevent this errors can still occur.

There are many reasons for this, however the most common reasons are insufficient permissions and not having your Java installation configured correctly.

Permissions Issues

It is important to remember that FRAM can only access files if the file permission is correctly set, if FRAM is running as nobody it cannot run user or root commands.

An indication that FRAM has a permissions issue would be if a server installation fails or does not appear to have worked.

If we cannot modify your server configuration to include FusionReactor then either the server will fail to start or FusionReactor will not be available.

Similarly you may experience issues during shutdown, as FRAM does not have access to execute the shutdown command.

The solution to this would be to install FRAM and configure it to run as the same user as the application server or add the user into a group and give that group access to the application server files.

The following document : https://intergral.atlassian.net/wiki/display/FR60/Installing+FusionReactor+in+Secured+Environments has information on how to configure Access Control Lists (ACLs) to solve many permission issues.

Java Environment Issues

All ColdFusion and Railo servers come with an inbuilt Java Runtime Environment, meaning no local Java environment is required.

However other application servers require a local Java Installation on your server, the table below shows the minimum required Java version for each application server, although newer different versions of each server may require a different Java version..

Application Server Minimum Version
Apache Tomcat 6 1.6
Apache Tomcat 7 1.6
Apache Tomcat 8 1.7
Apache Tomcat 9 1.8
GlassFish 3 1.6
GlassFish 4 1.7
JBoss 5 1.6
JBoss 6 1.6
JBoss 7 1.7
Jetty 7 1.6
Jetty 8 1.6
Jetty 9 1.8
Lucee 4 1.8
Railo 3 1.7
Railo 4 1.8
WildFly 8 1.7
WildFly 9 1.7
WildFly 10 1.8

The way your Java environment is detected can be different for any version of any application server, however there are 3 main environment variables that are used.

These 3 variables are Path, JAVA_HOME and JRE_HOME.

Jetty will use the PATH variable to find your system Java installation, whereas JBoss and Tomcat based installations use the JAVA_HOME variable if it exists, if not it will use the PATH.

JRE_HOME is used by some servers and is normally used to scan the default location of all Java installations.

An indication that your Java environment is not configured correctly is that the server will fail to start and stop.

We recommend that you check the instance manager logs to see if any errors occurred.

Starting the server manually is also a good option. In some cases the server will start, indicating a permissions issue and in other cases a more detailed error log will be available.

Using a newer Java version than required can in some cases cause issues, for example there are known problems using tomcat 7 with Java 1.8 if it is not configured correctly. These issues are often stated within each servers documentation or have been posted in a technology forum.

Timing Issues

FRAM uses the server state to detect whether a server stop and start has been successful, on occasion you may an error message stating the operation of starting or stopping the server failed. However when the Instance Manager page reloads the start or stop has in fact succeeded.

This is a known timing issue that a server can take a long time to start, a server such as Railo can take minutes to start.

Other timing issues that can occur are when a server is stopped and started in quick succession, waiting a few seconds then trying again tends to fix this issue. If not then you may have a Java environment issue.

There is are -d options to increase the stop and start timer threshold, the options are

  • fr.im.running.wait = x
  • fr.im.stopped.wait = x

where x is the time value in milliseconds.

Adding these options will increase the time FRAM will ask for a status response which should allow the slower servers more time.

Port Issues

FRAM also does not modify the ports an application server uses to operate, when running multiple instances you may experience issues with ports that are already in use. You will often see a connection refused exception in the Logs if this occurs.

Modifying the ports specified in a server config fixes this issue, port 8080, 8500 and and 9999 are just some examples of ports used by multiple servers.

For more information about each application server including the Java requirements and port configuration see the docs for each server

Issue Details

Type: Technote
Issue Number: FRS-379
Components: Instance Manager
Resolution: Fixed
Last Updated: 01/Mar/16 9:10 AM
Affects Version: 6.0.0
Fixed Version: 6.0.0
Related Issues:

Comments are closed.