type=page
status=published
title=validate-multicast
next=verify-domain-xml.html
prev=validate-dcom.html
~~~~~~

= validate-multicast

[[validate-multicast-1]][[GSRFM00259]][[validate-multicast]]

== validate-multicast

Validates that multicast transport is available for clusters

[[sthref2332]]

=== Synopsis

[source]
----
asadmin [asadmin-options] validate-multicast [--help]
[--multicastport multicastport]
[--multicastaddress multicastaddress]
[--bindaddress bindaddress]
[--sendperiod sendperiod]
[--timeout timeout]
[--timetolive timetolive]
[--verbose={false|true}]
----

[[sthref2333]]

=== Description

The `validate-multicast` subcommand validates that multicast transport
is available for clusters. You should run this subcommand at the same
time on each of the hosts to be validated. This subcommand is available
in local mode.

[NOTE]
====
Do not run the `validate-multicast` subcommand using the DAS and
cluster's multicast address and port values while the DAS and cluster
are running. Doing so results in an error.

The `validate-multicast` subcommand must be run at the same time on two
or more machines to validate whether multicast messages are being
received between the machines.
====

As long as all machines see each other, multicast is validated to be
working properly across the machines. If the machines are not seeing
each other, set the `--bindaddress` option explicitly to ensure that all
machines are using interface on same subnet, or increase the
`--timetolive` option from the default of `4`. If these changes fail to
resolve the multicast issues, ask the network administrator to verify
that the network is configured so the multicast messages can be seen
between all the machines used to run the cluster.

[[sthref2334]]

=== 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.
`--multicastport`::
  The port for the multicast socket on which the Group Management
  Service (GMS) listens for group events. Specify a standard UDP port
  number in the range 2048-49151. The default is `2048`.
`--multicastaddress`::
  The address for the multicast socket on which the GMS listens for
  group events. Specify a class D IP address. Class D IP addresses are
  in the range `224.0.0.0` to `239.255.255.255`, inclusive. The address
  `224.0.0.0` is reserved and should not be used. The default is
  `228.9.3.1`.
`--bindaddress`::
  The local interface to receive multicast datagram packets for the GMS.
  The default is to use all available binding interfaces. +
  On a multi-home machine (possessing two or more network interfaces),
  this attribute enables you to indicate which network interface is used
  for the GMS. This value must be a local network interface IP address.
`--sendperiod`::
  The number of milliseconds between test messages sent between nodes.
  The default is `2000`.
`--timeout`::
  The number of seconds before the subcommand times out and exits. The
  default is `20`. You can also exit this subcommand using Ctrl-C.
`--timetolive`::
  The default time-to-live for multicast packets sent out on the
  multicast socket in order to control the scope of the multicasts. The
  time-to-live value must be between zero and 255 inclusive. The default
  is the JDK default or a minimum defined by a constant in the GMS
  subsystem, whichever is lower. To see the time-to-live value being
  used, use the `--verbose` option.
`--verbose`::
  If used without a value or set to `true`, provides additional
  debugging information. The default is `false`.

[[sthref2335]]

=== Examples

[[GSRFM798]][[sthref2336]]

==== Example 1   Validating multicast transport

Run from host `machine1`:

[source]
----
asadmin> validate-multicast
Will use port 2,048
Will use address 228.9.3.1
Will use bind address null
Will use wait period 2,000 (in milliseconds)

Listening for data...
Sending message with content "machine1" every 2,000 milliseconds
Received data from machine1 (loopback)
Received data from machine2
Exiting after 20 seconds. To change this timeout, use the --timeout command line option.
Command validate-multicast executed successfully
----

Run from host `machine2`:

[source]
----
asadmin> validate-multicast
Will use port 2,048
Will use address 228.9.3.1
Will use bind address null
Will use wait period 2,000 (in milliseconds)

Listening for data...
Sending message with content "machine2" every 2,000 milliseconds
Received data from machine2 (loopback)
Received data from machine1
Exiting after 20 seconds. To change this timeout, use the --timeout command line option.
Command validate-multicast executed successfully
----

[[sthref2337]]

=== Exit Status

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

[[sthref2338]]

=== See Also

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

link:get-health.html#get-health-1[`get-health`(1)]


