<?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>
<!-- /*******************************************************************************
 * Copyright (c) 2000, 2005 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
 *******************************************************************************/ -->
<link rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.css" />
<title>Deleting a server</title>
</head>
<body onresize="location.reload();" id="twdelins_wst"><a name="twdelins_wst"><!-- --></a>
<h1 class="topictitle1">Deleting a server</h1>
<div><div>You may delete a server from the Servers view.</div><div class="section">To delete a server:</div>
<ol><li class="stepexpand"><span>In the Servers view, right-click on the server that you want to
delete.</span></li>
<li class="stepexpand"><span>Select  <strong>Delete</strong>. </span> The Delete Server Resources
dialog box opens.</li>
<li class="stepexpand"><span>Select the <span class="uicontrol">OK</span> button if you want to delete
the server.</span></li>
</ol>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="../topics/tcreate.html" title="">Creating, editing, and deleting servers</a></div>
</div>
</div>
</body>
</html>