<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<meta name="copyright" content="Copyright (c) 2000, 2011 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: IBM Corporation - initial API and implementation" />
<meta name="DC.rights.owner" content="(C) Copyright 2000, 2011" />
<meta content="public" name="security" />
<meta content="index,follow" name="Robots" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta content="reference" name="DC.Type" />
<meta name="DC.Title" content="Servers view" />
<meta name="abstract" content="The Servers view (similar to the one shown below) allows you to manage the servers. This view displays a list of all your servers and projects that are associated with that server. A project displays under a server when a project from the workbench is added to the server. You can use this view to start, start in debug mode, restart, or stop the servers. In addition, you can use the Servers view to determine the current status and state of the server; and the projects added to the server from the workbench." />
<meta name="description" content="The Servers view (similar to the one shown below) allows you to manage the servers. This view displays a list of all your servers and projects that are associated with that server. A project displays under a server when a project from the workbench is added to the server. You can use this view to start, start in debug mode, restart, or stop the servers. In addition, you can use the Servers view to determine the current status and state of the server; and the projects added to the server from the workbench." />
<meta content="servers, managing using the Servers view, views, overview" name="DC.subject" />
<meta content="servers, managing using the Servers view, views, overview" name="keywords" />
<meta scheme="URI" name="DC.Relation" content="../topics/tdecor.html" />
<meta content="XHTML" name="DC.Format" />
<meta content="rwrcview_wst" name="DC.Identifier" />
<meta content="en-us" name="DC.Language" />
<link href="../../org.eclipse.wst.doc.user/common.css" type="text/css" rel="stylesheet" />
<title>Servers view</title>
</head>
<body id="rwrcview_wst"><a name="rwrcview_wst"><!-- --></a>


<h1 class="topictitle1">Servers view</h1>



<div><p><span id="rwrcview_ph1"><a name="rwrcview_ph1"><!-- --></a>The Servers view (similar to the
one shown below) allows you to manage the servers. This view displays
a list of all your servers and projects that are associated with that
server. A project displays under a server when a project from the
workbench is added to the server. You can use this view to start,
start in debug mode,</span><span id="rwrcview_ph2"><a name="rwrcview_ph2"><!-- --></a> restart, or stop the
servers. In addition, you can use the Servers view to determine the
current status and state of the server; and the projects added to
the server from the workbench.</span></p>

<div class="section"><p> <img src="../images/scpview.gif" alt="This is a screen capture of the&#10;Server view." /> </p>
<p id="rwrcview_wst__rwrcview_p2"><a name="rwrcview_wst__rwrcview_p2"><!-- --></a>Use the Servers
view to perform the following tasks:</p>
<ul>
<li id="rwrcview_wst__rwrcview_li1"><a name="rwrcview_wst__rwrcview_li1"><!-- --></a>Create a server</li>

<li id="rwrcview_wst__rwrcview_li2"><a name="rwrcview_wst__rwrcview_li2"><!-- --></a>Edit a server</li>

<li id="rwrcview_wst__rwrcview_li3"><a name="rwrcview_wst__rwrcview_li3"><!-- --></a>Delete a server</li>

<li id="rwrcview_wst__rwrcview_li4"><a name="rwrcview_wst__rwrcview_li4"><!-- --></a>Start a server in debug mode</li>

<li id="rwrcview_wst__rwrcview_li5"><a name="rwrcview_wst__rwrcview_li5"><!-- --></a>Start a server </li>

<li id="rwrcview_wst__rwrcview_li6"><a name="rwrcview_wst__rwrcview_li6"><!-- --></a>Restart a server in debug mode</li>

<li id="rwrcview_wst__rwrcview_li7"><a name="rwrcview_wst__rwrcview_li7"><!-- --></a>Restart a server</li>

<li id="rwrcview_wst__rwrcview_li8"><a name="rwrcview_wst__rwrcview_li8"><!-- --></a>Stop a server</li>

<li id="rwrcview_wst__rwrcview_li10"><a name="rwrcview_wst__rwrcview_li10"><!-- --></a>Publish your application</li>

<li id="rwrcview_wst__rwrcview_li11"><a name="rwrcview_wst__rwrcview_li11"><!-- --></a>Monitor server ports</li>

<li id="rwrcview_wst__rwrcview_li11b"><a name="rwrcview_wst__rwrcview_li11b"><!-- --></a>Displaying or hiding the metadata of the server
from the workbench</li>

<li id="rwrcview_wst__rwrcview_li12"><a name="rwrcview_wst__rwrcview_li12"><!-- --></a>Add and remove projects from a server</li>

</ul>
</div>

<div class="section"><h4 class="sectiontitle">Server State</h4><p id="rwrcview_wst__rwrcview_rwrcview_section_server_state_p1"><a name="rwrcview_wst__rwrcview_rwrcview_section_server_state_p1"><!-- --></a>The Servers view displays
the current state of all the servers.</p>
<p id="rwrcview_wst__rwrcview_rwrcview_section_server_state_p2"><a name="rwrcview_wst__rwrcview_rwrcview_section_server_state_p2"><!-- --></a>The following table
lists the possible states of the server:</p>

<div class="tablenoborder"><table summary="" cellspacing="0" cellpadding="4" frame="border" border="1" rules="all"><caption>Table 1. Description of the
server states</caption>
<thead align="left">
<tr>
<th valign="top" id="N1010B"> Server state</th>

<th valign="top" id="N10112"> Description of state </th>

</tr>

</thead>

<tbody>
<tr id="rwrcview_wst__rwrcview_section_server_state_starting">
<td valign="top" headers="N1010B "><span>Starting</span></td>

<td valign="top" headers="N10112 ">The workbench is in the process of connecting to the server
and is beginning the server process.<div class="tip"><span class="tiptitle">Tip:</span> Verify the actual
server is started.</div>
</td>

</tr>

<tr id="rwrcview_wst__rwrcview_section_server_state_started">
<td valign="top" headers="N1010B ">Started</td>

<td valign="top" headers="N10112 ">The workbench is successfully connected
to the server. Both the workbench and server are ready to run applications
on the server.</td>

</tr>

<tr id="rwrcview_wst__rwrcview_section_server_state_debugging">
<td valign="top" headers="N1010B ">Debugging</td>

<td valign="top" headers="N10112 ">The workbench is successfully connected to the server. Both
the workbench and server are ready to diagnose applications on the
server.</td>

</tr>

<tr id="rwrcview_wst__rwrcview_section_server_state_stopping">
<td valign="top" headers="N1010B ">Stopping</td>

<td valign="top" headers="N10112 ">The workbench is in the process of connecting to the server
and is ending the process on the server.</td>

</tr>

<tr id="rwrcview_wst__rwrcview_section_server_state_stopped">
<td valign="top" headers="N1010B ">Stopped</td>

<td valign="top" headers="N10112 "><span id="rwrcview_wst__rwrcview_section_server_state_stopped_description"><a name="rwrcview_wst__rwrcview_section_server_state_stopped_description"><!-- --></a>The
server process has ended. Or the workbench is unable to connect to
the server.</span></td>

</tr>

</tbody>

</table>
</div>
</div>

<div class="section" id="rwrcview_wst__rwrcview_section_server_status"><a name="rwrcview_wst__rwrcview_section_server_status"><!-- --></a><h4 class="sectiontitle">Server Status</h4><p>The
Servers view also displays the current status of all the servers.
Depending on the state of the server and the preference options that
are selected for that particular server, the workbench determines
the server actions that may be taken. Use the status as an indicator
for possible actions that you may want to take.</p>
<p>The following
table lists the possible server status:</p>

<div class="tablenoborder"><table summary="" cellspacing="0" cellpadding="4" frame="border" border="1" rules="all"><caption>Table 2. Description
of the server status</caption>
<thead align="left">
<tr>
<th valign="top" id="N101D4"> Server status </th>

<th valign="top" id="N101DB"> Description of status </th>

</tr>

</thead>

<tbody>
<tr>
<td valign="top" headers="N101D4 ">Synchronized</td>

<td valign="top" headers="N101DB ">Both the server and the applications are in synch.</td>

</tr>

<tr>
<td valign="top" headers="N101D4 ">Publishing</td>

<td valign="top" headers="N101DB ">Files (projects and resource files) are
copied to the correct location for the server to find and use them.</td>

</tr>

<tr>
<td valign="top" headers="N101D4 ">Restart</td>

<td valign="top" headers="N101DB ">The server needs to be restarted in order for the changes to
take place.</td>

</tr>

<tr>
<td valign="top" headers="N101D4 ">Republish</td>

<td valign="top" headers="N101DB ">Either the server or the applications or both have changed.
The changed files need to be updated on the server.</td>

</tr>

<tr>
<td valign="top" headers="N101D4 ">Restart and republish</td>

<td valign="top" headers="N101DB ">Either the server or the applications or both have changed.
When the server is restarted, the changed files are also republished.</td>

</tr>

</tbody>

</table>
</div>
</div>

<div class="section" id="rwrcview_wst__rwrcview_section_project_state"><a name="rwrcview_wst__rwrcview_section_project_state"><!-- --></a><h4 class="sectiontitle">Project State</h4><p>The
Servers view might display the current state of the application is
either started or stopped. When the Servers view does not display
a current state for the project, the workbench cannot retrieve the
state of the project from the server or the server does not support
this function.</p>
<p>If a project name appears in italic font style,
this means the project has not yet been uploaded to the server. After
the project is published into the server, the project name switches
to the typical font style used in the Servers view.</p>
<div class="p">The following
table lists the possible states of the project:
<div class="tablenoborder"><table summary="" cellspacing="0" cellpadding="4" frame="border" border="1" rules="all"><caption>Table 3. Description
of project states</caption>
<thead align="left">
<tr>
<th valign="top" id="N1028D"> Project states </th>

<th valign="top" id="N10294"> Description of states </th>

</tr>

</thead>

<tbody>
<tr>
<td valign="top" headers="N1028D ">Started</td>

<td valign="top" headers="N10294 ">The application on the server is ready to run on the server.</td>

</tr>

<tr>
<td valign="top" headers="N1028D ">Stopped</td>

<td valign="top" headers="N10294 ">The application on the server is ended and
is not taking server requests to run.</td>

</tr>

</tbody>

</table>
</div>
</div>
</div>

<div class="section" id="rwrcview_wst__rwrcview_section_project_status"><a name="rwrcview_wst__rwrcview_section_project_status"><!-- --></a><h4 class="sectiontitle">Project Status</h4><p>The
Servers view might display the current status of the application is
either synchronized or republished. When the Servers view does not
display a current status for the project, the workbench cannot retrieve
the status of the project from the server, the server is stopped or
the server does not support this function.</p>
<p id="rwrcview_wst__rwrcview_p3a"><a name="rwrcview_wst__rwrcview_p3a"><!-- --></a>The
following table lists the possible project status:</p>

<div class="tablenoborder"><table summary="" cellspacing="0" cellpadding="4" frame="border" border="1" rules="all"><caption>Table 4. Description
of project status</caption>
<thead align="left">
<tr>
<th valign="top" id="N10306"> Project status </th>

<th valign="top" id="N1030D"> Description of status </th>

</tr>

</thead>

<tbody>
<tr>
<td valign="top" headers="N10306 ">Synchronized</td>

<td valign="top" headers="N1030D ">Both copies of the application files on the server and in the
workbench are matching.</td>

</tr>

<tr>
<td valign="top" headers="N10306 ">Republished</td>

<td valign="top" headers="N1030D ">The copy of the application files on the
workbench has changed and does not match the copy on the server. The
server needs to be updated.</td>

</tr>

</tbody>

</table>
</div>
</div>

</div>

<div><div class="reltasks"><strong>Related tasks</strong><br />
<div><a href="../topics/tdecor.html" title="When the Server State Decorator is enabled, the workbench shows in the Servers view label decorations that indicate the state and status of the server and its projects. If the Servers view does not display a current state or status for the project, the workbench cannot retrieve this detail from the server, the server is stopped, or the server does not support this function.">Showing the state and status in the Servers view</a></div>
</div>
</div>

</body>
</html>