type=page
status=published
title=Preface
next=manvol1.html
prev=title.html
~~~~~~
Preface
=======

[[GSRFM441]][[sthref2]]


[[preface]]
Preface
-------

[NOTE]
========================================================================

This documentation is part of the Java Enterprise Edition contribution 
to the Eclipse Foundation and is not intended for use in relation to 
Java Enterprise Edition or Orace GlassFish. The documentation is in the 
process of being revised to reflect the new Jakarta EE branding. 
Additional changes will be made as requirements and procedures evolve 
for Jakarta EE. Where applicable, references to Java EE or Java 
Enterprise Edition should be considered references to Jakarta EE. 

Please see the Title page for additional license information.
========================================================================

Both novice users and those familiar with GlassFish Server Open Source
Edition can use online man pages to obtain information about the product
and its features. A man page is intended to answer concisely the
question "What does it do?" The man pages in general comprise a
reference manual. They are not intended to be a tutorial.

[[GSRFM442]][[sthref3]]


[[overview]]
Overview
~~~~~~~~

The following contains a brief description of each man page section and
the information it references:

* Section 1 describes, in alphabetical order, the `asadmin` utility
subcommands.
* Section 1M describes GlassFish Server utility commands.
* Section 5ASC describes concepts that are related to GlassFish Server +
administration.

Below is a generic format for man pages. The man pages of each manual
section generally follow this order, but include only needed headings.
For example, if there are no bugs to report, there is no Bugs section.

Name::
  This section gives the names of the commands or functions documented,
  followed by a brief description of what they do.
Synopsis::
  This section shows the syntax of commands or functions. +
  The following special characters are used in this section: +
  [ ];;
    Brackets. The option or argument enclosed in these brackets is
    optional. If the brackets are omitted, the argument must be
    specified.
  |;;
    Separator. Only one of the arguments separated by this character can
    be specified at a time.
Description::
  This section defines the functionality and behavior of the service.
  Thus it describes concisely what the command does. It does not discuss
  options or cite examples.
Options::
  This section lists the command options with a concise summary of what
  each option does. The options are listed literally and in the order
  they appear in the Synopsis section. Possible arguments to options are
  discussed under the option, and where appropriate, default values are
  supplied.
Operands::
  This section lists the command operands and describes how they affect
  the actions of the command.
Examples::
  This section provides examples of usage or of how to use a command or
  function. Wherever possible a complete example including command-line
  entry and machine response is shown. Examples are followed by
  explanations, variable substitution rules, or returned values. Most
  examples illustrate concepts from the Synopsis, Description, Options,
  and Usage sections.
Exit Status::
  This section lists the values the command returns to the calling
  program or shell and the conditions that cause these values to be
  returned. Usually, zero is returned for successful completion, and
  values other than zero for various error conditions.
See Also::
  This section lists references to other man pages, in-house
  documentation, and outside publications.
Notes::
  This section lists additional information that does not belong
  anywhere else on the page. It takes the form of an aside to the user,
  covering points of special interest. Critical information is never
  covered here.
Bugs::
  This section describes known bugs and, wherever possible, suggests
  workarounds.



