<!--

    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-clustersystemproperties" name="ref-clustersystemproperties"></a><a id="GHCLU00013" name="GHCLU00013"></a></p>

<h4><a id="sthref296" name="sthref296"></a><a id="sthref297" name="sthref297"></a>Cluster System Properties</h4>
<a name="BEGIN" id="BEGIN"></a>
<p>The Cluster System Properties page displays a list of the Java system properties that are set for the selected cluster. Java system properties are passed to the Java application launcher through the <code>-D</code> option of the Java application launcher whenGlassFish Server is started.</p>
<p>The Cluster Name field is a read-only field that displays the name of the selected cluster.</p>
<p>For each property, the following information is displayed:</p>
<dl>
<dt>Instance Variable Name</dt>
<dd>
<p>The name of the system property.</p>
</dd>
<dt>Current Value</dt>
<dd>
<p>The value that is currently set for the property. This field is read only.</p>
</dd>
<dt>Override Value</dt>
<dd>
<p>The value to which the property will be set after changes are saved.</p>
</dd>
</dl>
<p>The Additional Properties table also contains the following options.</p>
<dl>
<dt>Add Property</dt>
<dd>
<p>Button to add a property. Clicking this button adds a row to the Additional Properties table.</p>
</dd>
<dt>Delete Properties</dt>
<dd>
<p>Button to delete one or more selected properties. Any property that is deleted reverts to its default value or, if no default value is set, is undefined.</p>
</dd>
</dl>
<a id="sthref298" name="sthref298"></a>
<h5>Related Tasks</h5>
<p><a href="task-config-sys-properties-defaults.html">To Set Default Values for Configuration System Properties</a></p>
<a id="sthref299" name="sthref299"></a>
<h5>Equivalent asadmin Subcommands</h5>
<ul>
<li>
<p><a href="http://www.oracle.com/pls/topic/lookup?ctx=E26576_01&id=GSRFM00059"><code>create-system-properties</code>(1)</a></p>
</li>
<li>
<p><a href="http://www.oracle.com/pls/topic/lookup?ctx=E26576_01&id=GSRFM00110"><code>delete-system-property</code>(1)</a></p>
</li>
<li>
<p><a href="http://www.oracle.com/pls/topic/lookup?ctx=E26576_01&id=GSRFM00203"><code>list-system-properties</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>
