The JMX Console enables you to monitor and manage services on the CRX server. The sections that follow summarize the attributes and operations that are exposed through the JMX framework.
For information about how to use the console controls, see Using the JMX Console. For background information about JMX, see the Java Management Extensions (JMX) Technology page on the Oracle website.
For information about creating MBeans to manage your services using the JMX Console, see Integrating Services with the JMX Console.
Operations for administering running, completed, stale, and failed workflow instances.
See the workflow console for additional workflow administration tools and descriptions of possible workflow instance statuses.
listRunningWorkflowsPerModel Lists the number of workflow instances that are running for each workflow model.
listCompletedWorkflowsPerModel Lists the number of completed workflow instances for each workflow model.
returnWorkflowQueueInfo Lists information about workflow items that have been processed and that are queued for processing.
Arguments: none
Returned value: Tablular data containing the following columns:
returnWorkflowJobTopicInfo Lists processing information for workflow jobs, organized by topic.
Arguments: none
Returned value: Tabular data containing the following columns:
returnFailedWorkflowCount Shows the number of workflow instances that have failed. You can specify a workflow model to query or retrieve information for all workflow models.
Arguments:
model: The ID of the model to query. To see a count of failed workflow instances for all workflow models, specify no value. The ID is the path to the model node, for example:
/conf/global/settings/workflow/models/dam/update_asset/jcr:content/model
Returned value: The number of failed workflow instances.
returnFailedWorkflowCountPerModel Shows the number of workflow instances that have failed for each workflow model.
terminateFailedInstances Terminate workflow instances that have failed. You can terminate all failed instances or only the failed instances for a specific model. Optionally you can restart the instances after they are terminated. You can also test the operation to see the results without actually performing the operation.
Arguments:
Restart the instance: (Optional) Specify a value of true
to restart the instances after they are terminated. The default value of false
causes no restarting of terminated workflow instances.
Dry run: (Optional) Specify a value of true
to see the results of the operation without actually performing the operation. The default value of false
causes the operation to be performed.
Model: (Optional) The ID of the model to which the operation is applied. Specify no model to apply the operation to the failed instances of all workflow models. The ID is the path to the model node, for example:
/conf/global/settings/workflow/models/dam/update_asset/jcr:content/model
Returned value: Tablular data about the instances that are terminated, containing the following columns:
retryFailedWorkItems Attempts to execute work item steps that have failed. You can retry all failed work items or only the failed work items for a specific workflow model. You optionally test the operation to see the results without actually performing the operation.
Arguments:
Dry run: (Optional) Specify a value of true
to see the results of the operation without actually performing the operation. The default value of false
causes the operation to be performed.
Model: (Optional) The ID of the model to which the operation is applied. Specify no model to apply the operation to the failed work items of all workflow models. The ID is the path to the model node, for example:
/conf/global/settings/workflow/models/dam/update_asset/jcr:content/model
Returned value: Tablular data about the failed work items that are retried, including the following columns:
PurgeActive Removes active workflow instances of a specific age. You can purge active instances for all models or only the instances for a specific model. You can optionally test the operation to see the results without actually performing the operation.
Arguments:
Model: (Optional) The ID of the model to which the operation is applied. Specify no model to apply the operation to the workflow instances of all workflow models. The ID is the path to the model node, for example:
/conf/global/settings/workflow/models/dam/update_asset/jcr:content/model
Number of days since workflow started: The age of the workflow instances to purge, in days.
Dry run: (Optional) Specify a value of true
to see the results of the operation without actually performing the operation. The default value of false
causes the operation to be performed.
Returned value: Tabular data about the active workflow instances that are purged, including the following columns:
countStaleWorkflows Returns the number of workflow instances that are stale. You can retrieve the number of stale instances for all workflow models or for a specific model.
Arguments:
Model: (Optional) The ID of the model to which the operation is applied. Specify no model to apply the operation to the workflow instances of all workflow models. The ID is the path to the model node, for example:
/conf/global/settings/workflow/models/dam/update_asset/jcr:content/model
Returned value: The number of stale workflow instances.
restartStaleWorkflows Restarts stale workflow instances. You can restart all stale instances or only the stale instances for a specific model. You can also test the operation to see the results without actually performing the operation.
Arguments:
Model: (Optional) The ID of the model to which the operation is applied. Specify no model to apply the operation to the stale instances of all workflow models. The ID is the path to the model node, for example:
/conf/global/settings/workflow/models/dam/update_asset/jcr:content/model
Dry run: (Optional) Specify a value of true
to see the results of the operation without actually performing the operation. The default value of false
causes the operation to be performed.
Returned value: A list of workflow instances that are restarted.
fetchModelList Lists all workflow models.
countRunningWorkflows Returns the number of workflow instances that are running. You can retrieve the number of running instances for all workflow models or for a specific model.
Arguments:
Model: (Optional) The ID of the model for which the number of running instances is returned. Specify no model to return the number of running instances of all workflow models. The ID is the path to the model node, for example:
/conf/global/settings/workflow/models/dam/update_asset/jcr:content/model
Returned value: The number of running workflow instances.
countCompletedWorkflows Returns the number of workflow instances that are completed. You can retrieve the number of completed instances for all workflow models or for a specific model.
Arguments:
Model: (Optional) The ID of the model for which the number of completed instances is returned. Specify no model to return the number of completed instances of all workflow models. The ID is the path to the model node, for example:
/conf/global/settings/workflow/models/dam/update_asset/jcr:content/model
Returned value: The number of completed workflow instances.
purgeCompleted Removes records of completed workflows of a specific age from the repository. Use this operation periodically to minimize the size of the repository when you make heavy use of workflows. You can purge completed instances for all models or only the instances for a specific model. You can optionally test the operation to see the results without actually performing the operation.
Arguments:
Model: (Optional) The ID of the model to which the operation is applied. Specify no model to apply the operation to the workflow instances of all workflow models. The ID is the path to the model node, for example:
/conf/global/settings/workflow/models/dam/update_asset/jcr:content/model
Number of days since workflow has been completed: The number of days that the workflow instances have been in the completed state.
Dry run: (Optional) Specify a value of true
to see the results of the operation without actually performing the operation. The default value of false
causes the operation to be performed.
Returned value: Tabular data about the completed workflow instances that are purged, including the following columns:
Information about the CRX repository
Name The name of the JCR repository implementation. Read-only.
Version The repository implementation version. Read-only.
HomeDir The directory where the repository is located. The default location is <QuickStart_Jar_Location>/crx-quickstart/repository. Read-only.
CustomerName The name of the customer that the software license is issued to. Read-only.
LicenseKey The unique license key for this installation of the repository. Read-only.
AvailableDiskSpace The disk space that is available to this instance of the repository, in Mbytes. Read-only.
MaximumNumberOfOpenFiles The number of files that can be opened at one time. Read-only.
SessionTracker The value of the crx.debug.sessions system variable. true indicates a debug session. false indicates a normal session. Read/write.
Descriptors A set of key-value pairs that represent repository properties. All properties are read-only.
Key | Value |
---|---|
option.node.and.property.with.same.name.supported | Indicates whether a node and a property of the node can have the same name. true indicates same names are supported, false indicates it is not supported. |
identifier.stability | Indicates the stability of non-referenceable node identifiers. The following values are possible:
|
query.xpath.pos.index | Indicates whether the JCR 1.0 XPath query language is supported. true indicates support, and false indicates no support. |
crx.repository.systemid | The system identifier as found in the system.id file. |
option.query.sql.supported | Indicates whether the JCR 1.0 XPath query language is supported. true indicates support, and false indicates no support. |
jcr.repository.version | The version of the repository implementation. |
option.update.primary.node.type.supported | Indicates whether the primary node type of a node can be changed. true indicates you can change the primary node type, and false indicates the change is not supported. |
option.node.type.management.supported | Indicates whether node type management is supported. true indicates it is supported, and false indicates no support. |
node.type.management.overrides.supported | Indicates whether you can override the inherited property or child node definition of a node type. true indicates overrides are supported, and false indicates no overrides. |
option.observation.supported | true indicates that asynchronous observation of repository changes is supported. Support of asynchronous observation enables applications to recieve and respond to notifications about each change as they occur. |
query.jcrscore | true indicates indicates that the jcr:score pseudo-property is available in XPath and SQL queries that include a jcrfn:contains (in XPath) or CONTAINS (in SQL) function to perform a full-text search. |
option.simple.versioning.supported | true indicates that the repository supports simple versioning. With simple versioning, the repository maintains a sequential series of versions of a node. |
option.workspace.management.supported | true indicates that the repository supports the creation and deletion of workspaces using APIs. |
option.update.mixin.node.types.supported | true indicates that the repository supports the addition and removal of mixin node types of an existing node. |
node.type.management.primary.item.name.supported | true indicates that the repository enables node definitions to contain a primary item as a child. A primary item is accessible using the API without knowing the item name. |
level.2.supported | true indicates that both LEVEL_1_SUPPORTED and OPTION_XML_IMPORT_SUPPORTED are true. |
write.supported | true indicates that the repository provides write-access using the API. false indicates read-only access. |
node.type.management.update.in.use.supported | true indicates that you can change node definitions that are in-use by existing nodes. |
jcr.specification.version | The version of the JCR specification that the repository implements. |
option.journaled.observation.supported | true indicates that applications can perfom journaled observation of the repository. with journaled observation, a set of change notifications can be obtained for a specific period of time. |
query.languages | The query languages that the repository supports. No value indicates no query support. |
option.xml.export.supported | true indicates that the repository supports exporting nodes as XML code. |
node.type.management.multiple.binary.properties.supported | true indicates that the repository supports the registration of node types that have multiple binary properties. false indicates a single binary property is supported for a node type. |
option.access.control.supported | true indicates that the repository supports access control, for setting and determining user privileges for node access. |
option.baselines.supported | true indicates that the repository supports both configurations and baselines. |
option.shareable.nodes.supported | true indicates that the repository supports the creation of shareable nodes. |
crx.cluster.id | The identifier of the repository cluster. |
query.stored.queries.supported | true indicates that the repository supports stored queries. |
query.full.text.search.supported | true indicates that the repository supports full-text search. |
node.type.management.inheritance | Indicates the level of repository support for node type inheritance. The following values are possible: node.type.management.inheritance.minimal: Registration of primary node types is limited to those that have only nt:base as a supertype. Registration of mixin node types is limited to those with no supertype. node.type.management.inheritance.single: Registration of primary node types is limited to those with one supertype. Registration of mixin node types is limited to those with at most one supertype.
|
crx.cluster.preferredMaster | true indicates that this cluster node is the preferred master of the cluster. |
option.transactions.supported | true indicates that the repository supports transactions. |
jcr.repository.vendor.url | The URL of the repository vendor. |
node.type.management.value.constraints.supported | true indicates that the repository supports value constraints for node properties. |
node.type.management.property.types | an array of javax.jcr.PropertyType constants that represent the property types that a registered node type can specify. A zero-length array indicates registered node types cannot specify property definitions. Property types are STRING, URI, BOOLEAN, LONG, DOUBLE, DECIMAL, BINARY, DATE, NAME, PATH, WEAKREFERENCE, REFERENCE, and UNDEFINED (if supported) |
node.type.management.orderable.child.nodes.supported | true indicates that the repository supports the preservation of the order of child nodes. |
jcr.repository.vendor | The name of the repository vendor. |
query.joins | The level of support for joins in queries. The following values are possible:
|
org.apache.jackrabbit.spi.commons.AdditionalEventInfo | |
query.xpath.doc.order | true indicates that the repository supports the XPath 1.0 query language. |
query.jcrpath | |
option.xml.import.supported | true indicates that the repository supports the importing XML code as content. |
node.type.management.same.name.siblings.supported | true indicates that the repository supports sibling nodes (nodes with the same parent) with the same names. |
node.type.management.residual.definitions.supported | true indicates that the repository supports name properties with residual definitions. When supported, the name attribute of an item definition can be an asterisk ("*"). |
node.type.management.autocreated.definitions.supported | true indicates that the repository supports the automatic creation of child items (nodes or properties) of a node when the node is created. |
crx.cluster.master | true indicates this repository node is the master node of the cluster. |
level.1.supported | true indicates that option.xml.export.support is true and query.languages is of non-zero length. |
option.unfiled.content.supported | true indicates that the repository supports unfiled content. Unfiled nodes are not part of the repository hierarchy. |
jcr.specification.name | The name of the JCR specification that the repository implements. |
option.versioning.supported | true indicates that the repository supports full versioning. |
jcr.repository.name | The name of the repository. |
option.locking.supported | true indicates that the repository supports the locking of nodes. Locking enables a user to temporarily prevent other users from making changes. |
jcr.repository.version.display | |
option.activities.supported | true indicates that the repository supports activities. Activities are a set of changes that are performed in a workspace that are merged into another workspace. |
node.type.management.multivalued.properties.supported | true indicates that the repository supports node properties that can have zero or more values. |
option.retention.supported | true indicates that the repository supports the use of external retention management applications to apply retention policies to content and supports hold and release. |
option.lifecycle.supported | true indicates that the repository supports lifecycle management. |
WorkspaceNames The names of the workspaces in the repository. Read-only.
DataStoreGarbageCollectionDelay The amount of time in milliseconds that garbage collection sleeps after scanning every tenth node. Read/write.
BackupDelay The amount of time in milliseconds that the backup process sleeps between each step of the backup. Read/write.
BackupInProgress A value of true indicates that a backup process is executing. Read-only.
BackupProgress For the current backup, the percentage of all files that have been backed up. Read-only.
CurrentBackupTarget For the current backup, the ZIP file where backup files are being stored. When a backup is not in progress, no value appears. Read-only.
BackupWasSuccessful A value of true indicates that no errors have occurred during the current backup, or no backup is in progress. false indicates an error occurred during the current backup. Read-only.
BackupResult The status of the current backup. The following values are possible:
Read-only.
TarOptimizationRunningSince The time at which the current TAR file optimization process began. Read-only.
TarOptimizationDelay The amount of time in milliseconds that the TAR optimization process sleeps between each step of the process. Read/write.
ClusterProperties A set of key-value pairs that represent cluster properties and values. Each row in the table represents a cluster property. Read-only.
ClusterNodes The members of the repository cluster.
ClusterId The identifier of this repository cluster. Read-only.
ClusterMasterId The identifier of the master node of this repository cluster. Read-only.
ClusterNodeId The identifier of this node of the repository cluster. Read-only.
createWorkspace Creates a workspace in this repository.
Arguments:
Returned value: none
runDataStoreGarbageCollection Executes garbage collection on the repository nodes.
Arguments:
Returned value: none
stopDataStoreGarbageCollection Stops a running data store garbage collection.
startBackup Backs up repository data in a ZIP file.
Arguments:
target
: (Optional) A String
value that represents the name of the ZIP file or directory in which to archive the repository data. To use a ZIP file, Include the ZIP file name extension. To use a directory, include no file name extension.
To perform an incremental backup, specify the directory that was previously used for the backup.
You can specify an absolute or a relative path. Relative paths are relative to the parent of the crx-quickstart directory.
When you specify no value, the default value of backup-currentdate.zip
is used, where currentdate
is in the format yyyyMMdd-HHmm
.
Returned value: none
cancelBackup Stops the current backup process and deletes the temporary archive that the process created for archiving data.
blockRepositoryWrites Blocks changes to the repository data. All repository backup listeners are notified of the block.
unblockRepositoryWrites Removes the block from the repository. All repository backup listeners are notified of the block removal.
startTarOptimization Starts the TAR file optimization process using the default value for tarOptimizationDelay.
stopTarOptimization Stops TAR file optimization.
tarIndexMerge Merges the top index files of all TAR sets. Top index files are files with different major versions. For example, the following files are merged into the file index_3_1.tar: index_1_1.tar, index_2_0.tar, index_3_0.tar. The files that have been merged are deleted (in the previous example, index_1_1.tar, index_2_0.tar, and index_3_0.tar are deleted).
Arguments:
background
: A Boolean value that indicates whether to run the operation in the background so that the Web Console is usable during execution. A value of true runs the operation in the background.Returned value: none
becomeClusterMaster Sets this repository node as the master node of the cluster. If not already master, this command stops the current master instance’s listener and starts a master listener on the current node. This node is then set as the master node and restarts, causing all other nodes in the cluster (that is, those that are controlled by the master) to connect to this instance.
joinCluster Adds this repository to a cluster as a node that is controlled by the cluster master. You must provide a user name and password for authentication purposes. The connection uses basic authentication. The security credentials are base-64 encoded before being sent to the server.
Arguments:
master
: A string value that represents the IP address or computer name of the computer that runs the master repository node.username
: The name to use to authenticate with the cluster.password
: The password to use for authentication.Returned value: none
traversalCheck Traverses and optionally fixes inconsistencies in a subtree beginning at a specific node. This is covered in full detail in the documentation on Persistence Managers.
consistencyCheck Checks and optionally fixes consistency in the Datastore. This is covered in full detail in the documentation on the Datastore.
The value of the TimeSeries field for each statistic type that org.apache.jackrabbit.api.stats.RepositoryStatistics
defines.
Domain: com.adobe.granite
Type: TimeSeries
Name: One of the following values from the org.apache.jackrabbit.api.stats.RepositoryStatistics.Type
Enum class:
The following attributes are provided for each statistic type that is reported:
Statistical information about repository queries.
SlowQueries Information about the repository queries that have taken the longest time to complete. Read-only.
SlowQueriesQueueSize The maximum number of queries to include in the SlowQueries list. Read-write.
PopularQueries Information about the repository queries that have occurred the most. Read-only.
PopularQueriesQueueSize The maximum number of queries in the PopularQueries list. Read-write.
clearSlowQueriesQueue Removes all queries from the SlowQueries list.
clearPopularQueriesQueue Removes all queries from the PopularQueries list.
Monitor the services for each replication agent. When you create a replication agent, the service automatically appears in the JMX console.
Id A String value that represents the identifier of the replication agent configuration. Multiple agents can use the same configuration. Read-only.
Valid A boolean value that indicates whether the agent is configured correctly:
true
: Valid configuration.false
: The configuration contains errors.Read-only.
Enabled A boolean value that indicates whether the agent is enabled:
true
: Enabled.false
: Disabled.QueueBlocked A boolean value that indicates whether the queue exists and is blocked:
true
: Blocked. An automatic retry is pending.false
: Not blocked or does not exist.Read-only.
QueuePaused A boolean value that indicates whether the job queue is paused:
true
: Paused (suspended)false
: Not paused or does not exist.Read-write.
QueueNumEntries An int value that represents the number of jobs in the agent queue. Read-only.
QueueStatusTime A Date value that indicates the time on the server when the displayed status values were obtained. The value corresponds with the time that the page was loaded. Read-only.
QueueNextRetryTime For blocked queues, a Date value that indicates when the next automatic retry occurs. When no time appears, the queue is not blocked. Read-only.
QueueProcessingSince A Date value that indicates when processing began for the current job. When no time appears, the queue is either blocked or idle. Read-only.
QueueLastProcessTime A Date value that indicates when the previous job was completed. Read-only.
queueForceRetry For blocked queues, issues the retry command to the queue.
queueClear Removes all jobs from the queue.
Provides statistics about HTTP requests so that you can monitor the performance of the SlingRequestProcessor service.
RequestsCount The number of requests that have occurred since the statistics were last reset.
MinRequestDurationMsec The shortest amount of time (in milliseconds) that was required to process a request since the statistics were last reset.
MaxRequestDuratioMsec The longest amount of time (in milliseconds) that was required to process a request since the statistics were last reset.
StandardDeviationDurationMsec The standard deviation of the amount of time that was required to process requests. The standard deviation is calculated using all requests since the statistics were last reset.
MeanRequestDurationMsec The mean amount of time that was required to process a request. The mean is calculated using all requests since the statistics were last reset
resetStatistics Sets all statistics to zero. Reset the statistics when you need to analyze request processing performance during a specific time frame.
id The String representation of the package ID.
installed A boolean value that indicates whether the package is installed:
true
: Installed.false
: Not installed.installedBy The ID of the user who last installed the package.
installedDate The date when the package was last installed.
size A long value that holds the size of the package in bytes.
Information about the startup process and the Quickstart launcher.
log
Displays a message in the QuickStart window.
Arguments:
String
value that represents the message to display.startupFinished
Calls the startupFinished method of the server launcher. The method attempts to open the Welcome page in a web browser.
startupProgress
Sets the completion value of the server startup process. The progress bar on the QuickStart window represents the completion value.
Several third-party server resources install MBeans that expose attributes and operations to the JMX console. The following table lists the third-party resources and provides links to more information.
Domain | Type | MBean Class |
---|---|---|
JMImplementation | MBeanServerDelegate | javax.management.MBeanServerDelegate |
com.sun.management | HotSpotDiagnostic | com.sun.management.HotSpotDiagnosticMXBean |
java.lang |
|
javax.management package |
java.util.logging | java.util.logging.LoggingMXBean | |
osgi.core |
|
org.osgi.jmx.framework package |
The JMX Console displays information about several services that are running on the server:
MBeans that are deployed with an OSGi service expose service attributes and operations to the console. The MBean determines the attributes and operations that are exposed, and whether the attributes are read-only or read-write.
The main page of the JMX console includes a table of services. Each row in the table represents a service that is exposed by an MBean.
CRX allows external applications to interact with Managed Beans (MBeans) via Java Management Extensions (JMX). Using generic consoles such as JConsole or domain-specific monitoring applications, allows getting and setting CRX configurations and properties, and the monitoring of performance and resource usage.
To connect to CRX using JConsole, follow these steps:
Open a terminal window.
Enter the following command:
jconsole
JConsole will start and the JConsole window will appear.
JConsole will display a list of local Java Virtual Machine processes. The list will contain two quickstart processes. Select the quickstart “CHILD” process from the list of local processes (usually the one with the higher PID).
To connect to a remote CRX process, the JVM that hosts the remote CRX process must be enabled to accept remote JMX connections.
To enable remote JMX connections, the following system property must be set when starting the JVM:
com.sun.management.jmxremote.port=portNum
In the property above, portNum
is the port number through which you want to enable JMX RMI connections. Be sure to specify an unused port number. In addition to publishing an RMI connector for local access, setting this property publishes an additional RMI connector in a private read-only registry at the specified port using a well known name, “jmxrmi”.
By default, when you enable the JMX agent for remote monitoring, it uses password authentication based on a password file that needs to be specified using the following system property when starting the Java VM:
com.sun.management.jmxremote.password.file=pwFilePath
See the relevant JMX documentation for detailed instructions on setting up a password file.
Example:
$ java
-Dcom.sun.management.jmxremote.password.file=pwFilePath
-Dcom.sun.management.jmxremote.port=8463
-jar ./cq-quickstart.jar
After connecting to the quickstart process, JConsole provides a range of general monitoring tools for the JVM that CRX is running in.
To access CRX’s internal monitoring and configuration options, go to the MBeans tab, and from the hierarchical content tree on the left, select the Attributes or Operations section that you are interested in. For example, the com.adobe.granite/Repository/Operations section.
Within that section, select the desired attribute or operation in the left pane.