Troubleshooting FME Server - How To
From fmepedia
(http://fmepedia.com/index.php/Category:FME_Server)
| Table of contents |
Is FME Server Running?
Three things need to be started for the FME Server to accept Service requests.
1. FMEServer Service
The FME Server Service actually starts two other processes the FME Engines, and the FME Transformation Manager. If an FME Engine fails to start this is most likely due to not having a valid license. To install a license for an FME Engine browse to: <FMEServerDir>\Server\fme\fme_reg.exe
Once you have installed your license you will need to restart FME Server to allow the FME Engines to start and register with the server. Any queued jobs will now get done although the FME Server client will not necessarily receive a response.
2. Servlet Engine/Web Container
The servlet engine deploys the various FME Server Services as servlets. Some servlet engines may require that your manually deploy the various FME Server .war files. These are the .war files included in the FME Server installation:
- fmedatadownload.war
- fmedatastreaming.war
- fmekmllink.war
- fmeogc.war
- fmeserver.war
- fmeserver-admin.war
- fmesoap.war
- SpatialDirect.war
3. Web Server (if separate from your servlet engine)
Why did my Workspace Fail?
If a workspace you have authored to the FME Server fails to run, it helps to break down the problem following these steps:
1. Run the workspace in FME Workbench
Ensure the workspace runs in the FME Workbench authoring environment. If not, this is not an FME Server issue but an FME issue. There are many resources for resolving FME workbench issues including; the FME log, the online Help, the fmePedia.com website, the Google Group FMETalk and support@safe.com.
2. Ensure the Source Data is Accessible to the FME Server
Any file based data must be accessible to the FME Server. This can be done in a number of ways:
- Use UNC paths that the FME Server has access to
- Use mapped drives that the FME Server has access to
- Upload the source data when publishing the workspace. Authoring workspaces which use database source data is easier to deal with but again, the FME Server machine (and the user running the FME Server) must have access to the database.
3. Run the Workspace in FME Server (using the job submitter service)
Access the workspace using the Web UI by navigating to Home -> Job Submitter/<repository>/<workspace>.fmw Click on your workspace and then click the run button If the workspace failed to run there may be a Reason shown in red at the top of the results page. You can get more details by clicking on Log File button at the bottom of the page. If the FME log is not present or does not yield a useful explanation, we may need to delve into the FME Server log files. These log files are explained in more detail below.
4. Run the Workspace in FME Server using a Service
Assuming all of the above steps were successful try running the workspace through the Web UI but via the Services tab, and using the service your workspace is intended for. Running the workspace this way adds another layer to the processing as the request is being handled by a servlet. If the workspace fails to run here we will need to look at the appropriate log file which is covered in the next slide.
Using the Log Files
The FME Server gives us a number of log files to help track requests and performance and to help break down an issue. All of the log files can be found within the directory <FMEServer Install Dir>\logs, or within subdirectories of this log directory. It is often useful to follow the details of translation job using the log files. A job will show up in each log as it is passed from a service, to the FME Server, to an FME Engine, and the result is returned back to service. Below is a description of each type of log file.
Service Logs
Each FME Server service creates its own log file within a sub-directory in the FME Server logs directory*. These logs show us a request received by the service, the command line sent to the FME Server API, and result returned to the service by the FME Server. For example the Data Download service will create a log file here: <FMEServerDir>\Logs\datadownload\datadownload.log The Web UI itself has its own sub-directory here: <FMEServerDir>\Logs\webui.
It is not completely true that there is log file sub-directory for each service. In fact the sub-directories correspond to sub-sections in the fmeServerConfig.txt file. There is generally a sub-section for each service, but this may not necessarily be the case.
Process Monitor Log
A new copy of the processMonitor log is created in the FME Server logs directory each time the FME Server is started. This log file helps us see that all of the FME Server components were started and if any components needed re-start at any time. If an FME Engine failed to start we would see this in the processMonitor log file along with an error message. A licensing issue with an FME Engine would show up in this log. Also, all FME Server translation jobs (i.e. workspace jobs) are shown in this log as they are passed to an FME Engine and as they are completed.
FME Server log
Also created each time the FME Server is started, this log is used to store messages created by the transformation manager and the repository manager. Jobs submitted to the queue, taken by an FME Engine and completed are shown in this log.
If we need to know the job_id of a specific job in the queue we can find it in the fmeServer log
FME Engine Log
Each FME Engine will create an FME Engine log file and the file shows all of the sub-sections the FME Serer is running with. Each FME command (e.g. workspace job), is logged to the FME Engine log along with the details of any pre and post command included in the sub-section. This log helps us see the actual FME command line run and the sub-section used when running this command.
FME Translation Log
Most of us are familiar with FME logs and these are created by the FME Server as well. If we simply run a workspace using the Web UI under the Job Submitter service, the FME logs are available by clicking on the Log File button after a translation is run. Although we can use this link, it is helpful to know where the FME logs are being written for all FME Server translations.
The FME Server in its default configuration will over-ride the log file location specified in the workspace and will instead use a location specified in the fmeServerConfig.txt file. Each service has its own sub-directory in the FME Server logs directory and the FME logs will be placed here. For example, if you run a workspace using the Data Download service, the FME log can be found here: <FMEServerDir>\Logs\datadownload The Web UI itself has its own sub-directory here <FMEServerDir>\Logs\webui.
