<!-- saved from url=(0022)http://internet.e-mail -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="content-type" content="">
  <title>Axis2 administartion guide</title>
</head>

<body lang="en">
<h1 align="center">Axis2 Web Administration Guide</h1>

<p><i>Version 0.95</i></p>
<i>Feedback: <a
href="mailto:axis-dev@ws.apache.org">axis-dev@ws.apache.org</a></i>

<h3>Contents</h3>
<ul>
  <li><a href="#Intro">Introduction</a>
    <ul>
      <li><p><a href="#login">Login into Administration Site</a></p>
      </li>
    </ul>
  </li>
  <li><a href="#adminoptions">Administration Options</a>
    <ul>
      <li><p><a href="#tools">Tools</a></p>
        <ul>
          <li><a href="#upservice">Upload Service</a></li>
        </ul>
      </li>
      <li><p><a href="#syscomponents">System components</a></p>
        <ul>
          <li><a href="#heading1">Available services</a></li>
          <li><a href="#servgroups">Available service groups</a></li>
          <li><a href="#avmodules">Available modules</a></li>
          <li><a href="#globalmodules">Globally engaged modules</a></li>
          <li><a href="#phases">Available phases</a></li>
        </ul>
      </li>
      <li><p><a href="#executionchains">Execution chains</a></p>
        <ul>
          <li><a href="#globalchains">Global chains</a></li>
          <li><a href="#operationchains">Operation specific chains</a></li>
        </ul>
      </li>
      <li><p><a href="#engaginmodule">Engage module</a></p>
      </li>
      <li><a href="#services">Services</a>
        <ul>
          <li><a href="#turnoffservice">Inacivate Service</a></li>
          <li><a href="#turnonservice">Acivate Service</a></li>
          <li><a href="#editservicepara">Edit service parameters</a></li>
        </ul>
      </li>
      <li><p><a href="#context">Contexts</a></p>
        <ul>
          <li><a href="#viewhierarchy">View Hierarchy</a></li>
        </ul>
      </li>
    </ul>
  </li>
</ul>
<a name="Intro">
<h3>Introduction</h3>

<p>Axis2 Web Administration Module provides a way to configure Axis2
dynamically. It's important to note that this dynamic configuration will NOT
be persistent, i.e. if the servlet container is restarted then all the
dynamic configuration changes will be lost.</p>
<a name="login">
<h4>Login into Administration Site</h4>

<p>From <a href="#homepage">Axis2 Web Application Home page</a> you can go to
Administration page by following 'Administration' link, then login page shown
below will appear requesting user name and a password. The default user name
is 'admin' (without quotes) and default password is 'axis2' (without
quotes).</p>

<p align="center"><img alt="" src="images/adminlogin.jpg"></p>

<p>You can change the user name &amp; password values by changing following
two parameters in axis2.xml as required.</p>

<p align="center"><img alt="" src="images/parameters.jpg"></p>

<p>If the login is successful you will see the screen below. This is where
you can view the configuration and the state of the running system and
dynamically configure it.</p>

<p align="center"><img alt="" src="images/admin.jpg"></p>

    <a name="adminoptions"/>
<h3>Administration Options</h3>
<ul>
    <a name="tools"/>
  <b>Tools</b>
  <ul>
    <li><a href="#upservice">Upload Service</a></li>
  </ul>
    <a name="syscomponents"/>
  <b>System components</b>
  <ul>
    <li><a href="#heading1">Available services</a></li>
    <li><a href="#servgroups">Available service groups</a></li>
    <li><a href="#avmodules">Available modules</a></li>
    <li><a href="#globalmodules">Globally engaged modules</a></li>
    <li><a href="#phases">Available phases</a></li>
  </ul>
    <a name="executionchains"/>
  <b>Execution chains</b>
  <ul>
    <li><a href="#globalchains">Global chains</a></li>
    <li><a href="#operationchains">Operation specific chains</a></li>
  </ul>
  <b><a href="#engaginmodule">Engage module</a></b> <br/>
  <br/>
    <a name="services"/>
  <b>Services</b>
  <ul>
    <li><a href="#turnoffservice">Inactivate service</a></li>
   <li><a href="#turnonservice">Activate service</a></li>
    <li><a href="#editservicepara">Edit service parameters</a></li>
  </ul>
    <a name="context"/>
  <b>Contexts</b>
  <ul>
    <li><a href="#viewhierarchy">View Hierarchy</a></li>
  </ul>
</ul>

    <a name="homepage"/>
<h3>Axis2 Web Application Home Page</h3>

<p align="center"><strong><img alt="" src="images/clip_image006.jpg"></strong></p>

    <a name="upservice"/>
<h3>Upload Services</h3>

<p>You can upload packaged Axis2<em> </em>service archive files using this
page. This can be done in two simple steps:</p>
<ul>
  <li>Browse to the location and select the axisService archive file you wish
    to upload</li>
  <li>then click Upload</li>
</ul>

<p align="center"><img alt="" src="images/clip_image010.jpg"></p>

<a name="heading1"></a>
<h3>Available Services</h3>

<p>The functionality of the 'Available Services' option is almost same as the
functionality of Axis2 Web Application Home page 'Services' option where it
displays the list of deployed services. But as an additional feature, if
there are any modules engaged globally to services or operations those
details will also be displayed here.</p>

<p><strong>Faulty services</strong> of this system will also be listed on this page. Click on each faulty service, it will take you to a page that lists the exception stack trace of the excpetion that caused service to be faulty</p>

<p align="center"><img alt="" src="images/adminmain.jpg"></p>

<a name="servgroups"></a>
<h3>Available Service Groups</h3>

<p>Service group is a logical collection of set of services and 'Available
Service Groups' link will list all the available service groups in the system
.</p>

<p align="center"><img alt="" src="images/servicegroups.jpg"></p>

<a name="avmodules"></a>
<h3>Available Modules</h3>

<p>To view the available modules in the 'modules' directory of the
'repository' click 'Available Modules' link. This will show you all the
available modules in the system. Those modules can be engaged dynamically.</p>

<p align="center"><img alt="" src="images/modules.jpg"></p>
<br/>

<a name="globalmodules"></a>
<h3>Globally Engaged Modules</h3>

<p>From the 'Globally Engaged Modules' link you can view globally engaged
modules, if any. If a module was engaged globally then the handlers that
belong to that module will be executed irrespective of the service.</p>
<br/>

<a name="phases"></a>
<h3>Available Phases</h3>

<p>'Available Phases' link will display all the available phases. In Axis2
there are two levels of phases:</p>
<ul>
  <li>System predefined phases (not allowed to be changed)</li>
  <li>User defined phases</li>
</ul>

<p>The main difference between these two levels is that system predefined
phases will be invoked irrespective of the services, while user defined
phases will be invoked when the dispatcher finds the operation. Note that it
is essential for module developers and service writers to have a good
understanding of phases and phase ordering.</p>
<p align="center"><img alt="" src="images/viewphases.jpg"></p><br/>

<a name="globalchains"></a>
<h3>Global Chains</h3>

<p>'Global Chains' link will display all the Global Execution Chains. The
most interesting feature of Axis2 Web Administration Module is that it
provides a very basic way of viewing the global phase list and handlers
inside the phases depending on both phase and handler orders. This kind of
information is extremely useful in debugging the system, as there is no other
way to list out handlers in the global chains. If you engage a new module,
the new handlers will be added to the global chains and displayed on this
page.</p>

<p align="center"><img alt="" src="images/globalchain.jpg"></p>
<br/>

<a name="operationchains"></a>
<h3>Operation Specific Chains</h3>

<p>The 'Operation Specific Chains' link can be used to view the handlers
corresponding to a given service in the same order as it is in the real
execution chain.</p>

<p align="center"><img alt="" src="images/select_service_for_handler.jpg"></p><br/>

<p>Select service of which's service handlers you wish to view from list box, and click on 'View' button to view handlers. The page below shows service handlers of service <em>version</em></p>

<p align="center"><img alt="" src="images/serviceHandlers.jpg"></p>
<br/>

<a name="engaginmodule"></a>
<h3>Engaging Modules</h3>

<p>'Engaging Modules' link allows to engage modules either globally (to all
services), to a service group, to a service or to an operation depending on
the module implementation. If the module was designed to engage the handlers
globally then handlers in the module can be included in any phase in the
system. It can be either system predefined or user defined phase.</p>

<p>On the other hand, if the module was implemented in such a way that it is
going to be deployed to a service or to an operation, then the module cannot
be included in any of the <a href="#phases">System Predefined Phases</a>.
Thus it can only be included in <a href="#phases">User Defined Phases</a>.</p>

<p>Immediately after engaging the module you can see the status of engagement
indicating whether it is engaged properly or not.</p>

<p align="center"><img alt="" src="images/moduleengage.jpg"></p>

<p>&nbsp;</p>

<a name="turnoffservice"></a>
<h3>Inactivate Service</h3>

<p>This functionality provide a way to remove unnecessary services from the
running system, but the removal is transient which means if you restart the
system the service will be available.</p>

<p>To inactivate service, select service from list box, tick 'Inactivate service' check box, then click on 'Inactivate' button. 'Clear' button will clear the 'Inactivate service' check box</p>

<p align="center"><img alt="" src="images/inactivate.jpg"></p>
<br/>

<a name="turnonservice"></a><h3>Activate Service</h3>
<p>This functionality provide a way to activate services while the system is running, but the activation is transient which means if you restart the
system the service will be inactive.</p>

<p>To activate service, select service from list box, tick 'Activate service' check box, then click on 'Activate' button. 'Clear' button will clear the 'Activate service' check box</p>

<p align="center"><img alt="" src="images/activate.jpg"></p>
<br/>

<a name="editservicepara"></a>
<h3>Edit Service Parameters</h3>

<p>This functionality provide a way to change parameters in a service or its
operations.These changes will be transient too, which means if you restart
the system changes will not be reflected.</p>

<p>The Edit Parameters link under servies on navigation bar will link to page where you can select service to edit Parameters. Once service is selected click on 'Edit Parameters' button. This will lead to page below.</p>

<p align="center"><img alt="" src="images/editserviecpara.jpg"></p>

<a name="viewhierarchy"></a>
<h3>View Hierarchy</h3>

<p>By listing current context hierarchy 'View Hierarchy' link provides a
means to look at the run time system. This will list out all the available
service group contexts , service contexts , operation context and etc.</p>

<p></p>
</body>
</html>
