type=page
status=published
title=get-active-module-config
next=get-client-stubs.html
prev=get.html
~~~~~~

= get-active-module-config

[[get-active-module-config-1]][[GSRFM859]][[get-active-module-config]]

== get-active-module-config

Displays the current active configuration of a service or instance

[[sthref1219]]

=== Synopsis

[source]
----
asadmin [asadmin-options] get-active-module-config [--help]
[--target target]
[--all={false|true}]
[service_name]
----

[[sthref1220]]

=== Description

The `get-active-module-config` subcommand displays the current active
configuration of a service or instance.

This subcommand is supported in remote mode only.

[[sthref1221]]

=== 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`::
  Specifies the target for which you want to view the current active
  configuration of a specific service or an entire instance. +
  Possible values are as follows:

  `server`;;
    Displays the current active configuration for the default server
    instance. This is the default value.
  `domain`;;
    Displays the current active configuration for the default domain.
  cluster-name;;
    Displays the current active configuration for every server instance
    in the specified cluster.
  instance-name;;
    Displays the current active configuration for the specified
    instance.
`--all`::
  Displays all current active configurations. +
  The default value is `false`.

[[sthref1222]]

=== Operands

service_name::
  The name of the module for which you want to display the current
  active configuration.

[[sthref1223]]

=== Examples

[[GSRFM860]][[sthref1224]]

==== Example 1   Displaying the Current Active Configuration

This example displays the current active configuration for the JMS
service in `server-config` (the default configuration).

[source]
----
asadmin> get-active-module-config jms-service
At location: domain/configs/config[server-config]
<jms-service default-jms-host="default_JMS_host" type="EMBEDDED"
  <jms-host port="7676" host="localhost" name="default_JMS_host"/>
</jms-service>
Command get-active-module-config executed successfully.
----

[[sthref1225]]

=== Exit Status

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

[[sthref1226]]

=== See Also

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

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


