type=page
status=published
title=create-lifecycle-module
next=create-local-instance.html
prev=create-jvm-options.html
~~~~~~

= create-lifecycle-module

[[create-lifecycle-module-1]][[GSRFM00043]][[create-lifecycle-module]]

== create-lifecycle-module

Creates a lifecycle module

[[sthref380]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-lifecycle-module [--help]
--classname classname
[--enabled={true|false}] [--target target]
[--classpath classpath] [--loadorder loadorder]
[--failurefatal={false|true} ] [--description description]
[--property (name=value)[:name=value]*]
module_name
----

[[sthref381]]

=== Description

The `create-lifecycle-module` subcommand creates a lifecycle module. A
lifecycle module provides a means of running a short or long duration
Java-based task at a specific stage in the server life cycle. This
subcommand is supported in remote mode only.

[[sthref382]]

=== 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.
`--classname`::
  This is the fully qualified name of the startup class.
`--target`::
  Indicates the location where the lifecycle module is to be created.
  Valid values are

  * `server`- Specifies the default server instance as the target for
  creating the lifecycle module. `server` is the name of the default
  server instance and is the default value for this option.
  * cluster_name- Specifies a particular cluster as the target for
  creating the lifecycle module.
  * instance_name- Specifies a particular stand-alone server instance as
  the target for creating the lifecycle module.

`--classpath`::
  This option indicates where the lifecycle module is located. It is a
  classpath with the standard format: either colon-separated (Unix) or
  semicolon-separated (Windows) JAR files and directories. The
  referenced JAR files and directories are not uploaded to the server
  instance.
`--loadorder`::
  This option represents an integer value that can be used to force the
  order in which deployed lifecycle modules are loaded at server
  startup. Smaller numbered modules are loaded sooner. Order is
  unspecified if two or more lifecycle modules have the same load-order
  value. The default is `Integer.MAX_VALUE`, which means the lifecycle
  module is loaded last.
`--failurefatal`::
  This option tells the system what to do if the lifecycle module does
  not load correctly. When this option is set to true, the system aborts
  the server startup if this module does not load properly. The default
  value is false.
`--enabled`::
  This option determines whether the lifecycle module is enabled at
  runtime. The default value is true.
`--description`::
  This is the text description of the lifecycle module.
`--property`::
  This is an optional attribute containing name/value pairs used to
  configure the lifecycle module.

[[sthref383]]

=== Operands

module_name::
  This operand is a unique identifier for the deployed server lifecycle
  event listener module.

[[sthref384]]

=== Examples

[[GSRFM504]][[sthref385]]

==== Example 1   Creating a Lifecycle Module

The following example creates a lifecycle module named `customSetup`.

[source]
----
asadmin> create-lifecycle-module --classname "com.acme.CustomSetup"
--classpath "/export/customSetup" --loadorder 1 --failurefatal=true
--description "this is a sample customSetup"
--property rmi="Server\=acme1\:7070":timeout=30 customSetup
Command create-lifecycle-module executed successfully
----

The escape character `\` is used in the property option to specify that
the equal sign (=) and colon (:) are part of the `rmi` property value.

[[sthref386]]

=== Exit Status

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

[[sthref387]]

=== See Also

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

link:delete-lifecycle-module.html#delete-lifecycle-module-1[`delete-lifecycle-module`(1)],
link:list-lifecycle-modules.html#list-lifecycle-modules-1[`list-lifecycle-modules`(1)]

"link:application-development-guide/lifecycle-listeners.html#GSDVG00014[Developing Lifecycle Listeners]" in {productName} Application Development Guide


