type=page
status=published
title=create-admin-object
next=create-application-ref.html
prev=copy-config.html
~~~~~~

= create-admin-object

[[create-admin-object-1]][[GSRFM00012]][[create-admin-object]]

== create-admin-object

Adds the administered object with the specified JNDI name for a resource adapter

[[sthref115]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-admin-object [--help]
[--target target]
--restype restype
[--classname classname]
--raname raname
[--enabled={true|false}]
[--description description]
[--property name=value[:name=value]*]
jndi_name
----

[[sthref116]]

=== Description

The `create-admin-object` subcommand creates the administered object
with the specified JNDI name and the interface definition for a resource adapter.

This subcommand is supported in remote mode only.

[[sthref117]]

=== 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 on which you are creating the administered
  object. Valid values are as follows:

  `server`;;
    Creates the administered object for the default server instance
    `server` and is the default value.
  configuration_name;;
    Creates the administered object for the named configuration.
  cluster_name;;
    Creates the administered object for every server instance in the
    cluster.
  instance_name;;
    Creates the administered object for a particular server instance.

+
[NOTE]
====
The resource is always created for the domain as a whole, but the
`resource-ref` for the resource is only created for the specified
`--target`. This means that although the resource is defined at the
domain level, it is only available at the specified target level. Use
the `create-resource-ref` subcommand to refer to the resource in
multiple targets if needed.
====

`--restype`::
  Specifies the interface definition for the administered object. The
  resource type must be an interface definition that is specified in the
  `ra.xml` file of the resource adapter.
`--classname`::
  Specifies the class name of the administered object. Required if
  multiple administered objects use the same interface definition.
`--raname`::
  Specifies the name of the resource adapter associated with this
  administered object.
`--enabled`::
  Specifies if this object is enabled. Default is true.
`--description`::
  Text string describing the administered object.
`--property`::
  Description of the name/values pairs for configuring the resource.
  Dependent on the resource adapter. For JMS properties, see
  link:create-jms-resource.html#create-jms-resource-1[`create-jms-resource`(1)]
  for JMS destination resources.

[[sthref118]]

=== Operands

jndi_name::
  JNDI name of the administered object to be created.

[[sthref119]]

=== Examples

[[GSRFM457]][[sthref120]]

==== Example 1   Creating an Administered Object

In this example, `jmsra` is a system resource adapter with the admin
object interfaces, `jakarta.jms.Queue` and `jakarta.jms.Topic`.

[source]
----
asadmin> create-admin-object --restype jakarta.jms.Queue
--raname jmsra --description "sample administered object"
--property Name=sample_jmsqueue jms/samplequeue
Command create-admin-object executed successfully
----

[[sthref121]]

=== Exit Status

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

[[sthref122]]

=== See Also

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

link:create-resource-ref.html#create-resource-ref-1[`create-resource-ref`(1)],
link:delete-admin-object.html#delete-admin-object-1[`delete-admin-object`(1)],
link:list-admin-objects.html#list-admin-objects-1[`list-admin-objects`(1)]


