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

NAME
       create-profiler - creates the profiler element

SYNOPSIS
           create-profiler [--help] [--target target_name]
           [--classpath classpath] [--nativelibpath native_library_path] [--enabled=true]
           [--property(name=value)[:name=value]*] profiler_name

DESCRIPTION
       The create-profiler subcommand creates the profiler element. A server
       instance is tied to the profiler by the profiler element in the Java
       configuration. Only one profiler exists at a time. If you attempt to
       create a profiler while one already exists, an error message is
       displayed.

       For changes to take effect, the server must restarted.

       This subcommand is supported in remote mode only.

OPTIONS
       --help, -?
           Displays the help text for the subcommand.

       --target
           This option specifies the target on which you are creating a
           profiler. Valid values are

           server
               Creates the profiler for the default server instance. This is
               the default value.

           configuration_name
               Creates the profiler for the named configuration

           cluster_name
               Creates the profiler for every server instance in the cluster

           instance_name
               Creates the profiler for a particular server instance

       --classpath
           Java classpath string that specifies the classes needed by the
           profiler.

       --nativelibpath
           This path is automatically constructed to be a concatenation of the
           GlassFish Server installation relative path for its native shared
           libraries, standard JRE native library path, the shell environment
           setting (LD_LIBRARY_PATH on UNIX) and any path that may be
           specified in the profile element.

       --enabled
           Profiler is enabled by default.

       --property
           Name/value pairs of provider-specific attributes.

OPERANDS
       profiler_name
           Name of the profiler.

EXAMPLES
       Example 1, Creating a Profiler
           This example creates a profiler named sample_profiler.

               asadmin> create-profiler --classpath /home/appserver/
               --nativelibpath /u/home/lib --enabled=false
               --property defaultuser=admin:password=adminadmin sample_profiler
               Created Profiler with id = sample_profiler

EXIT STATUS
       0
           subcommand executed successfully

       1
           error in executing the subcommand

SEE ALSO
       delete-profiler(1)

       asadmin(1M)

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