🛠️ P3/COBOL 25.1.0-SNAPSHOT is available for preview.
Reference Manual
P3-Utility
Server Utility

Server Utility Commands

App Server Utility Arguments

The general form of the app server arguments is as follows:

p3 serve apps -- [portNumber] [clientInactivityTimeout] [runUnitArgs]\textsf{\textbf{p3}} \space \textsf{\textbf{serve}} \space \textsf{\textbf{apps}} \space \texttt{--} \space \lbrack \textit{portNumber} \rbrack \space \lbrack \textit{clientInactivityTimeout} \rbrack \space \lbrack \textit{runUnitArgs} \rbrack

Where:

OptionDescription
portNumberis the server tcp/ip port number to listen for client connections
(the default is 9090)
clientInactivityTimeoutis the maximum time in seconds to allow a client to remain inactive (i.e., no tcp/ip exchanges). The default is 0, which indicates no time limit imposed.
runUnitArgsare any normal run unit arguments to be applied to each run unit instance started by the app server. If none, the default arguments will apply.

At any point in the argument stream either --configuration or --headless may be used to start the run unit configuration argument (e.g., to omit the port number and timeout argument). In addition, the --headless argument starts the server in headless mode, which will start the server without reading commands from the system console during the running of the server (see below). The --configuration argument simply ends the port/timeout argument list and begins the run unit arguments (if any).

p3 serve apps -- 9090 0 --headless --configuration -c runtime.p3c

App Server Commands

When started in normal (not --headless) mode, the app server enters a state of waiting for a command in the foreground.

In the background it listens for client connections and, upon receiving them, starts the designated programs each in an isolated, and independent, run unit. The commands, when received, are actioned and any output is returned to the console. With these commands, you may query the server to enumerate the run units currently active, terminate a specific run unit or all run units, terminate the server when it is idle (i.e., no run units active), and process volume utility commands directed to the intrinsic file server included in the app server.

The app server commands are as follows:

CommandDescription
kill (or k)Stops the app server immediately. Any active run units will be terminated and the clients notified with an exception status return.
idledown (or i)Stops the acceptance of new application and file server requests and waits until all currently active clients have terminated. It then terminates the server as in the kill case above.
volume (or v)Introduces a subsequent volume command described as above.
server (or s)Introduces an application server subcommand as detailed below.
help (or h or ?)Provide help for the app server subcommands.

App Server Subcommands

The subcommands (following the server or s above) are as follows:

CommandDescription
list (or l)Lists the run unit instances currently managed by the server. Information for each run unit includes the client process id, the client terminal id (if known), and the P3/COBOL run unit id of the active instance associated with the client.
kill (or k)Kills one or more specified run units. The space-separated list of specifier s follows the kill or k command. A run unit specifier consists of a process id, terminal id, or run unit id as listed above.
help (or h or ?)Provide help for the arguments following the server or s argument above.

File Server Utility Commands

🚫

This section needs to be described.