You are here: Reference Manual > FME Server Configuration Files > processMonitorConfigCore.txt

processMonitorConfigCore.txt

#########################################
# Process Monitor Config File Parameters.
#########################################
#
# The Process Monitor program is started from the command line and takes one argument.
# This argument is the pathname of the configuration parameter file.
#
# Configuration parameters are used to set various operating characteristics
# of the Process Monitor. Values for these parameters are read in from this file
# when the Process Monitor is started. This configuration parameter file is an
# ASCII text file containing one parameter assignment on each line. Each
# assignment consists of a parameter name followed by an equal-sign followed
# by the parameter's value.
#
# For example, the line:
#
# NODE_ADMIN_PORT=7501
#
# assigns the "NODE_ADMIN_PORT" parameter a value of "7501".
#
# The Process Monitor is case-sensitive to parameter names. Blank lines and lines
# beginning with the "#" character are treated as comments and are ignored.
#
# Changes to any parameter value in this file will take effect only upon
# subsequent restart of the Process Monitor.
#
# The following parameters must be present in the config file and named exactly
# as shown:
#
#--------------------------------------
# Log File
#--------------------------------------
#
# LOG_CONFIG_PATH - The folder path that contains the log file configuration.
#
# LOG_FILE_NAME - The path name of the message log file.
#
#--------------------------------------
# Failover
#--------------------------------------
#
# FAILOVER_ENGINE_AUTOCONNECT - false by default. If false and Engine fails to connect to the Core,
# the Engine will reconnect to the Core as defined on startup. If true,
# the Engine will automatically attempt to reconnect to the "active" host
# in a failover configuration.
#
#--------------------------------------
# Node Management
#--------------------------------------
#
# NODE_ADMIN_PORT - TCP/IP port number on which to listen for requests
#
# NODE_NAME - The name used by this FME Server node to identify itself. If no value is assigned, the node takes
# the host name of the system on which it is running.
#
# NODE_DESCRIPTION - The string used by this FME Server node to describe itself. If no value is assigned, the node's
# description is the empty string.
#
# NODE_HOST - The host name of the system on which it is running.
#
# NODE_ENGINE_ADMIN_PORT - The Engine administration port used to manage ENGINE processes.
#
# NODE_OVERWRITE - If "true" then process configurations specified in this file will always overwrite those
# already specified in the database. If "false" or missing, the process configurations will
# only be added when the node hasn't already been added part of deployment.
#
# FME Engines can be added or removed from nodes. New Engine process configurations are defined by
# Engine templates which specify the START, STOP and PARAMS commands.
#
# TEMPLATE_START_ENGINE=<startcommand>
# TEMPLATE_STOP_ENGINE=<stopcommand>
# TEMPLATE_PARAMS_ENGINE=<optionalparams>
#
# To prevent duplications, process configurations may reference Engine template start commands as
# macros by wrapping parameters with ! characters.
#
# For example:
# START_ENGINE_Engine1=!TEMPLATE_START_ENGINE!
# STOP_ENGINE_Engine1=!TEMPLATE_STOP_ENGINE!
# PARAMS_ENGINE_Engine1=!TEMPLATE_PARAMS_ENGINE!
#
# Process Configuration
# ---------------------
#
# The next parameters are those that define the actual commands that the Process Monitor should
# start in a separate process and monitor. The format for these command parameters is:
#
# START_<processtype>_<processname>=<startcommand>
# STOP_<processtype>_<processname>=<stopcommand>
# PARAMS_<processtype>_<processname>=[log=<boolean>]|[attempts=<integer>]|[norestart=<integer>]|[wait=<integer>]|[continual=<integer>]
#
# Where <processtype> has one of the following syntaxes:
#
# ENGINE - An FME Engine process
# SYSTEM - A FME System process
#
# Where <procesname> is the unique name of the process.
#
# Here is an example START command:
#
# START_ENGINE_Engine1=/FMEServer/Server/fme/fme.exe REGISTER_SOCKET JIM 7070
#
# When the Process Monitor encounters this parameter, it starts a new FME Engine process, runs the
# command string in the process and monitors the process for termination.
# If/when the process terminates, the Process Monitor creates another process and re-runs the same command
# string again. The Process Monitor continues this behaviour until it reaches its restart attempt limit.
#
# STOP
#
# Each process START command can have an optional STOP parameter defining a
# custom stop command which will be run to shut down the process.
# For example:
#
# START_SYSTEM_Core=...
# STOP_SYSTEM_Core=...
#
# PARAMS
#
# Each process START command can also have an optional parameters. Parameters are delimited by |.
# For example:
#
# PARAMS_SYSTEM_Core=log=true|attempts=20|wait=0|continual=60
#
# Optional Parameters:
#
# "log"
#
# If "true" the process output generated by the command will be logged to the message log file. If "false",
# its process output is not logged to the log file. If missing, SYSTEM processes will default to "false"
# while ENGINE processes will default to "true".
#
# When process output is logged, each output line will be prefixed by the command's <processname> string.
# This helps to identify which process command generated each output line.
#
#
# For example the following would explicitly enable process output logging for this ENGINE configuration
# and the resulting outlines from this process would be prefixed by "Engine1":
#
# START_ENGINE_Engine1=/FMEServer/Server/fme/fme.exe REGISTER_SOCKET JIM 7070
# PARAMS_ENGINE_Engine1=log=true
#
# "norestart"
#
# The status value returned to the Process Monitor by the monitored process when the latter
# terminates. If a start command string specifies a value for this parameter, then
# if the monitored process terminates and returns the specified status value to
# the Process Monitor, the latter WILL NOT restart the terminated process. If
# this parameter is absent, or it is present but the terminating process
# returns a status value different from the specified value, the Process Monitor
# WILL restart the terminated process. If this parameter value is present but specifies an
# invalid integer value, the Process Monitor ignores any return values from the process.
#
# "attempts"
#
# The number of times the Process Monitor will attempt to start the process to be monitored. If the maximum
# value is reached the Process Monitor will give up attempting to start the process. If this flag
# is absent or is present and specifies a value <= 0, the process will have no limit to the number of
# times it is restarted. If this suffix flag is present and specifies an invalid integer value then
# the default start attempt limit value of 20 is used.
#
# Here is an example start command line using the "norestart" parameter (specifying a return status value of 27),
# the "log" parameter and the "attempts" parameter described above:
#
# START_ENGINE_Engine1=/FMEServer/Server/fme/fme REGISTER_SOCKET JIM 7070
# PARAMS_ENGINE_Engine1=log=true|norestart=27|attempts=20
#
# "continual"
#
# The number of seconds the Process Monitor will wait before attempting to start the process to be monitored.
# If this suffix flag is present and specified a value >= 0, the process will be restarted continually with
# a delay of <n> seconds between restart attempts. If this suffix flag is absent or is present and specifies
# a value <= -1, the process will not be continually restarted. Note: The delay to <n> seconds will start at
# 1 second and increase 1 second with each delay till it reaches a delay of <n> seconds upon which it will
# continue to have a delay of <n> seconds.
#
# "wait"
#
# For each process the Process Monitor interprets the wait period specified by
# the "wait" parameter in one of two ways:
#
# 1) Monitor Port Directive is Present
#
# If the -MONITOR_PORT directive is present in the process START command line,
# the wait period represents the maximum number of seconds the Process Monitor
# will wait for the monitored process to signal (via the monitor port) that it has
# successfully started.
#
# If the signal is received before the wait period expires, the Process Monitor
# immediately proceeds to start the next process.
#
# If the signal has not been received by the time the wait period expires, the
# Process Monitor stops waiting at that point and proceeds to start the next
# process.
#
# If the process fails to start after reaching its startup attempt limit
# (as specified by the "attempts" suffix flag), the Process Monitor
# immediately proceeds to start the next process, even if the wait period
# has not yet expired.
#
# To cause the Process Monitor to wait indefinitely for the start signal, specify
# a WAIT value of zero.
#
#
# 2) Monitor Port Directive is Absent
#
# If the -MONITOR_PORT directive is absent from the process START command line,
# the wait period represents the number of seconds the Process Monitor waits before
# continuing on to start the next process.
#
# If the process fails to start after reaching its startup attempt limit
# (as specified by the "attempts" suffix flag), the Process Monitor
# immediately proceeds to start the next process, even if the wait period
# has not yet expired.
#
# Specifying a waut value of zero causes the Process Monitor to immediately start
# the next process without waiting.
#
#
# In both of the above cases 1) and 2), if no "wait" parameter is specified for a
# process, the Process Monitor uses the default time value (in seconds) of zero.
#
# Processes that support the optional "MONITOR_PORT" directive" can include the
# following in their START command:
#
# -MONITOR_PORT <portNum>
#
# This directive specifies the TCP/IP port on which the Process Monitor listens for a
# startup completed message from the process. Upon successful startup completion the process
# should connect to this port and send the message string "STARTED". No further communication occurs.
#
# If the directive specifies a <portNum> value of zero then a free port number is dynamically
# determined by the Process Monitor at runtime. This is the usual case. If the <portNum> value is specified as
# non-zero and positive then that literal port number is used.
#
# If the process does not implement the monitor port capability then the
# directive should be omitted from the command string.
#
#--------------------------------------------------------------------------
FME_INCLUDE_FILE={SAFE{serverDir}}/fmeCommonConfig.txt
 
#--------------------------------------------------------------------------
# Log File
#--------------------------------------------------------------------------
LOG_CONFIG_PATH={SAFE{serverDir}}/config/logger/core
LOG_FILE_NAME={SAFE{logPrefix}}fmeprocessmonitorcore.log
 
#--------------------------------------------------------------------------
# Admin
#--------------------------------------------------------------------------
NODE_ADMIN_PORT={SAFE{processMonitorAdminPortCore}}
 
# Start FME Server Notifier
{SAFE{serverComment}}START_SYSTEM_Notifier="{SAFE{notifierJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.library.path="{SAFE{fmeUtilPath}}" -Djava.security.manager -Djava.security.policy="{SAFE{serverDir}}/security/fmeserver.policy" -Djava.security.auth.login.config="{SAFE{serverDir}}/security/fmeserver.config" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx512m COM.safe.fmeserver.FMEServerNotifier "{SAFE{serverDir}}/fmeServerConfig.txt" -MONITOR_PORT 0
{SAFE{serverComment}}STOP_SYSTEM_Notifier="{SAFE{notifierJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true COM.safe.fmeserver.FMEServerShutdownAgent -fmeServerHost {SAFE{fmeserverHostnameLocal}} -fmeServerAdminPort {SAFE{notifierRequestPort}}
 
# Start Connection
{SAFE{serverComment}}START_SYSTEM_Connection="{SAFE{connectionJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.library.path="{SAFE{fmeUtilPath}}" -Djava.security.manager -Djava.security.policy="{SAFE{serverDir}}/security/fmeserver.policy" -Djava.security.auth.login.config="{SAFE{serverDir}}/security/fmeserver.config" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx1024m COM.safe.fmeserver.FMEServerConnection "{SAFE{serverDir}}/fmeServerConfig.txt"
{SAFE{serverComment}}STOP_SYSTEM_Connection="{SAFE{connectionJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true COM.safe.fmeserver.FMEServerShutdownAgent -fmeServerHost {SAFE{fmeserverHostnameLocal}} -fmeServerAdminPort {SAFE{connectionRequestPort}}
 
# Start FME Server Core
{SAFE{serverComment}}START_SYSTEM_Core="{SAFE{serverJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.library.path="{SAFE{fmeUtilPath}}" -Djava.security.manager -Djava.security.policy="{SAFE{serverDir}}/security/fmeserver.policy" -Djava.security.auth.login.config="{SAFE{serverDir}}/security/fmeserver.config" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx1024m COM.safe.fmeserver.FMEServer "{SAFE{serverDir}}/fmeServerConfig.txt" -MONITOR_PORT 0
{SAFE{serverComment}}STOP_SYSTEM_Core="{SAFE{serverJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true COM.safe.fmeserver.FMEServerShutdownAgent -fmeServerHost {SAFE{fmeserverHostnameLocal}} -fmeServerAdminPort {SAFE{fmeserverRequestPort}}
 
# Start FME Server Scheduler
{SAFE{serverComment}}START_SYSTEM_Scheduler="{SAFE{schedulerJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.library.path="{SAFE{fmeUtilPath}}" -Djava.security.manager -Djava.security.policy="{SAFE{serverDir}}/security/fmeserver.policy" -Djava.security.auth.login.config="{SAFE{serverDir}}/security/fmeserver.config" -Djava.net.preferIPv4Stack=true -Dorg.quartz.scheduler.skipUpdateCheck=true -Xms32m -Xmx512m COM.safe.fmeserver.FMEServerScheduler "{SAFE{serverDir}}/fmeServerConfig.txt"
{SAFE{serverComment}}STOP_SYSTEM_Scheduler="{SAFE{schedulerJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true COM.safe.fmeserver.FMEServerShutdownAgent -fmeServerHost {SAFE{fmeserverHostnameLocal}} -fmeServerAdminPort {SAFE{schedulerPort}}
 
# Start FME Server WebSocket
{SAFE{websocketComment}}{SAFE{serverComment}}START_SYSTEM_WebSocket="{SAFE{websocketJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.security.manager -Djava.security.policy="{SAFE{serverDir}}/security/fmeserver.policy" -Djava.security.auth.login.config="{SAFE{serverDir}}/security/fmeserver.config" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx512m COM.safe.fmeserver.FMEServerWebSocket "{SAFE{serverDir}}/fmeWebSocketConfig.txt"
 
# Start FME Server Shared Resource
{SAFE{serverComment}}START_SYSTEM_SharedResource="{SAFE{mountpointJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.library.path="{SAFE{fmeUtilPath}}" -Djava.security.manager -Djava.security.policy="{SAFE{serverDir}}/security/fmeserver.policy" -Djava.security.auth.login.config="{SAFE{serverDir}}/security/fmeserver.config" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx512m COM.safe.fmeserver.FMEServerSharedResource "{SAFE{serverDir}}/fmeServerConfig.txt"
{SAFE{serverComment}}STOP_SYSTEM_SharedResource="{SAFE{mountpointJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true COM.safe.fmeserver.FMEServerShutdownAgent -fmeServerHost {SAFE{fmeserverHostnameLocal}} -fmeServerAdminPort {SAFE{mountpointRequestPort}}
 
## Subscribers processes require the following naming convention Subscriber_<protocol>
# Start FME Server Subscriber Plugin (email)
{SAFE{serverComment}}START_SYSTEM_Subscriber_email="{SAFE{subscriberJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.notification.plugin.FMESubscriberPluginEmail "{SAFE{serverDir}}/config/subscribers/email.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Subscriber_email=norestart=0
 
# Start FME Server Subscriber Plugin (logger)
{SAFE{serverComment}}START_SYSTEM_Subscriber_logger="{SAFE{subscriberJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.notification.plugin.FMESubscriberPluginLogger "{SAFE{serverDir}}/config/subscribers/logger.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Subscriber_logger=norestart=0
 
# Start FME Server Subscriber Plugin (push)
{SAFE{serverComment}}START_SYSTEM_Subscriber_push="{SAFE{subscriberJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.notification.plugin.FMESubscriberPluginPush "{SAFE{serverDir}}/config/subscribers/push.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Subscriber_push=norestart=0
 
# Start FME Server Subscriber Plugin (apns)
{SAFE{serverComment}}START_SYSTEM_Subscriber_apns="{SAFE{subscriberJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.notification.plugin.FMESubscriberPluginAPNS "{SAFE{serverDir}}/config/subscribers/apns.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Subscriber_apns=norestart=0
 
# Start FME Server Subscriber Plugin (dropbox)
{SAFE{serverComment}}START_SYSTEM_Subscriber_dropbox="{SAFE{subscriberJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.notification.plugin.FMESubscriberPluginDropbox "{SAFE{serverDir}}/config/subscribers/dropbox.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Subscriber_dropbox=norestart=0
 
# Start FME Server Subscriber Plugin (ftp)
{SAFE{serverComment}}START_SYSTEM_Subscriber_ftp="{SAFE{subscriberJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.notification.plugin.FMESubscriberPluginFTP "{SAFE{serverDir}}/config/subscribers/ftp.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Subscriber_ftp=norestart=0
 
# Start FME Server Subscriber Plugin (gcm)
{SAFE{serverComment}}START_SYSTEM_Subscriber_gcm="{SAFE{subscriberJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.notification.plugin.FMESubscriberPluginGCM "{SAFE{serverDir}}/config/subscribers/gcm.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Subscriber_gcm=norestart=0
 
# Start FME Server Subscriber Plugin (jms)
{SAFE{serverComment}}START_SYSTEM_Subscriber_jms="{SAFE{subscriberJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotesJms}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.notification.plugin.FMESubscriberPluginJMS "{SAFE{serverDir}}/config/subscribers/jms.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Subscriber_jms=norestart=0
 
# Start FME Server Subscriber Plugin (sns)
{SAFE{serverComment}}START_SYSTEM_Subscriber_sns="{SAFE{subscriberJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.notification.plugin.FMESubscriberPluginSNS "{SAFE{serverDir}}/config/subscribers/sns.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Subscriber_sns=norestart=0
 
# Start FME Server Subscriber Plugin (websocket)
{SAFE{serverComment}}START_SYSTEM_Subscriber_websocket="{SAFE{subscriberJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.notification.plugin.FMESubscriberPluginWebSocket "{SAFE{serverDir}}/config/subscribers/websocket.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Subscriber_websocket=norestart=0
 
# Start FME Server Subscriber Plugin (sftp)
{SAFE{serverComment}}START_SYSTEM_Subscriber_sftp="{SAFE{subscriberJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.notification.plugin.FMESubscriberPluginSFTP "{SAFE{serverDir}}/config/subscribers/sftp.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Subscriber_sftp=norestart=0
 
# Start FME Server Subscriber Plugin (s3)
{SAFE{serverComment}}START_SYSTEM_Subscriber_s3="{SAFE{subscriberJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.notification.plugin.FMESubscriberPluginS3 "{SAFE{serverDir}}/config/subscribers/s3.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Subscriber_s3=norestart=0
 
# Start FME Server Subscriber Plugin (sqs)
{SAFE{serverComment}}START_SYSTEM_Subscriber_sqs="{SAFE{subscriberJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.notification.plugin.FMESubscriberPluginSQS "{SAFE{serverDir}}/config/subscribers/sqs.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Subscriber_sqs=norestart=0
 
# Start FME Server Subscriber Plugin (workspace)
{SAFE{serverComment}}START_SYSTEM_Subscriber_workspace="{SAFE{subscriberJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.notification.plugin.FMESubscriberPluginWorkspace "{SAFE{serverDir}}/config/subscribers/workspace.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Subscriber_workspace=norestart=0
 
# Start FME Server Relayer
{SAFE{serverComment}}START_SYSTEM_Relayer="{SAFE{relayerJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.library.path="{SAFE{fmeUtilPath}}" -Djava.security.manager -Djava.security.policy="{SAFE{serverDir}}/security/fmeserver.policy" -Djava.security.auth.login.config="{SAFE{serverDir}}/security/fmeserver.config" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx512m COM.safe.fmeserver.FMEServerRelayer "{SAFE{serverDir}}/fmeServerConfig.txt" -MONITOR_PORT 0
{SAFE{serverComment}}STOP_SYSTEM_Relayer="{SAFE{relayerJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true COM.safe.fmeserver.FMEServerShutdownAgent -fmeServerHost {SAFE{fmeserverHostnameLocal}} -fmeServerAdminPort {SAFE{relayerRequestPort}}
 
## Publishers processes require the following naming convention Publisher_<protocol>
# Start FME Server Publisher Plugin (email)
{SAFE{serverComment}}START_SYSTEM_Publisher_email="{SAFE{publisherJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.relay.plugin.FMEPublisherPluginEmail "{SAFE{serverDir}}/config/publishers/email.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Publisher_email=norestart=0
 
# Start FME Server Publisher Plugin (udp)
{SAFE{serverComment}}START_SYSTEM_Publisher_udp="{SAFE{publisherJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.relay.plugin.FMEPublisherPluginUDP "{SAFE{serverDir}}/config/publishers/udp.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Publisher_udp=norestart=0
 
# Start FME Server Publisher Plugin (jms)
{SAFE{serverComment}}START_SYSTEM_Publisher_jms="{SAFE{publisherJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotesJms}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.relay.plugin.FMEPublisherPluginJMS "{SAFE{serverDir}}/config/publishers/jms.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Publisher_jms=norestart=0
 
# Start FME Server Publisher Plugin (websocket)
{SAFE{serverComment}}START_SYSTEM_Publisher_websocket="{SAFE{publisherJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotesJms}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.relay.plugin.FMEPublisherPluginWebSocket "{SAFE{serverDir}}/config/publishers/websocket.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Publisher_websocket=norestart=0
 
# Start FME Server Publisher Plugin (sns)
{SAFE{serverComment}}START_SYSTEM_Publisher_sns="{SAFE{publisherJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.relay.plugin.FMEPublisherPluginSNS "{SAFE{serverDir}}/config/publishers/sns.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Publisher_sns=norestart=0
 
# Start FME Server Publisher Plugin (dirwatch)
{SAFE{serverComment}}START_SYSTEM_Publisher_dirwatch="{SAFE{publisherJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.relay.plugin.FMEPublisherPluginDirWatch "{SAFE{serverDir}}/config/publishers/dirwatch.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Publisher_dirwatch=norestart=0
 
# Start FME Server Publisher Plugin (ftpwatch)
{SAFE{serverComment}}START_SYSTEM_Publisher_ftpwatch="{SAFE{publisherJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.relay.plugin.FMEPublisherPluginFTPWatch "{SAFE{serverDir}}/config/publishers/ftpwatch.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Publisher_ftpwatch=norestart=0
 
# Start FME Server Publisher Plugin (dropboxwatch)
{SAFE{serverComment}}START_SYSTEM_Publisher_dropboxwatch="{SAFE{publisherJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.relay.plugin.FMEPublisherPluginDropboxWatch "{SAFE{serverDir}}/config/publishers/dropboxwatch.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Publisher_dropboxwatch=norestart=0
 
# Start FME Server Publisher Plugin (sqs)
{SAFE{serverComment}}START_SYSTEM_Publisher_sqs="{SAFE{publisherJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.relay.plugin.FMEPublisherPluginSQS "{SAFE{serverDir}}/config/publishers/sqs.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Publisher_sqs=norestart=0
 
# Start FME Server Publisher Plugin (imap)
{SAFE{serverComment}}START_SYSTEM_Publisher_imap="{SAFE{publisherJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.relay.plugin.FMEPublisherPluginIMAP "{SAFE{serverDir}}/config/publishers/imap.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Publisher_imap=norestart=0
 
# Start FME Server Publisher Plugin (s3watch)
{SAFE{serverComment}}START_SYSTEM_Publisher_s3watch="{SAFE{publisherJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx256m COM.safe.fmeserver.relay.plugin.FMEPublisherPluginS3Watch "{SAFE{serverDir}}/config/publishers/s3watch.properties"
{SAFE{serverComment}}PARAMS_SYSTEM_Publisher_s3watch=norestart=0
 
# Start FME Server Configuration
{SAFE{serverComment}}START_SYSTEM_Configuration="{SAFE{fmeConfigJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.library.path="{SAFE{fmeUtilPath}}" -Djava.security.manager -Djava.security.policy="{SAFE{serverDir}}/security/fmeserver.policy" -Djava.security.auth.login.config="{SAFE{serverDir}}/security/fmeserver.config" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx1024m COM.safe.fmeserver.FMEServerConfiguration "{SAFE{serverDir}}/fmeServerConfig.txt"
{SAFE{serverComment}}STOP_SYSTEM_Configuration="{SAFE{fmeConfigJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true COM.safe.fmeserver.FMEServerShutdownAgent -fmeServerHost {SAFE{fmeserverHostnameLocal}} -fmeServerAdminPort {SAFE{fmeConfigRequestPort}}
 
# Start FME Server Cleanup
{SAFE{cleanupComment}}{SAFE{serverComment}}START_SYSTEM_Cleanup="{SAFE{fmeCleanupJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.library.path="{SAFE{fmeUtilPath}}" -Djava.security.manager -Djava.security.policy="{SAFE{serverDir}}/security/fmeserver.policy" -Djava.security.auth.login.config="{SAFE{serverDir}}/security/fmeserver.config" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx512m COM.safe.fmeserver.FMEServerCleanup "{SAFE{serverDir}}/fmeServerConfig.txt"
{SAFE{cleanupComment}}{SAFE{serverComment}}STOP_SYSTEM_Cleanup="{SAFE{fmeCleanupJava}}" -FMESERVER_CLASSPATH "{SAFE{classpathNoQuotes}}" -Djava.net.preferIPv4Stack=true COM.safe.fmeserver.FMEServerShutdownAgent -fmeServerHost {SAFE{fmeserverHostnameLocal}} -fmeServerAdminPort {SAFE{fmeCleanupRequestPort}}