type=page
status=published
title=delete-profiler
next=delete-protocol.html
prev=delete-password-alias.html
~~~~~~
delete-profiler
===============

[[delete-profiler-1]][[GSRFM00102]][[delete-profiler]]

delete-profiler
---------------

removes the profiler element

[[sthref930]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] delete-profiler [--help] 
[--target target_name]
----

[[sthref931]]

Description

The `delete-profiler` subcommand deletes the profiler element in the
Java configuration. Only one profiler can exist at a time. If you
attempt to create a profiler while one already exists, an error message
is displayed and the existing profiler must be deleted.

For changes to take effect, the server must restarted.

This command is supported in remote mode only.

[[sthref932]]

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.
`--target`::
  This option specifies the target profiler element which you are
  deleting. Valid values are +
  `server`;;
    Deletes the profiler element for the default server instance
    `server` and is the default value.
  configuration_name;;
    Deletes the profiler element for the named configuration.
  cluster_name;;
    Deletes the profiler element for every server instance in the
    cluster.
  instance_name;;
    Deletes the profiler element for a particular server instance.

[[sthref933]]

Examples

[[GSRFM573]][[sthref934]]

Example 1   Deleting a Profile

This example deletes the profiler named `sample_profiler`.

[source,oac_no_warn]
----
asadmin> delete-profiler sample_profiler
Command delete-profiler executed successfully
----

[[sthref935]]

Exit Status

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

[[sthref936]]

See Also

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

link:create-profiler.html#create-profiler-1[`create-profiler`(1)]


