Fulfillment Server Commands

This appendix covers the following topics:

Fulfillment Server Startup Script Parameters

Topics include:

Fulfillment Server Commands

This section describes the commands used to operate a Fulfillment Server when it is running. If the engine.CommandPromptEnabledparameter is set to true, then you can enter the command at the same command prompt from which you started the Fulfillment Server.

The following table lists and describes the Fulfillment Server commands.

Command Description
flush logs Force the log buffers to write to disk.
help Display all of the valid commands for the Fulfillment Server.
kill Stop the server. To restart the server, run the server startup script.
list error <n> List a specific entry in the error log. The parameter n can be a single number, a range of numbers, or the word count to list the number of entries in the log.
list events <n> List a specific entry in the event log. The parameter n can be a single number, a range, or the word count to list the number of entries in the log.
mstat Print statistics about the Fulfillment Server monitors.
pstat Print statistics about the Fulfillment Server processes.
restart Stop and automatically restart the Fulfillment Server.
start Start a stopped Fulfillment Server.
stat Print statistics about the Fulfillment Server.
stop Pause Fulfillment Server processing. To resume processing, use the start command.
tstat Print statistics about the java thread activity in the Fulfillment Server.

Required Flags

The flags listed in the following table are the only flags required to run a Fulfillment Server. The server will not start without them.

Flag Description
engine.AOLJ.config Specifies the full-path connection of the dbc file that the server uses to get connections to the database.
engine.MaxBatchThreads Specifies the number of java threads to be used by the server for Multithreaded Fulfillment.
The fulfillment server divides the request lines within each mass request into batches. This parameter is used to specify the number of worker threads that can run in parallel to process request lines per batch.
For example, if a request has 500 lines and is divided into 5 batches each of 100 lines each. The engine.MaxBatchThreads parameter specifies the number of worker threads (default 12) that can run in parallel to process the 100 lines. If this parameter is not defined in the jtffmctl.sh script then the default number of java threads is 4.
The number of worker threads running in parallel impacts the number of SMTP connections and database connections made per batch. Hence based on available resources, you can decide up to what level you want to scale your application.
engine.ServerID Identifies the Fulfillment Server as referenced in the database. With the server id, the Fulfillment Server can get all configuration from the database without the need for optional flags.
engine.ServerInstanceID Numeric identifier for the server process. Auto config specifies a unique value for this flag.
engine.TurnOffLowPriorityMonitor Specifies if Bounceback processing Monitor and the Interaction History Monitor should be started on the current server node.

Optional Flags

The following flags are optional. Certain flags, such as the logging flags, can degrade the performance of the server. Other flags can improve the performance of the server.

Note: Fulfillment Server flags are added or deprecated from time to time, so that this list may change.

Flag Description
email.PrefersMultipartAlternative Specifies that the server is to allow a text-only alternative for the DATA or QUERY content that is sent by email. Default is 'false'.
email.TextOnly Specifies that the server is to send out text-only email instead of the HTML-based email that it sends out for it's DATA or QUERY contents. Default is 'false'.
engine.CommandPort Specifies the numeric port id, on the servers' hardware, that the server will listen to for receipt of remote commands. The only other way to send a command to the server is by the command prompt from which it was started (see engine.CommandPromptEnabled). Default is to not have command port defined.
engine.CommandPromptEnabled Specifies that server is to be able to receive commands by the command prompt from which it was started. This flag is useless when running the process in background on UNIX or as a service on Windows NT. For those types of servers, the flag engine.CommandPrompt should be used. The default value for this flag is 'true'.
engine.ErrorLog Specifies the name of the log used by the server to log errors. The default is 'Errors.log'. Also see 'engine.LogPath' and 'engine.LogLevel'.
engine.EventLog Specifies the name of the log used by the server to log events. The default is 'Events.log'. Also see 'engine.LogPath'.
engine.FaxEnabler Indicates the class that the Fulfillment Server is to use for sending faxes. This class must implement the 'oracle.apps.jtf.fm.engine.disp.FaxEnabler' interface to be used as a FaxEnabler. Also see 'engine.PrintEnabler'. No Default value.
engine.LogLevel Indicates the level of detail that will be written to the error log (see engine.ErrorLog). For each number from 1-n the server will write an extra layer of chained exception traces to the errors log. The exceptions are chained together so that the source of the errors as they occur can be traced.
engine.LogPath Specifies the directory path where Fulfillment Server logging occurs. The default if this flag is not set is to use 'engine.ServerPath' or 'logs' under the directory from which the server is started if that is also not set.
engine.LogRequests A Boolean flag that indicates that the original XML-based request pulled from and Advanced Queue by the server is to be written to disk. The requests will be saved as an XML file in the form of #####.xml where '#####' is the request id. The requests will be saved in a directory called 'requests' under the log path. Also see 'engine.LogPath' and 'engine.LogDispatches'. Default is 'false'.
engine.PrintEnabler Indicates the class that the Fulfillment Server is to use for sending print jobs to the printer. This class must implement the 'oracle.apps.jtf.fm.engine.disp.PrintEnabler' interface to be used as a PrintEnabler. Also see 'engine.FaxEnabler'.
engine.RefreshRate Indicates the amount of time, in milliseconds, between processor refreshes. This is when the servers' processor checks the status of all sub-processes to make sure they are functioning correctly.
engine.ResultSetWarningLimit Indicates how large of a ResetSet can be returned from a database query, before a warning will be logged to the Fulfillment Servers error log. This is to warn the server administrator that in case of an OutOfMemoryError, it might have been caused by the size of the Result Set. *This is not so much a problem in the newer versions of the Fulfillment Server. Also see 'log.ShowWarnings'. Default is '100'.
db.ExitOnFailure Specifies that the Fulfillment Server is to shutdown when the database becomes unavailable. Default is 'false'.
history.NoContents Indicates the Fulfillment Server is not to write Content Level History. This is detailed information about the processing and delivery of Fulfillment Content. This flag should be used when content history is not needed but a performance boost is. Also see 'history.NoInteractions'. Default is 'false'
history.NoInteractions Indicates the Fulfillment Server is not to write Interaction History. This is detailed information about the interaction between the agent and parties addressed in the Fulfillment request. This flag should be used when Interaction History is not needed but a performance boost is. Also see 'history.NoContents'. Default is 'false'.
pkg.ident Specifies the Fulfillment Server should write class file versions of the Fulfillment Server to the events log. *This only works when the oracle.apps.jtf.fm.FulfillmentServer class is used to start the Fulfillment Server instead of oracle.apps.jtf.fm.engine.Processor. Default is 'false'.
pkg.showmissing Works with the 'pkg.ident' flag and specifies the Fulfillment Server note missing class files in the events log. This is useful when wrapping an older version of the Fulfillment Server with the FulfillmentServer class. *This only works when the oracle.apps.jtf.fm.FulfillmentServer class is used to start the Fulfillment Server instead of oracle.apps.jtf.fm.engine.Processor. Also see 'pkg.ident'. Default is 'false'.
log.ShowWarnings Indicates that warnings are to be logged to the error log. By default, warnings do not show up in the error log. If this flag is not set, then the first time a warning appears, a, one time only, message shows up in the events log signifying that a warning had been issued. Default is 'false'.
smtp.port Overrides the default port '25' for email sent to an SMTP email server.
smtp.server Overrides the default SMTP server that is set using the Fulfillment Administration Console.

Debug Flags

The Fulfillment Server can be debugged, at runtime, through the use of a debug flag in the Fulfillment Server startup script or on the command line. The debug information is written to the Fulfillment Server events log, with debug=log, or to Central Logging in the database. In some cases, through use of third-party debugging (for example, Java Mail API), debug information is written to the console.

Note: Oracle advises that you do not try to use debug flags to improve server performance. Using any of these flags reduces the performance of the server by the time it takes for the debug sections to run. In most cases, debug information is either written to the Events log or it is written to the command prompt.

The correct syntax for this flag is

-Ddebug=<flag>[,<flag>], 

For example,

-Ddebug=email,request,content, query

This comma-separated list allows for individually setting the debug flags listed in the following table.

Flag Description
full Turns on all debug flags, including 'log' which disables Central Logging.
off Turns off all debugging.
content Causes request content, as downloaded from the database, to be written to local disk on which the server is running. The directory is called 'contents' and can be found under the log directory.
email Causes details of the delivery of email to be printed to the Events log and to the console. (Not all information printed to the console is recorded in the Events log.)
fax Debug the delivery of faxes.
history Debug the writing of Fulfillment Request History, Fulfillment Content History and Interaction History.
log Debug the creation of local disk log files. This flag disables the use of Central Logging.
monitor Debug the operations of the Fulfillment Server's internal monitors. All vital internal processes of the server are handled by these monitors.
print Debug the sending of print jobs.
processor Debug the functions of the server main thread.
query Debug queries executed by the server. These are written to the Events log.
request Debug requests that are processed by the server. Details of the request are written to the Events log.
header Debug extended headers. Each is written as part of the email header for email sent by the server. Additional details of the request are written to the header such as request id, party_id, and so on.
jdbc Debug JDBC calls made by the server. JDBC is how Java communicates with the database.
fault Debug the functioning of the server's fault monitor. This provides details of request fault detection and handling.
mass Debug the processing of Mass Requests.
failure Debug failures that occur as a normal part of processing a request. The failure is written to the Error log to record a stack trace from where the failure originated. This skews the actual error count because an exception is created to track the stack trace of the failure.
merge Debug the parsing of merge fields and insertion of bind variables within dynamic request content (Master Documents and email subject field).
queue Debug the reading and writing to Advanced Queues (AQ). The XML-based requests and responses are written to the Events log.
bind Debug the use of bind data associated with content of a fulfillment request.
labels Debug PDF labels requests.

Additional Java Flags

The standard flags of the Java programming language are useful in using the Fulfillment Server to maximum benefit. Some of these flags may not be available for all versions of Java that are used to run the Fulfillment Server. You can view a list of Java flags that work with your version of Java by typing the full path to the java or jre command, as you would use to start the Fulfillment Server.

Flag Description
ms Specifies the amount of memory to allocate to the Fulfillment Server on startup. Use it as -Dms##[k|m] where ## is the amount of memory, k is kilobytes and m is megabytes. Specifying a larger value for ms at startup can produce some performance gains depending on how memory intensive the server is for the types of requests it is processing. The default value is 1 MB.
mx Specifies the maximum amount of memory to allocate to the Fulfillment Server. The server starts with the value for ‘ms' and works up to the value of mx as needed. Use it as -Dmx##[k|m] where ## is the amount of memory, k is kilobytes, and m is megabytes. Use this flag if the server is encountering an OutOfMemoryError. The default value is 16 MB.

Language Character Parsing

The Fulfillment Server sometimes incorrectly parses certain natural language characters in email when using default environment settings and Java runtime options. The following configuration settings in the file FM_start.sh work for some of the languages that have encoding issues with the default settings.