type=page
status=published
title=disable-monitoring
next=disable-secure-admin.html
prev=disable-http-lb-server.html
~~~~~~

= disable-monitoring

[[disable-monitoring-1]][[GSRFM00120]][[disable-monitoring]]

== disable-monitoring

Disables monitoring for the server or for specific monitorable modules

[[sthref1063]]

=== Synopsis

[source]
----
asadmin [asadmin-options] disable-monitoring [--help]
[--modules module-name][:module-name]*
----

[[sthref1064]]

=== Description

The `disable-monitoring` subcommand is used to turn off monitoring for
{productName} or for particular modules during runtime. Changes are
dynamic, that is, server restart is not required.

Running the `disable-monitoring` subcommand without the `--module`
option disables the monitoring service by setting the
`monitoring-enabled` attribute of the `monitoring-service` element to
`false`. The individual modules retain their monitoring levels, but no
monitoring data is generated because the entire monitoring service is
disabled.

This subcommand used with the `--modules` option disables monitoring for
a module by setting the monitoring level to OFF. The status of the
monitoring service is not affected. For a list of monitorable modules,
see the `--modules` option in this help page.

An alternative method for disabling monitoring is to use the `set`
subcommand. In this case, the server must be restarted for changes to
take effect.

This subcommand is supported in remote mode only.

[[sthref1065]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--modules`::
  Disables the specified module or modules by setting the monitoring
  level to OFF. Multiple modules are separated by : (colon). Monitorable
  modules include `connector-connection-pool`, `connector-service`,
  `ejb-container`, `http-service`, `jdbc-connection-pool`, `jersey`,
  `jpa`, `jms-service`, `jvm`, `security`, `thread-pool`,
  `transaction-service`, `web-container`, and `web-services-container`.
  Additional modules can be listed by using the `get` subcommand.

[[sthref1066]]

=== Operands

[[sthref1067]]

=== Examples

[[GSRFM594]][[sthref1068]]

==== Example 1   Disabling the Monitoring Service for {productName}

This example disables monitoring for {productName} in general by
setting the `enable-monitoring` flag to `false` (default is `true`).

[source]
----
asadmin> disable-monitoring
Command disable-monitoring executed successfully
----

[[GSRFM595]][[sthref1069]]

==== Example 2   Disabling Monitoring for the Web and EJB Containers

This example disables monitoring for specific containers. Their
monitoring levels will be set to OFF.

[source]
----
asadmin> disable-monitoring --modules web-container:ejb-container
Command disable-monitoring executed successfully
----

[[sthref1070]]

=== Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref1071]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:get.html#get-1[`get`(1)],
link:enable-monitoring.html#enable-monitoring-1[`enable-monitoring`(1)],
link:list.html#list-1[`list`(1)],
link:monitor.html#monitor-1[`monitor`(1)], link:set.html#set-1[`set`(1)]

link:monitoring.html#monitoring-5asc[`monitoring`(5ASC)]

"link:administration-guide/monitoring.html#GSADG00011[Administering the Monitoring Service]" in {productName} Administration Guide


