<?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-Virtualhosts">
  <title>VirtualHosts</title>
  <para>A virtualhost is a independent namespace in which messaging is performed. Virtualhosts are
    responsible for the storage of message data.</para>
  <para>Virtualhosts can only be managed by the HTTP management channel.</para>
  <section xml:id="Java-Broker-Management-Managing-Virtualhosts-Types">
    <title>Types</title>
    <para>The following virtualhost types are supported. <itemizedlist>
        <listitem>
          <para>BDB - Virtualhost backed with Oracle Berkeley DB JE</para>
        </listitem>
        <listitem>
          <para>BDB HA - Virtualhost backed with Oracle BDB utilising High Availability</para>
        </listitem>
        <listitem>
          <para>DERBY - Virtualhost backed with Apache Derby</para>
        </listitem>
        <listitem>
          <para>JDBC - Virtualhost 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>Memory - In-memory node (changes lost on Broker restart)</para>
        </listitem>
        <listitem>
          <para>Provided - Virtualhost that co-locates message data within the parent virtualhost
            node <footnote>
              <para>Not available if Virtualhost Node type is JSON.</para>
            </footnote>.</para>
        </listitem>
      </itemizedlist>
    </para>
  </section>
  <section xml:id="Java-Broker-Management-Managing-Virtualhost-Context">
    <title>Context</title>
    <para>
      <itemizedlist>
        <listitem>
          <para><emphasis>use_async_message_store_recovery</emphasis> Controls the <link linkend="Java-Broker-Runtime-Background-Recovery">background recovery</link>
            feature.</para>
        </listitem>
      </itemizedlist>
    </para>
  </section>
  <section xml:id="Java-Broker-Management-Managing-Virtualhost-Attributes">
    <title>Attributes</title>
    <para>
      <itemizedlist>
        <listitem>
          <para><emphasis>Name the virtualhost</emphasis>. This is the name the messaging clients
            refer to when forming a connection to the Broker.</para>
        </listitem>
        <listitem>
          <para><emphasis>Store Path/JDBC URL</emphasis>. Refers the file system location or
            database URL used to store the message data.</para>
        </listitem>
        <listitem>
          <para><emphasis>Store overflow/underflow</emphasis>. Some virtualhosts have the ability to
            limit the of the cumulative size of all the messages contained within the store. This
            feature is described in detail <xref linkend="Java-Broker-Runtime-Disk-Space-Management"/>.</para>
        </listitem>
        <listitem>
          <para><emphasis>Connection thread pool size</emphasis>. Number of worker threads
            used to perform messaging with connected clients.  </para>
          <para>Defaults to 64 or double the maximum number of available processors, whichever
            is the larger.</para>
        </listitem>
        <listitem>
          <para><emphasis>Number of selectors</emphasis>. Number of worker threads
            used from the thread pool to dispatch I/O activity to the worker threads.</para>
          <para>Defaults to one eighth of the thread pool size. Minimum 1.</para>
        </listitem>
        <listitem>
          <para><emphasis>Store transaction timeouts</emphasis>. Warns of long running producer
            transactions. See <xref linkend="Java-Broker-Runtime-Transaction-Timeout"/></para>
        </listitem>
        <listitem>
          <para><emphasis>Synchronization policy</emphasis>. HA only. See <xref linkend="Java-Broker-High-Availability-Behaviour-SynchronizationPolicy"/></para>
        </listitem>
      </itemizedlist>
    </para>
  </section>
  <section xml:id="Java-Broker-Management-Managing-Virtualhost-Children">
    <title>Children</title>
    <para>
      <itemizedlist>
        <listitem>
          <para>
            <link linkend="Java-Broker-Management-Managing-Exchanges">Exchange</link>
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="Java-Broker-Management-Managing-Queues">Queue</link>
          </para>
        </listitem>
      </itemizedlist>
    </para>
  </section>
  <section xml:id="Java-Broker-Management-Managing-Virtualhost-Lifecycle">
    <title>Lifecycle</title>
    <para>
      <itemizedlist>
        <listitem>
          <para><emphasis>Stop</emphasis>. Stops the virtualhost. This closes any existing messaging
            connections to the virtualhost and prevents new ones. Any inflight transactions are
            rolled back. Non durable queues and non durable exchanges are lost. Transient messages
            or persistent messages on non-durable queues are lost.</para>
        </listitem>
        <listitem>
          <para><emphasis>Start</emphasis>. Activates the virtualhost.</para>
        </listitem>
      </itemizedlist>
    </para>
  </section>
</section>
