Tools - Manage Services

The Manage Services dialog appears when a Manifold 9 Server license has been installed.    Manifold Universal edition and Manifold Professional edition licenses do not have the Manage Services dialog.

 

Manifold Server, called Server for short, is a read-only, parallel, spatial database server that also includes an HTTP web server and map server.  Server can run in two types of modes:

 

 

Server Services

Manifold 9 Server edition allows launching Manifold Server instances as Windows services using the Tools - Manage Services dialog.  That is a lot easier than launching Server from a Command Prompt window, although if desired, Server can also be launched using a command line in the Command Prompt window when running a Manifold 9 Server license. 

 

To use the Manage Services dialog,  a Manifold Server license must be installed for all users.   If the license is not installed for all users, it will not be possible to run new services from the dialog.  Check that setting in the Help - About dialog to verify that the license has been installed for all users.

 

Watch the new 10 Minute Tutorial - Manage Services video to see the Manage Services dialog in action.  Note that the dialog uses beta software in which the Manage Services dialog appeared in Universal edition.  Current builds require a Manifold Server edition license to use the Manage Services dialog.

Getting Ready

Although the Manage Services dialog can be launched by any user, to launch or to modify Server services Manifold must be launched with administrator privileges.   An additional requirement is that the license must be activated for whatever user accounts are used to launch Server instances as Windows services.   The easiest way to ensure that is to install the license for all users.

 

Get ready with the following two steps:

 

 

 

 

The above trick to configure Windows Firewall is a hackish approach, because we will have to launch Server again at least once from the Command Prompt if we use a different .exe to launch Server, for example, if we download and use a newer Manifold version.     It is also possible that a new Windows update will reset Windows Firewall settings so we will have to again launch Server at least once from the Command Prompt.   See also the procedure (easy) in the Manifold Server topic for adding Server as an exception to Windows Defender Firewall.

 

A regular Manifold interactive session launched with administrator privileges (right-click and choose Run as administrator) is used to control Server instances when run as Windows services.   Launch Manifold interactively to get access to the Tools - Manage Services dialog that allows adding, starting, stopping, and otherwise managing Server instances running as services.

 

Getting Server Ready

 

  1. Launch Manifold with administrator privileges (right-click and choose Run as administrator).
  2. Activate for all users.
  3. If Manifold has already been activated,  choose Help - About, to verify that the license has been installed for all users.
  4. Verify that the License for all users readout reports Installed.
  5. If it does not report Installed, press the Install button to install the license for all users.
  6. Open a Command Prompt window and launch Server from a command line.  Use any .map file with default options.
  7. When Server launches, if Windows Firewall raises a dialog, press the Allow access button.
  8. Close the Command Prompt window to shut down that Server instance.

 

The above procedure need be done only once for a new Server installation, to verify that the license has been installed for all users, and to allow access through Windows Firewall.  If the Manifold installation is updated, launch Server again from a Command Prompt window to once again configure Windows Firewall.    Or, learn how to use Windows Firewall to open the ports that will be used for any Manifold Server installation.

Operating the Manage Services Dialog

The Manage Services dialog provides a simple user interface for managing Server when it is running as Windows services.  It is easier to use than Microsoft dialogs for managing Windows services.

 

The toolbar operates on selected rows.  To run or to stop a service, Ctrl-click it to select it.   The Manage Services dialog uses the same selection moves used by all Manifold dialogs with grids:

 

Ctrl-click a row to toggle selection for that row.   Ctrl-click selects an unselected row, and deselects a selected row.

 

Ctrl-A selects all rows.  

 

Shift-Ctrl-A deselects all rows.

 

Ctrl-I inverts the selection, deselecting those rows that were selected and selecting those rows that were not selected.

 

 

Add a Server instance running as a Windows service:

 

  1. In the main menu, choose Tools - Manage Services.
  2. In the Manage Services dialog, press the Add button in the toolbar.
  3. In the Service dialog, press the [...] browse button and choose the .map file for Server to use.
  4. Choose a different address and port if the defaults are not desired.
  5. Enter any desired options in the Options box as they would be written in a command line, for example, choosing either -type:tcp to run as a TCP server or -type:http to run as an HTTP server.
  6. Press OK.
  7. Back in the Manage Services dialog, Ctrl-click the row just added to select it.
  8. Press the Start button in the toolbar to start running the service.
  9. If desired, press the Refresh button in the toolbar to see the process ID assigned.
  10. Press the Close button to close the Manage Services dialog

 

If the service fails to start running and fails to get a process ID when we press the Start button and then press the Refresh button, that indicates we failed to install the Manifold Server license for all users.   If the license is not installed for all users, it will not be possible to run new services from the dialog.  To fix that, visit the Help - About dialog and install the license for all users.

 

Delete a Server instance running as a Windows service:

 

  1. In the main menu, choose Tools - Manage Services.
  2. In the Manage Services dialog, Ctrl-click the row for the service to be deleted, to select it.
  3. Press the Stop button in the toolbar to stop the selected service.
  4. Press the Refresh button in the toolbar to verify the service has been stopped.
  5. Press the Delete button in the toolbar to delete the selected service.
  6. Press the Close button to close the Manage Services dialog

 

 

Modify a Server instance running as a Windows service:

 

  1. In the main menu, choose Tools - Manage Services.
  2. In the Manage Services dialog, Ctrl-click the row for the service to be modified, to select it.
  3. Press the Stop button in the toolbar to stop the selected service.
  4. Press the Refresh button in the toolbar to verify the service has been stopped.
  5. Double-click the service to open it in the Services dialog.
  6. Make desired modifications and press OK.
  7. Back in the Manage Services dialog, press the Start button in the toolbar to run the service again.
  8. Press the Close button to close the Manage Services dialog

 

The general rule is to first stop a running service, make modifications and then start it again.  When a service is running, making any modifications or deleting the service will only take effect after it is stopped or, if it is not stopped, after a system reboot.

 

Services in Windows run independent of the user interface.  When running, they continue running after we log out or if another user logs in.  That independence when running applies to commands such as to delete or to modify a service while it is running.   

 

If a Server service is running and in the Manage Services dialog we select it and then press the Delete button, it will continue running even though it is now marked for deletion in the services database.   The next time the service is stopped, it will be deleted.  That can happen either when we Stop the service in the Manage Services dialog, or when the system reboots.   Likewise, if we use the Manage Services dialog to modify a running Server service, by double-clicking the service and editing it, those changes will take effect only when the service is stopped.

 

That may seem like a counter-intuitive way to manage services, but that is how they work in Windows, and for good reason.  For example, suppose a Windows service that is running has control of system resources and cannot be stopped?   The way to delete it in that case is to mark it for deletion so when the system reboots the service is deleted without it ever having the chance to start running.

 

If that seems confusing, the way to avoid confusion is to always apply the general rule: first stop a running service, make modifications and then start it again.   Server is well behaved as a service, so we can always stop it in the Manage Services dialog to make whatever change we want.

 

Controls

Add

Add a new instance of Server as a service.  Launches the Services dialog.

 Delete

Mark the selected services for deletion when they are stopped or on the next reboot.  Enabled when one or more rows in the dialog have been selected.

Start

Start the selected services.   Enabled when one or more rows in the dialog for stopped services have been selected.   

 Stop

Stop the selected services.   Enabled when one or more rows in the dialog for running services have been selected.   

 Refresh

Refresh the dialog showing the latest status of services, including process ID for any running services.

(services list)

A list of services, showing the following information:

 

  • Name of the service.
  • Path to the served file.
  • Network address and port.
  • Start type on reboot (auto, manual, or disabled).
  • Status (starting, running, paused, stopping, stopped).
  • Process ID - displayed  for a new service when running, after a refresh.

 

Ctrl-click

Ctrl-click a row to select it.  Selected rows are shown in red selection color.

Double-click

Double-click a row to launch the Services dialog for the double-clicked service, to make any edits in the service, except that the name of the service cannot be changed.  If the service is running, any changes made will apply after the service is stopped or on the next reboot.

Close

Close the dialog without launching the join operation.

Services Dialog

Pressing the Add button to add a new service or double-clicking an existing service will launch the Services dialog.

 

 

 Name

A name for this server instance.  Can only be specified when adding a new service.  Double-clicking an existing service to edit that service in the Service dialog does not allow changing the name.

Executable

The Server executable file to be used for this server instance. By default, the manifoldsrv.exe file that is found in the same folder from which the Manifold manifold.exe session in use was launched.

Data

The Manifold .map file to be served by this Server instance.

Address

Network interface to listen on.  Default: primary network interface

Port

Port to listen on. Default: 9099  For convenience, the default port number will automatically increment for each additional service added.

Start

Start type for this service on computer system reboot:

 

  • auto - The default.  This service will automatically start in the current status when the computer system is rebooted.  For example, if the process is running, when the computer system is rebooted the service will start running on reboot.  If the process has been stopped, on reboot the service will remain stopped.  See the Automatic Restarts section below.

 

  • manual - The service will always be stopped on reboot, requiring a manual start to be running after reboot.

 

  • disabled - The service will not be available on reboot.  To start it running, the Services dialog will have to be used to change the Start state to either auto or manual and then the service can be started.

 

Options

Enter any desired options in command line form.  Options are listed in the Options section of the Manifold Server topic.

OK

Save changes and close the dialog.

Cancel

Close the dialog without saving any changes.

Automatic Restarts

Normally the auto setting will cause the service to restart after the computer system is rebooted.  If we use the Windows Services app to look at the services running in our machine, choosing auto will specify a Startup Type of Automatic.   However, in some cases depending on the type of machine, the Windows OS in use, and the various startup programs and services specified the Server service might not automatically restart.  Server is small and very fast to launch, so what can happen is that the service attempts to restart before all Windows system prerequisites have been started. If that happens the Server service restart will fail.

 

If that happens, open the Windows Services app, scroll down to the Manifold Server service that should be running, and double-click into the Startup Type cell for that service.  In the properties dialog that pops up, change the Startup type from Automatic to Automatic (Delayed Start).  Press OK to apply the change and exit the properties dialog.  Choosing Automatic (Delayed Start) will delay the start of the service for up to a minute or two to give time for the computer system to fully restart with all Windows system prerequisites fully started. The Manifold Server service will be restarted after the slight delay.  

 

After using the Windows Services app to manually change the startup type to Automatic (Delayed Start) if we look at the service using the Tools - Manage Services dialog in Manifold it will still be listed using auto for the Start type.  That is because both Automatic and Automatic (Delayed Start) within Windows are both "automatic" as a services startup setting, with the delayed start version using a different setting in the registry for how that automatic startup should behave.  To avoid compatibility issues with different Windows versions the Tools - Manage Services dialog keeps things simple and only specifies the startup type using Windows services flags without messing around with registry edits.  Therefore, if we encounter the relatively rare case of a machine on which a delayed start is required, we must use the Windows Services app to manually specify Automatic (Delayed Start).

Example: Add a Server Service running a TCP Server

Launch the Manage Services dialog by choosing Tools - Manage Services.

 

 

Press the Add button.

 

That launches the Service dialog that configures the new service to be added.

 

 

Press the browse button for the Data box, and then choose the .map file that will provide data to this Server instance.

 

 

Add any Options desired, using command line options.  For running a TCP server we do not need to enter a -type:tcp option, since a TCP server is the default.  

 

If we wanted to add an HTTP server to serve a map, we would enter -type:http and also choose 80 as the port.  We also would enter a -component: option giving the name of the component in the project that is to be served, for example, -component:"Cities and Provinces of Mexico"

 

Press OK.   A new service appears in the Manage Services dialog's list.

 

 

Ctrl-click the new service to select it.

 

 

Press the Start button to start the service running.

 

 

The service is now running.  If desired, see the process ID by pressing the Refresh button.

 

If the service fails to start running and fails to get a process ID when we press the Start button and then press the Refresh button, that indicates we failed to install the Manifold Server license for all users.   If the license is not installed for all users, it will not be possible to run new services from the dialog.  To fix that, visit the Help - About dialog and install the license for all users.

 

We can now close the dialog.   The service is now running and will continue to run even if we close Manifold and even if we log off.  If we restart the computer system, the service will automatically start running again on system reboot.

 

If sometime in the future we no longer want the service to run, we launch Manifold as administrator again, launch the Tools - Manage Services dialog, select the service we no longer want by Ctrl-clicking it, and then press the Stop button.  That will stop the service.  If we want to remove the service, we can then press the Delete button.

 

Notes

MUST install for all users -  Have we mentioned that to use the Manage Services dialog,  a Manifold Server license must be installed for all users?  If the license is not installed for all users, it will not be possible to run new services from the dialog. Check that setting in the Help - About dialog to verify that the license has been installed for all users.

 

Non-routable IP addresses - The examples in this documentation use non-routable IP addresses beginning with 192....  Such IP addresses may be visible on your local network, but they cannot be visited across Internet.  When connecting to Server through the Internet, either for sharing data using the TCP server or for publishing maps using the HTTP server, the computer should have a static IP address that is routable (visible over Internet), like 20.81.111.85, and the Server instances that are launched should use that IP address.

 

See Also

Manifold Server

 

Server: Share Data

 

Server: Publish Web Maps

 

Favorite Data Sources

 

File - Create - New Data Source

 

Command Window