type=page
status=published
title=create-connector-resource
next=create-connector-security-map.html
prev=create-connector-connection-pool.html
~~~~~~

= create-connector-resource

[[create-connector-resource-1]][[GSRFM00019]][[create-connector-resource]]

== create-connector-resource

Registers the connector resource with the specified JNDI name

[[sthref166]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-connector-resource [--help]
--poolname connectorConnectionPoolName
[--enabled={true|false}]
[--description description]
[--objecttype ovjecttype]
[--property (name=value)[:name=value]*]
[--target target]
jndi_name
----

[[sthref167]]

=== Description

The `create-connector-resource` subcommand registers the connector
resource with the specified JNDI name.

This subcommand is supported in remote mode only.

[[sthref168]]

=== 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.
`--poolname`::
  The name of the connection pool. When two or more resource elements
  point to the same connection pool element, they use the same pool
  connections at runtime.
`--enabled`::
  This option determines whether the resource is enabled at runtime. The
  default value is true.
`--objecttype`::
  Defines the type of the connector resource. Default is user. Allowed
  values are:
+
  `system-all`;;
    A system resource for all server instances and the domain
    administration server (DAS).
  `system-admin`;;
    A system resource only for the DAS.
  `system-instance`;;
    A system resource for all server instances only.
  `user`;;
    A user resource.
`--description`::
  Text providing details about the connector resource.
`--property`::
  Optional attribute name value pairs for configuring the resource.
`--target`::
  This option specifies the ending location of the connector resources.
  Valid targets are:
+
  `server`;;
    Creates the connector resource in the default server instance. This
    is the default value.
  `domain`;;
    Creates the connector resource in the domain.
  cluster_name;;
    Creates the connector resource in every server instance in the
    cluster.
  instance_name;;
    Creates the connector resource in the specified 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.
====

[[sthref169]]

=== Operands

jndi_name::
  The JNDI name of this connector resource.

[[sthref170]]

=== Examples

[[GSRFM465]][[sthref171]]

==== Example 1   Creating a Connector Resource

This example creates a connector resource named `jms/qConnFactory`.

[source]
----
asadmin> create-connector-resource --poolname jms/qConnPool
--description "sample connector resource" jms/qConnFactory
Command create-connector-resource executed successfully
----

[[GSRFM466]][[sthref172]]

==== Example 2   Using the create-connector-resource subcommand

This example shows the usage of this subcommand.

[source]
----
asadmin> create-connector-resource --target server --poolname jms/qConnPool
--description "sample connector resource" jms/qConnFactory
Command create-connector-resource executed successfully
----

Where `jms/qConnFactory` is the sample connector resource that is
created.

[[sthref173]]

=== Exit Status

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

[[sthref174]]

=== See Also

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

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


