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

= create-profiler

[[create-profiler-1]][[GSRFM00050]][[create-profiler]]

== create-profiler

Creates the profiler element

[[sthref481]]

=== Synopsis

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

[[sthref482]]

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

[[sthref483]]

=== 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 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
  {productName} 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.

[[sthref484]]

=== Operands

profiler_name::
  Name of the profiler.

[[sthref485]]

=== Examples

[[GSRFM516]][[sthref486]]

==== Example 1   Creating a Profiler

This example creates a profiler named `sample_profiler`.

[source]
----
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
----

[[sthref487]]

=== Exit Status

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

[[sthref488]]

=== See Also

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

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


