type=page
status=published
title=create-module-config
next=create-network-listener.html
prev=create-message-security-provider.html
~~~~~~
create-module-config
====================

[[create-module-config-1]][[GSRFM844]][[create-module-config]]

create-module-config
--------------------

adds the default configuration of a module to `domain.xml`

[[sthref429]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] create-module-config [--help]
[--dryrun={false|true}]
[--all={false|true}]
[--target target] 
[service_name]
----

[[sthref430]]

Description

The `create-module-config` subcommand adds the default configuration of
a module to `domain.xml`.

This subcommand is supported in remote mode only.

[[sthref431]]

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.
`--dryrun`::
  Displays the default configuration of a module but does not add it to
  `domain.xml`. The default value is `false`.
`--all`::
  Adds all default configurations of modules to `domain.xml` if they are
  not already in it. The default value is `false`.
`--target`::
  Specifies the target to which the default configuration is being
  added. +
  Possible values are as follows: +
  `server`;;
    Adds the default configuration to the default server instance. This
    is the default value.
  `domain`;;
    Adds the default configuration to the default domain.
  cluster-name;;
    Adds the default configuration to every server instance in the
    specified cluster.
  instance-name;;
    Adds the default configuration to the specified instance.

[[sthref432]]

Operands

service_name::
  The name of the module for which the default configuration is to be
  added.

[[sthref433]]

Examples

[[GSRFM845]][[sthref434]]

Example 1   Adding a Default Configuration to domain.xml

This example adds the default configuration of the web container module
to `domain1` in `server-config` (the default configuration). Use the
`--dryrun` option to preview the configuration before it is added.

[source,oac_no_warn]
----
asadmin> create-module-config web-container
Command create-module-config executed successfully.
----

[[sthref435]]

Exit Status

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

[[sthref436]]

See Also

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

link:delete-module-config.html#delete-module-config-1[`delete-module-config`(1)],
link:get-active-module-config.html#get-active-module-config-1[`get-active-module-config`(1)]


