<!--

    Copyright (c) 2005, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<p><a id="ref-jndiexternalresourcenew" name="ref-jndiexternalresourcenew"></a><a id="GHJML00009" name="GHJML00009"></a></p>

<h4><a id="sthref36" name="sthref36"></a><a id="sthref37" name="sthref37"></a>New External Resource</h4>
<a name="BEGIN" id="BEGIN"></a>
<p>Use the New External Resource page to create an external JNDI resource.</p>
<p>The New External Resource page contains the following options.</p>
<dl>
<dt>JNDI Name</dt>
<dd>
<p>A unique name that identifies the resource.</p>
</dd>
<dt>Resource Type</dt>
<dd>
<p>The fully qualified type definition for the resource.</p>
</dd>
<dt>Factory Class</dt>
<dd>
<p>The user-specified name for the factory class. This class implements the <code>javax.naming.spi.InitialContextFactory</code> interface.</p>
</dd>
<dt>JNDI Lookup</dt>
<dd>
<p>The JNDI value to look up in the external repository.</p>
<p>For example, when creating an external resource to connect to an external repository, to test a bean class, the JNDI Lookup can look like this: <code>cn=</code><i>testmybean</i>.</p>
</dd>
<dt>Description</dt>
<dd>
<p>A description of this external resource.</p>
</dd>
<dt>Status</dt>
<dd>
<p>The status of the external resource. The external resource can be enabled or disabled. The default value is Enabled.</p>
</dd>
<dt>Additional Properties</dt>
<dd>
<p>Additional properties for the external resource. GlassFish Server does not define any additional properties for external resources.</p>
</dd>
<dt>Targets</dt>
<dd>
<p>(This option is displayed if any clusters or standalone instances have been created in the domain.)</p>
<p>Clusters and standalone instances for resource. Move desired targets to the Selected Targets column using the Add and Add All buttons. Move any unneeded targets to the Available Targets column using the Remove and Remove All buttons.</p>
</dd>
</dl>
<a id="GHJML134" name="GHJML134"></a>
<h5>Related Tasks</h5>
<ul>
<li>
<p><a href="task-jndiexternalresourcecreate.html">To Create an External JNDI Resource</a></p>
</li>
<li>
<p><a href="task-jndiexternalresourceedit.html">To Edit an External JNDI Resource</a></p>
</li>
<li>
<p><a href="task-jndiexternalresourcedelete.html">To Delete an External JNDI Resource</a></p>
</li>
</ul>
<a id="GHJML135" name="GHJML135"></a>
<h5>Related asadmin Commands</h5>
<ul>
<li>
<p><a href="http://www.oracle.com/pls/topic/lookup?ctx=E26576_01&id=GSRFM00041"><code>create-jndi-resource</code>(1)</a></p>
</li>
<li>
<p><a href="http://www.oracle.com/pls/topic/lookup?ctx=E26576_01&id=GSRFM00179"><code>list-jndi-resources</code>(1)</a></p>
</li>
<li>
<p><a href="http://www.oracle.com/pls/topic/lookup?ctx=E26576_01&id=GSRFM00093"><code>delete-jndi-resource</code>(1)</a></p>
</li>
</ul>


<small>Copyright &#169; 2005, 2017, Oracle and/or its affiliates. All rights reserved. <a href="docinfo.html">Legal Notices</a></small>
