type=page
status=published
title=create-custom-resource
next=create-domain.html
prev=create-context-service.html
~~~~~~

create-custom-resource
======================

[[create-custom-resource-1]][[GSRFM00022]][[create-custom-resource]]

create-custom-resource
----------------------

Creates a custom resource

[[sthref200]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-custom-resource [--help]
--restype type --factoryclass classname
[--enabled={true|false}] [--description text]
[--property (name=value)[:name=value]*] jndi-name
[--target target]
----

[[sthref201]]

=== Description

The `create-custom-resource` subcommand creates a custom resource. A
custom resource specifies a custom server-wide resource object factory
that implements the `javax.naming.spi.ObjectFactory` interface.

This subcommand is supported in remote mode only.

[[sthref202]]

=== 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`::
  The target on which the custom resource you are creating will be
  available. Valid values are:
+
  `server`;;
    The resource will be available on the default server instance and
    all domains hosted on the instance. This is the default value.
  `domain`;;
    The resource will be available on the specified domain only.
  cluster_name;;
    The resource will be available on every server instance in the
    cluster.
  instance_name;;
    The resource will be available on the specified server instance
    only.
+

[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`::
  The type of custom resource to be created. Specify a fully qualified
  type definition, for example `javax.naming.spi.ObjectFactory`. The
  resource type definition follows the format, xxx`.`xxx.
`--factoryclass`::
  Factory class name for the custom resource. This class implements the
  `javax.naming.spi.ObjectFactory` interface.
`--enabled`::
  Determines whether the custom resource is enable at runtime. Default
  is true.
`--description`::
  Text providing details about the custom resource. This description is
  a string value and can include a maximum of 250 characters.
`--property`::
  Optional attribute name/value pairs for configuring the resource.

[[sthref203]]

=== Operands

jndi-name::
  The JNDI name of this resource.

[[sthref204]]

=== Examples

[[GSRFM470]][[sthref205]]

==== Example 1   Creating a Custom Resource

This example creates a custom resource.

[source]
----
asadmin> create-custom-resource --restype topic
--factoryclass com.imq.topic mycustomresource
Command create-custom-resource executed successfully.
----

[[sthref206]]

=== Exit Status

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

[[sthref207]]

=== See Also

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

link:delete-custom-resource.html#delete-custom-resource-1[`delete-custom-resource`(1)],
link:list-custom-resources.html#list-custom-resources-1[`list-custom-resources`(1)],
link:create-resource-ref.html#create-resource-ref-1[`create-resource-ref`(1)]


