<?xml version="1.0"?>
<!--

 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.

-->

<section xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="Java-Broker-Management-Managing-Virtualhost-Nodes">
  <title>Virtualhost Nodes</title>
  <para>Virtualhost nodes can only be managed by the HTTP management channel.</para>
  <section xml:id="Java-Broker-Management-Managing-Virtualhost-Nodes-Types">
    <title>Types</title>
    <para> The following virtualhost nodes types are supported. <itemizedlist>
        <listitem><para>BDB - Node backed with Oracle BDB <footnote>
              <para>Oracle BDB JE is optional. See <xref linkend="Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE"/>.</para>
            </footnote></para></listitem>
        <listitem><para>BDB HA - Node backed with Oracle BDB utilising High
          Availability</para></listitem>
        <listitem><para>DERBY - Node backed with Apache Derby</para></listitem>
        <listitem><para>JDBC - Node backed with an external database <footnote>
              <para>JDBC 4.0 compatible drivers must be available. See <xref linkend="Java-Broker-Miscellaneous-Installing-External-JDBC-Driver"/></para>
            </footnote></para></listitem>
        <listitem><para>JSON - Node backed with a file containing json</para></listitem>
        <listitem><para>Memory - In-memory node (changes lost on Broker restart)</para></listitem>
      </itemizedlist>
    </para>
  </section>
  <section xml:id="Java-Broker-Management-Managing-Virtualhost-Nodes-Attributes">
    <title>Attributes</title>
    <para>
      <itemizedlist>
        <listitem>
          <para><emphasis>Name the virtualhost node</emphasis>.</para>
        </listitem>
        <listitem>
          <para><emphasis>Default Virtual Host Node</emphasis>. If true, messaging clients which do
            not specify a virtualhost name will be connected to the virtualhost beneath this node.</para>
        </listitem>
        <listitem>
          <para><emphasis>Store Path or JDBC URL.</emphasis> Refers the location used to store the
            configuration of the virtualhost.</para>
        </listitem>
        <listitem>
          <para><emphasis>Role</emphasis> (HA only). The role that this node is currently playing in
            the group. <itemizedlist>
              <listitem>
                <para>MASTER - Virtualhost node is a master.</para>
              </listitem>
              <listitem>
                <para>REPLICA - Virtualhost node is a replica.</para>
              </listitem>
              <listitem>
                <para>WAITING - Virtualhost node is awaiting an election result, or may be awaiting
                  more nodes to join in order that an election may be held.</para>
              </listitem>
              <listitem>
                <para>DETACHED - Virtualhost node is disconnected from the group.</para>
              </listitem>
            </itemizedlist></para>
        </listitem>
        <listitem>
          <para><emphasis>Priority</emphasis> (HA only). The priority of this node when elections
            occurs. The attribute can be used to make it more likely for a node to be elected than
            other nodes, or disallow the node from never being elected at all. See <xref linkend="Java-Broker-High-Availability-Behaviour-NodePriority"/></para>
        </listitem>
        <listitem>
          <para><emphasis>Minimum Number Of Nodes</emphasis> (HA only - groups of three or more).
            Allows the number of nodes required to hold an election to be reduced in order that
            service can be restore when less than quorum nodes are present. See <xref linkend="Java-Broker-High-Availability-Behaviour-MinimumNumberOfNodes"/></para>
        </listitem>
        <listitem>
          <para><emphasis>Allow this node to operate solo</emphasis> (HA only - groups of two). Allows a single
            node in a two node group to operate solo. See <xref linkend="Java-Broker-High-Availability-Behaviour-DesignatedPrimary"/></para>
        </listitem>
      </itemizedlist>
    </para>
  </section>
  <section xml:id="Java-Broker-Management-Managing-Virtualhost-Node-Children">
    <title>Children</title>
    <para>
      <itemizedlist>
        <listitem>
          <para>
            <link linkend="Java-Broker-Management-Managing-Virtualhosts">Virtualhost</link>
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="Java-Broker-Management-Managing-RemoteReplicationNodes">Remote
              Replication Nodes</link>
          </para>
        </listitem>
      </itemizedlist>
    </para>
  </section>
  <section xml:id="Java-Broker-Management-Managing-Virtualhost-Node-Lifecycle">
    <title>Lifecycle</title>
    <para>
      <itemizedlist>
        <listitem>
          <para><emphasis>Stop</emphasis>. Stops the virtualhost node. This closes any existing
            messaging connections to the virtualhost and prevents new ones. Any inflight
            transactions are rolled back. Non durable queues and exchanges are lost. Transient
            messages or persistent messages on non-durable queues are lost.</para>
          <para>When HA is in use, stopping the virtualhost node stops the virtualhost node from
            participating in the group. If the node was in the master role, the remaining nodes will
            try to conduct an election and elect a new master. If the node was in the replica role,
            the node will cease to keep up to date with later transactions. A stopped node does not
            vote in elections. Other nodes in the group will report the stopped node as
            unreachable.</para>
        </listitem>
        <listitem>
          <para><emphasis>Start</emphasis>. Activates the virtualhost node.</para>
        </listitem>
        <listitem>
          <para><emphasis>Delete</emphasis>. Deletes the virtualhost node and the virtualhost
            contained within it. All exchanges and queues, any the messages contained within it are
            removed. In the HA case, deleting the virtualhost node causes it be removed permanently
            from the group.</para>
        </listitem>
      </itemizedlist>
    </para>
  </section>
</section>
