type=page
status=published
title=version
next=manvol1m.html
prev=verify-domain-xml.html
~~~~~~

version
=======

[[version-1]][[GSRFM00261]][[version]]

version
-------

Displays version information for{productName}

[[sthref2347]]

=== Synopsis

[source]
----
asadmin [asadmin-options] version [--help]
[--verbose={false|true}]
[--local={false|true}]
----

[[sthref2348]]

=== Description

The `version` subcommand displays version information for
{productName}. By default, if the subcommand cannot contact the
domain administration server (DAS), the subcommand retrieves the version
information locally and displays a warning message.

This subcommand is supported in remote mode and local mode.

[[sthref2349]]

=== 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.
`--verbose`::
`-v`::
  If this option is set to `true`, the subcommand provides the version
  of the Java Runtime Environment (JRE) that the server is running. The
  default is `false`.
`--local`::
  If this option is set to `true`, the subcommand obtains the version
  locally from the installation of {productName} on the host where
  the subcommand is run. +
  If this option is set to `false` (default), the subcommand attempts to
  contact the DAS to obtain the version. If the attempt to contact the
  DAS fails, the subcommand retrieves the version locally and displays a
  warning message.

[[sthref2350]]

=== Examples

[[GSRFM800]][[sthref2351]]

==== Example 1   Obtaining Version Information From a Running DAS

[source]
----
asadmin> version
Version = Oracle GlassFish Server 3.1 (build 34)
Command version executed successfully.
----

[[GSRFM801]][[sthref2352]]

==== Example 2   Obtaining Version Information When the DAS Cannot be Reached

[source]
----
asadmin> version
Version string could not be obtained from Server [localhost:4848] for some reason.
(Turn debugging on e.g. by setting AS_DEBUG=true in your environment, to see the
 details).
Using locally retrieved version string from version class.
Version = Oracle GlassFish Server 3.1 (build 34)
Command version executed successfully.
----

[[GSRFM802]][[sthref2353]]

==== Example 3   Obtaining Version Information Locally

[source]
----
asadmin> version --local
Using locally retrieved version string from version class.
Version = Oracle GlassFish Server 3.1 (build 34)
Command version executed successfully.
----

[[sthref2354]]

=== Exit Status

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

[[sthref2355]]

=== See Also

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

link:list-modules.html#list-modules-1[`list-modules`(1)]


