<?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-Runtime-Background-Recovery">
  <title>Background Recovery</title>
  <para>On startup of the Broker, or restart of a Virtualhost, the Broker restores all durable
    queues and their messages from disk. In the Broker's default mode the Virtualhosts do not become
    active until this recovery process completes. If queues have a large number of entries, this may
    take considerable time. During this time no messaging can be performed.</para>
  <para>The Broker has a background recovery feature allows the system to return to operation
    sooner. If enabled the recovery process takes place in the background allow producers and
    consumers to begin work earlier.</para>
  <para>The feature respects the message delivery order requirements of standard queues, that is any
    messages arriving whilst the background recovery is in flight won't overtake older messages
    still to be recovered from disk. There is an exception for the out of order queue types whilst
    background recovery is in flight. For instance, with priority queues older lower priority
    messages may be delivered before newer, higher priority.</para>
  <para>To activate the feature, set a <link linkend="Java-Broker-Management-Managing-Entities-General">context variable</link>
    <literal>use_async_message_store_recovery</literal> at the desired Virtualhost, or at Broker or
    higher to enable the feature broker-wide.</para>
  <note>
    <para>The background recovery feature does not write operational log messages to indicate its
      progress. This means messages <link linkend="Java-Broker-Appendix-Operation-Logging-Message-MST-1004">MST-1004</link> and <link linkend="Java-Broker-Appendix-Operation-Logging-Message-MST-1005">MST-1005</link> will not
      be seen.</para>
  </note>
</section>
