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 Jakarta 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.

