User Guide Cancel

Install ColdFusion Performance Monitoring Toolset

  1. ColdFusion Tools User Guide
  2. Performance Monitoring Toolset
    1. Overview of ColdFusion Performance Monitoring Toolset
    2. Auto-discovery of ColdFusion nodes and clusters
    3. Code profiler in ColdFusion Performance Monitoring Toolset
    4. Configure ColdFusion Performance Monitoring Toolset settings
    5. Install ColdFusion Performance Monitoring Toolset
    6. View cloud metrics
    7. Monitor GraphQL in Performance Monitoring Toolset
    8. Configure TLS/SSL and Authentication for Elasticsearch 8.x  in Performance Monitoring Toolset
    9. View cluster and node metrics
    10. View data source metrics
    11. View external services
    12. View incoming services
    13. View list of sites and busy connections
    14. View topology of sites
    15. Datastore Health Monitoring
    16. Performance Monitoring Toolset Update 1
    17. Secure Performance Monitoring Toolset with HTTPS/SSL
    18. Performance Monitoring Toolset deployment guide
  3. Use ColdFusion Builder
    1. About ColdFusion Builder
    2. System requirements | ColdFusion Builder
    3. Install ColdFusion Builder
    4. Edit code in ColdFusion Builder
    5. Manage servers in ColdFusion Builder
    6. Manage projects in ColdFusion Builder
    7. What's new in Adobe ColdFusion Builder (2018 release)
    8. Frequently Asked Questions (FAQ) | Adobe ColdFusion Builder (2018 release)
    9. Debug applications in ColdFusion Builder
    10. ColdFusion Builder workbench
    11. ColdFusion Builder extensions
    12. Debugging Perspective in ColdFusion Builder
    13. Build mobile applications using ColdFusion Builder
    14. Bundled ColdFusion Server
    15. Debug mobile applications in ColdFusion Builder
    16. Use extensions in ColdFusion Builder
  4. Coldfusion API Manager
    1. Overview of Adobe ColdFusion API Manager
    2. Features in ColdFusion API Manager
    3. Get started with ColdFusion API Manager
    4. Install ColdFusion API Manager
    5. Authentication types
    6. Create and publish APIs
    7. Administrator
    8. Subscriber
    9. Throttling and rate limiting
    10. Notifications
    11. Connectors
    12. Set up cluster support
    13. Integrate ColdFusion and API Manager
    14. Metrics and Logging in API Manager
    15. Generate Swagger documents
    16. Configure SSL
    17. Known issues in this release
    18. Policies in ColdFusion API Manager
    19. Create a Redis cluster
    20. Multitenancy in API Manager
    21. Docker images for ColdFusion API Manager

Steps to install ColdFusion Performance Monitoring Toolset via installer screens and silent mode.

Note:

Before installing Performance Monitoring Toolset, ensure that you must install the package pmtagent using the ColdFusion Package Manager.

Deployment

For a detailed guide to deploying Performance Monitoring Toolset on various ColdFusion nodes, see the Deployment guide.

Windows

  1. To launch the installer, double-click ColdFusion_2021_PerformanceMonitoringToolset_WWEJ_Win64.exe. To proceed, click Next.

  2. On the License Agreement screen, click Next to proceed.

  3. Choose the component to be installed.

    If you have already configured a Datastore, you need not choose the option Datastore. In that case, specify the remote IP and port in a later screen.

  4. To install Performance Monitoring Toolset, choose a location. To proceed, click Next.

  5. The default HTTP port for Performance Monitoring Toolset is 9101. However, you can specify a different port where PMT gets configured.

    To proceed, click Next.

  6. Enter the administrator credentials. To log in to Performance Monitoring Toolset, specify a user name and a password.

  7. Configure the Datastore. If you do not have Datastore installed, you can install it with the specified host and port number.

    If you have Datastore installed, enter the remote host name and the port number and the cluster where the Datastore resides.

    To proceed, click Next.

  8. Review the pre-installation summary. To install Performance Monitoring Toolset, click Install.

    Upon successful installation, the Performance Monitoring Toolset dashboard launches in the default browser.

Linux

Before installing, make sure that:

  • The maximum count of open files must be more than 65536. Use the command, ulimit -n 65536.
  • The maximum count of maps must be more than 262144. To increase the limit, use the command, sysctl -w vm.max_map_count=262144.
  • A non-root user must exist.
  1. To launch the installer, enter the command, ./ColdFusion_2021_PerformanceMonitoringToolset_WWEJ_linux64.bin

  2. After the installation, the installer starts both Datastore and Performance Monitoring Toolset processes.

  3. To access the Datastore, navigate to URL http://<PMT-Host>:<port> after installation.

  4. You can configure init scripts by running sudo <PMTLocation>/bin/init.sh install.

Note:

For Mac OS, the steps are identical to Windows.

Install Performance Monitoring Toolset silently

Creating the properties file

The silent.properties file is an ASCII text file that defines the installation parameters. Specify the details as provided in the file. Select only the ones that apply to your installation type.

Saving the properties file

You can use a different name or save it in a different directory.

If you require more than one installer properties file, give each file a descriptive name.

Running the installer

You can run the silent installer in one of the following ways:

  • Through the command line.
  • Through a batch file or script.

The following table lists the command line options of running the installer on different operating systems.

OS

Command

UNIX

./ColdFusion_2021_PerformanceMonitoringToolset_WWEJ_Linux64.bin [-f propertiesFilePath]

Windows

ColdFusion_2021_PerformanceMonitoringToolset_WWEJ_Win64.exe [-f propertiesFilePath]. For example, if you want to install Performance Monitoring Toolset silently, run the command, ColdFusion_2021_PerformanceMonitoringToolset_WWEJ_Win64.exe -f silent.properties.

Silent installer properties

# Inform installer to start in silent mode.
INSTALLER_UI=SILENT

# INSTALL_PMT is 1 if installer has to install Performance Monitoring Toolset component. Otherwise, INSTALL_PMT is 0.
# If you install the Performance Monitoring Toolset component, it needs to connect to Datastore, which is either located in local (INSTALL_DATASTORE=1) or remote (INSTALL_DATASTORE=0).
INSTALL_PMT=1
# Set the following variables only if INSTALL_PMT=1.
# PMT_HOSTNAME must be either 127.0.0.1 or system hostname or system IP address
# Default port is 9101. Port must be free.
# Performance Monitoring Toolset service or process must be up and running to access Administrator Dashboard by URL http://PMT_HOSTNAME:PMT_PORT.
PMT_HOSTNAME=127.0.0.1
PMT_PORT=9101
# Performance Monitoring Toolset Administrator Dashboard login credentials.
USERNAME=admin
PASSWORD=Test#1234
PASSWORD_CONFIRM=Test#1234

# Set INSTALL_DATASTORE to 1 if installer has to install DataStore. Otherwise INSTALL_DATASTORE is 0.
INSTALL_DATASTORE=1
# If INSTALL_DATASTORE=1, the following two variables used for local installation. Otherwise, they are used to connect to remove the Datastore.
# 127.0.0.1 or 0.0.0.0 are not allowed as Hostname. Hostname should be either system hostname or IP address
# The default port is 9200. Port must be free.
DATASTORE_HOSTNAME=HostNameorIPAddressoftheSystem
DATASTORE_PORT=9200
DATASTORE_PORT_CLUSTER=9300

# OPTIONAL PROPERTIES

# The location to install Performance Monitoring Toolset
# Windows default location
USER_INSTALL_DIR=C:\\ColdFusion2018PerformanceMonitoringToolset
# Mac OS X default location
# USER_INSTALL_DIR=/Applications/ColdFusion2018PerformanceMonitoringToolset
# Linux or Solaris default location
# USER_INSTALL_DIR=/opt/coldfusion2018performancemonitoringtoolset

# ONLY for Linux and Solaris platforms.
# Make sure a runtime user exists in the system.
# Setting "nobody" as a default username as it is the least privileged account in Linux and Solaris platforms.
# RUNTIME_USER=nobody

Installation problems

After installing Performance Monitoring Toolset, sometimes the dashboard does not display. You'll see the following exceptions in the log.

[ERROR] 2023-12-04 17:49:03.537 io.undertow.request - UT005023: Exception handling request to /dashboard
jakarta.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: Could not initialize class org.xnio.conduits.Conduits
	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:410) ~[jersey-container-servlet-core-3.0.9.jar:?]
	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346) ~[jersey-container-servlet-core-3.0.9.jar:?]
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358) ~[jersey-container-servlet-core-3.0.9.jar:?]
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:311) ~[jersey-container-servlet-core-3.0.9.jar:?]
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205) ~[jersey-container-servlet-core-3.0.9.jar:?]
	at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.2.23.Final.jar:2.2.23.Final]
	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) ~[undertow-core-2.2.23.Final.jar:2.2.23.Final]
	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) ~[undertow-core-2.2.23.Final.jar:2.2.23.Final]
	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) ~[undertow-core-2.2.23.Final.jar:2.2.23.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.2.23.Final.jar:2.2.23.Final]
	at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.2.23.Final.jar:2.2.23.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100) ~[undertow-servlet-jakarta-2.2.20.Final.jar:2.2.20.Final]
	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393) ~[undertow-core-2.2.23.Final.jar:2.2.23.Final]
	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852) ~[undertow-core-2.2.23.Final.jar:2.2.23.Final]
	at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) ~[jboss-threads-3.1.0.Final.jar:3.1.0.Final]
	at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019) ~[jboss-threads-3.1.0.Final.jar:3.1.0.Final]
	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558) ~[jboss-threads-3.1.0.Final.jar:3.1.0.Final]
	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449) ~[jboss-threads-3.1.0.Final.jar:3.1.0.Final]
	at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282) ~[xnio-api-3.8.7.Final.jar:3.8.7.Final]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: Could not initialize class org.xnio.conduits.Conduits
	at org.glassfish.jersey.servlet.internal.ResponseWriter.rethrow(ResponseWriter.java:255) ~[jersey-container-servlet-core-3.0.9.jar:?]
	at org.glassfish.jersey.servlet.internal.ResponseWriter.failure(ResponseWriter.java:237) ~[jersey-container-servlet-core-3.0.9.jar:?]
	at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:445) ~[jersey-server-3.0.9.jar:?]
	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:264) ~[jersey-server-3.0.9.jar:?]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) ~[jersey-common-3.0.9.jar:?]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) ~[jersey-common-3.0.9.jar:?]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:292) ~[jersey-common-3.0.9.jar:?]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:274) ~[jersey-common-3.0.9.jar:?]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:244) ~[jersey-common-3.0.9.jar:?]
	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265) ~[jersey-common-3.0.9.jar:?]
	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235) ~[jersey-server-3.0.9.jar:?]
	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684) ~[jersey-server-3.0.9.jar:?]
	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394) ~[jersey-container-servlet-core-3.0.9.jar:?]
	... 37 more 

This is a Windows-specific issue. In Windows, if the NUL entry in the registry is missing, then the undertow server fails to respond to the requests. This means:

  • The Datastore service isn't being created, and the Performance Monitoring Toolset will not start.
  • The Performance Monitoring Toolset dashboard isn't accessible, resulting in CNF exceptions.

Workaround

If the NUL registry is missing, follow the steps:

  • Generate a .reg file.
  • Run regedit.
  • Import the .reg file.
  • Restart Windows.

Get help faster and easier

New user?