<?xml version="1.0" encoding="utf-8"?>
<!--

 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 id="Java-Broker-Configuring-And-Managing-Web-Console">
    <title>Web Console</title>
    <para>If web management is enabled (see <xref linkend="Java-Broker-Configuring-And-Managing-Config-Files-Web-Management"/>) the web management console can be accessed from web browser using URL http(s)://&lt;hostname&gt;:&lt;port&gt;/management, where</para>
    <itemizedlist>
        <listitem><para><emphasis>hostname</emphasis> is the broker host</para></listitem>
        <listitem><para><emphasis>port</emphasis> is the broker port(either http or https)</para></listitem>
    </itemizedlist>
    <para>The page like following is displayed on navigation to the management URL.</para>
    <figure>
      <title>Web management Console</title>
      <graphic fileref="images/Management-Web-Console.png"/>
    </figure>
</section>
