type=page
status=published
title=create-resource-ref
next=create-service.html
prev=create-resource-adapter-config.html
~~~~~~

create-resource-ref
===================

[[create-resource-ref-1]][[GSRFM00055]][[create-resource-ref]]

create-resource-ref
-------------------

Creates a reference to a resource

[[sthref519]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-resource-ref [--help]
[--target target]
[--enabled={false|true}] reference_name
----

[[sthref520]]

=== Description

The `create-resource-ref` subcommand creates a reference from a cluster
or an unclustered server instance to a previously created resource, for
example, a JDBC resource created by using the `create-jdbc-resource`
subcommand. This effectively results in the resource being made
available in the JNDI tree of the instance or cluster.

The target instance or instances making up the cluster need not be
running or available for this subcommand to succeed. If one or more
instances are not available, they will receive the new resource the next
time they start.


[NOTE]
====
A `resource-ref` can only be created for bindable resources, such as a
`jdbc-resource`, `connector-resource`, `admin-object-resource`,
`mail-resource`, `custom-resource`, or `jndi-resource`.

A `jdbc-connection-pool` or a `connector-connection-pool` are not
referred to directly by applications. Instead, they are referred to
through a `jdbc-resource` or `connector-resource`, respectively.
====


This subcommand is supported in remote mode only.

[[sthref521]]

=== 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 are creating the resource
  reference. Valid targets are as follows:

  `server`;;
    Creates the resource reference for the default server instance.
    This is the default target.
  cluster_name;;
    Creates the resource reference for every server instance in the cluster.
  instance_name;;
    Creates the resource reference for the named unclustered server instance.

`--enabled`::
  Indicates whether the resource should be enabled. This value will take
  effect only if the resource is enabled at the global level. The
  default is `true`.

[[sthref522]]

=== Operands

reference_name::
  The name or JNDI name of the resource.

[[sthref523]]

=== Examples

[[GSRFM520]][[sthref524]]

==== Example 1   Creating a Reference to a JMS Destination Resource

This example creates a reference to the JMS destination resource
`jms/Topic` on the cluster `Cluster1`.

[source]
----
asadmin> create-resource-ref --target Cluster1 jms/Topic
resource-ref jms/Topic created successfully.
Command create-resource-ref executed successfully.
----

[[sthref525]]

=== Exit Status

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

[[sthref526]]

=== See Also

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

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


