delete-profiler(1)        asadmin Utility Subcommands       delete-profiler(1)

NAME
       delete-profiler - removes the profiler element

SYNOPSIS
           delete-profiler [--help] [--target target_name]

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.

OPTIONS
       --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.

EXAMPLES
       Example 1, Deleting a Profile
           This example deletes the profiler named sample_profiler.

               asadmin> delete-profiler sample_profiler
               Command delete-profiler executed successfully

EXIT STATUS
       0
           subcommand executed successfully

       1
           error in executing the subcommand

SEE ALSO
       create-profiler(1)

       asadmin(1M)

Java EE 8                         22 Dec 2010               delete-profiler(1)
