ML07-0002-0

Chapter 3. Console Commands

The operator controls HTTPD from the console with the MODIFY command and the STOP command. The HTTPD User’s Guide shows how to use them, in “Operating HTTPD”. This chapter lists the syntax of every command and every message that a command writes.

Syntax

/F HTTPD,command
/P HTTPD

The name HTTPD is the name of the started task. HTTPD splits the text of a MODIFY command into words. A blank and a comma both separate words, so /F HTTPD,D,C and /F HTTPD,D C are the same command.

The Commands

CommandAction
DISPLAY CONFIG
D C
Shows the configuration that the server runs with (“DISPLAY CONFIG”).
DISPLAY LOGIN
D L
Shows the users who are logged in (“DISPLAY LOGIN”).
DISPLAY MEMORY xxxxxx[,nnn]
D M xxxxxx
Dumps storage (“DISPLAY MEMORY”).
DISPLAY PORTS
D P
Shows the port the server listens on: HTTPD102I HTTPD IS LISTENING ON PORT n.
DISPLAY STATS
D S
Shows the SMF level and the counters (“DISPLAY STATS”).
DISPLAY THREADS
D T
Shows every thread of the server (“DISPLAY THREADS”).
DISPLAY TIME [-|+][minutes]
D TI
Shows the time (“DISPLAY TIME”).
DISPLAY VERSION
D V
Shows the version of the server (“DISPLAY VERSION”).
SET MAXTASK n
S MA n
Sets the largest number of worker threads (“SET MAXTASK and SET MINTASK”).
SET MINTASK n
S MI n
Sets the smallest number of worker threads (“SET MAXTASK and SET MINTASK”).
SET STATS level [RESET]
S S
Sets the SMF level, and resets the counters (“SET STATS”).
HELP
?
Lists the commands (“HELP and unknown commands”).

Table 20. The MODIFY commands

No console command lists the routes of the server. The display module HTTPDSRV shows them. Chapter 7, “The Display Modules” describes it.

DISPLAY CONFIG

The command shows the values that the server holds now, after it has read the Parmlib member. Use it to find out what HTTPD made of the member. The messages come in this order.

MessageContent
HTTPD128IPORT n MINTASK n MAXTASK n. The two task counts are the values from the Parmlib member. SET MINTASK and SET MAXTASK do not change them.
HTTPD129ICLIENT_TIMEOUT n KEEPALIVE t/m. n is the client timeout in seconds, t the keep-alive timeout in seconds and m the number of requests allowed on one connection.
HTTPD130ISESSION_TIMEOUT n MIN. The text (REAPER DISABLED) follows when the value is 0.
HTTPD135ISESSION_MAXAGE n MIN. The text (NO MAX-AGE) follows when the value is 0.
HTTPD131IDOCROOT path, or DOCROOT (NONE) when no document root is set.
HTTPD134ICODEPAGE name. The name is CP037 when the Parmlib member does not set one.
HTTPD136IREALM text, the realm for Basic authentication.
HTTPD132ISMF TYPE n LEVEL level. The level is NONE, ERROR, AUTH or ALL. It is the level in effect now, so a SET STATS shows here.
HTTPD133ICONFIG FROM name, the Parmlib member that HTTPD read, for example SYS2.PARMLIB(HTTPPRM0).
HTTPD137IRESIDENT YES MODULES HELD n or RESIDENT NO MODULES HELD n. The count is the number of modules that the server holds in storage.
HTTPD138IRES_NOPROFILE ALLOW or RES_NOPROFILE DENY, the value of the keyword (“Authentication Values”).

Table 21. The messages of DISPLAY CONFIG

F HTTPD,D C
HTTPD100I CONS(0) "D C"
HTTPD128I PORT 8080  MINTASK 3  MAXTASK 9
HTTPD129I CLIENT_TIMEOUT 10  KEEPALIVE 5/100
HTTPD130I SESSION_TIMEOUT 30 MIN
HTTPD135I SESSION_MAXAGE 480 MIN
HTTPD131I DOCROOT /www
HTTPD134I CODEPAGE CP037
HTTPD136I REALM MVS.EXAMPLE
HTTPD132I SMF TYPE 243 LEVEL NONE
HTTPD133I CONFIG FROM DD:HTTPPRM
HTTPD137I RESIDENT YES  MODULES HELD 4
HTTPD138I RES_NOPROFILE ALLOW

The command does not show the routes, BIND_TRIES, BIND_SLEEP, LISTEN_QUEUE or the debug switch. Chapter 1, “The HTTPPRM Keywords” lists every keyword.

DISPLAY LOGIN

The first message is HTTPD121I USERS LOGGED IN: n. One message follows for each login that is held:

F HTTPD,D L
HTTPD100I CONS(0) "D L"
HTTPD121I USERS LOGGED IN: 1
HTTPD122I USER IBMUSER  IP 192.0.2.17 ACEE(9BA1E0)

The user id is shown in up to 8 characters. The address is the address of the client. The number in brackets is the address of the security environment (ACEE) that belongs to the login, in hex.

DISPLAY STATS

Two messages. HTTPD123I SMF: level (TYPE n) shows the SMF level and the SMF record type. HTTPD124I REQUESTS: n ERRORS: n BYTES: n ACTIVE: n shows the number of requests, the number of errors, the bytes sent and the number of connections that are open now. The counters start at zero when the server starts, and SET STATS ... RESET sets the first three to zero. HTTPD416I shows the same three counters when the server stops. The levels are described in Chapter 8, “SMF Records”.

F HTTPD,D S
HTTPD100I CONS(0) "D S"
HTTPD123I SMF: NONE (TYPE 243)
HTTPD124I REQUESTS: 18  ERRORS: 3  BYTES: 186629  ACTIVE: 0

DISPLAY THREADS

The command writes one block for each thread. A line of dashes (HTTPD199I) ends each block. The order of the blocks is: the main thread, the socket thread, the dispatcher (the manager of the worker pool) and then the worker threads. A block exists only when the thread exists, with one exception: if there is no socket thread, the command still writes the HTTPD103I line of the socket thread, with the address 00000000 and no other line. Without a worker pool there are no dispatcher and no worker blocks.

MessageContent
HTTPD103IStarts a block: ..THREAD aaaaaaaa role. The address is the control block of the thread. The role is MAIN SERVER THREAD, SOCKET THREAD, DISPATCHER THREAD or WORKER THREAD.
HTTPD104IEYE, TCB and OWNTCB of the thread.
HTTPD105ITERMECB, RC and STACKSZE. The stack size is in hex.
HTTPD106IFUNC (the entry point of the thread), ARG1 and ARG2.
HTTPD120IMain thread only: ...RNAME name. The name is HTTPD. and the address space id as 4 hex digits.
HTTPD119ISocket thread only: ..SOCKET n ....PORT n (HTTP PROTOCOL), the socket number of the listener and the port.
HTTPD107I
to
HTTPD111I
Dispatcher only. 107: eye, task, wait ECB. 108: function, user data, stack size. 109: worker, queue and the state of the dispatcher as a number and a name (INIT, RUNNING, QUIESCE, STOPPED or WAITING). 110: the minimum and the maximum number of workers now in effect. 111: the number of workers and .DISPCNT, the number of dispatches.
HTTPD112I
to
HTTPD117I
One set for each worker. 112: worker, eye, wait ECB. 113: manager, task, queue. 114: the state of the worker as a number and a name (INIT, RUNNING, WAITING, DISPATCHED, SHUTDOWN or STOPPED). 115, 116 and 117: START, WAIT and DISP, each a 64-bit time value in hex followed by the date and time as text.
HTTPD141I.DISPCNT n, how often this worker was dispatched.
HTTPD118IA worker in state RUNNING that serves a client: PROTOCOL HTTP ....USER name ...GROUP name. The user is ANONYMOUS when the client has not logged in.
HTTPD119IThe same worker: ..REMOTE CLIENT ....PORT n ......IP a.b.c.d, the port and the address of the client.
HTTPD120IThe same worker: ..SOCKET n ....PORT n ......IP a.b.c.d, the socket of the connection and the port and the address of the server side.
HTTPD199IA line of dashes after each block.

Table 22. The messages of DISPLAY THREADS

The next screen shows a server with three idle workers.

F HTTPD,D T
HTTPD100I CONS(0) "D T"
HTTPD103I ..THREAD 000FBFC8 MAIN SERVER THREAD
HTTPD104I .....EYE CTHDTASK  .....TCB 009DC328  ..OWNTCB 00000000
HTTPD105I .TERMECB 00000000  ......RC 00000000  STACKSZE 00010030
HTTPD106I ....FUNC 0009987C  ....ARG1 00000003  ....ARG2 000DB0F0
HTTPD120I ...RNAME HTTPD.0007
HTTPD199I -------------------------------------------------------
HTTPD103I ..THREAD 001A0FC8 SOCKET THREAD
HTTPD104I .....EYE CTHDTASK  .....TCB 009CD608  ..OWNTCB 009DC328
HTTPD105I .TERMECB 00000000  ......RC 00000000  STACKSZE 00008000
HTTPD106I ....FUNC 00098430  ....ARG1 000DB390  ....ARG2 0009E2E8
HTTPD119I ..SOCKET        3  ....PORT     8080  (HTTP PROTOCOL)
HTTPD199I -------------------------------------------------------
HTTPD103I ..THREAD 001A9FC8 DISPATCHER THREAD
HTTPD104I .....EYE CTHDTASK  .....TCB 009BAC18  ..OWNTCB 009DC328
HTTPD105I .TERMECB 00000000  ......RC 00000000  STACKSZE 00008000
HTTPD106I ....FUNC 000A15DC  ....ARG1 000DAE18  ....ARG2 00000000
HTTPD107I .....EYE CTHDMGR   ....TASK 001A9FC8  .WAITECB 809CD330
HTTPD108I ....FUNC 00098F1C  ...UDATA 000DB390  STACKSZE 00010000
HTTPD109I ..WORKER 000FB6D4  ...QUEUE 000FB07C  ...STATE 00000004 WAITING
HTTPD110I .MINTASK        3  .MAXTASK        9
HTTPD111I .WORKERS        3  .DISPCNT 18
HTTPD199I -------------------------------------------------------
HTTPD103I ..THREAD 001B4FC8 WORKER THREAD
HTTPD104I .....EYE CTHDTASK  .....TCB 009BAAA8  ..OWNTCB 009BAC18
HTTPD105I .TERMECB 00000000  ......RC 00000000  STACKSZE 00010000
HTTPD106I ....FUNC 00098F1C  ....ARG1 000DB390  ....ARG2 000FB748
HTTPD112I ..WORKER 000FB748  .....EYE CTHDWORK  .WAITECB 809B9F98
HTTPD113I .....MGR 000DAE18  ....TASK 001B4FC8  ...QUEUE 00000000
HTTPD114I ...STATE 00000002 WAITING
HTTPD115I ...START 000000006AE039DF  Tue Oct 27 00:42:55 2026
HTTPD116I ....WAIT 000000006AE03A28  Tue Oct 27 00:44:08 2026
HTTPD117I ....DISP 000000006AE03A27  Tue Oct 27 00:44:07 2026
HTTPD141I .DISPCNT 6
HTTPD199I -------------------------------------------------------
HTTPD103I ..THREAD 001C5FC8 WORKER THREAD
HTTPD104I .....EYE CTHDTASK  .....TCB 009BA378  ..OWNTCB 009BAC18
HTTPD105I .TERMECB 00000000  ......RC 00000000  STACKSZE 00010000
HTTPD106I ....FUNC 00098F1C  ....ARG1 000DB390  ....ARG2 000FB648
HTTPD112I ..WORKER 000FB648  .....EYE CTHDWORK  .WAITECB 809CD498
HTTPD113I .....MGR 000DAE18  ....TASK 001C5FC8  ...QUEUE 00000000
HTTPD114I ...STATE 00000002 WAITING
HTTPD115I ...START 000000006AE039DF  Tue Oct 27 00:42:55 2026
HTTPD116I ....WAIT 000000006AE03A27  Tue Oct 27 00:44:07 2026
HTTPD117I ....DISP 000000006AE03A27  Tue Oct 27 00:44:07 2026
HTTPD141I .DISPCNT 6
HTTPD199I -------------------------------------------------------
HTTPD103I ..THREAD 001D6FC8 WORKER THREAD
HTTPD104I .....EYE CTHDTASK  .....TCB 009BA048  ..OWNTCB 009BAC18
HTTPD105I .TERMECB 00000000  ......RC 00000000  STACKSZE 00010000
HTTPD106I ....FUNC 00098F1C  ....ARG1 000DB390  ....ARG2 000FB5C8
HTTPD112I ..WORKER 000FB5C8  .....EYE CTHDWORK  .WAITECB 809BA538
HTTPD113I .....MGR 000DAE18  ....TASK 001D6FC8  ...QUEUE 00000000
HTTPD114I ...STATE 00000002 WAITING
HTTPD115I ...START 000000006AE039DF  Tue Oct 27 00:42:55 2026
HTTPD116I ....WAIT 000000006AE03A28  Tue Oct 27 00:44:08 2026
HTTPD117I ....DISP 000000006AE03A27  Tue Oct 27 00:44:07 2026
HTTPD141I .DISPCNT 6
HTTPD199I -------------------------------------------------------

DISPLAY MEMORY

/F HTTPD,D M xxxxxx[,nnn]

xxxxxx is the address in hex. nnn is the length in bytes. A length with the prefix 0x is hex, and a length with a leading 0 is octal. Any other length is decimal. One separator character stands between the address and the length. The comma is the one to use. The default is 256 bytes. A length that is 0 or below becomes

  1. A length above 4096 becomes 4096.
MessageContent
HTTPD148IUSAGE: DISPLAY MEMORY XXXXXX[,NNN] (D M XXXXXX). There is no address.
HTTPD144EINVALID MEMORY ADDRESS 0x......... The address is above the 16 MB line (above hex 00FFFFFF). Nothing is read.
(dump)The storage as a dump, written with the console message service.
HTTPD145IEND OF MEMORY DUMP FOR 0x....... The dump is complete.
HTTPD146EESTAE CREATE FAILURE, RC=0x......... The command could not set up its recovery and did not read the storage.
HTTPD147EABEND Sxxx FOR DISPLAY MEMORY 0x...... or ABEND Uxxxx FOR DISPLAY MEMORY 0x....... Reading the storage abended, for example because the address is not valid. The recovery catches the abend.

Table 23. The messages of DISPLAY MEMORY

F HTTPD,D M 10,16
HTTPD100I CONS(0) "D M 10,16"
Dump of 00000010 "DISPLAY MEMORY" (16 bytes)
+00000 0001D048 00000000 070E0000 00000000 :..}.............:
HTTPD145I END OF MEMORY DUMP FOR 0x000010

DISPLAY TIME

/F HTTPD,D TI [-|+][minutes]

The command writes two messages. The first is HTTPD142I TIME yyyy/mm/dd hh:mm:ss GMT. The second is HTTPD143I TIME yyyy/mm/dd hh:mm:ss LOCAL OFFSET=+m with the offset from GMT in minutes. Without an argument, or with 0, the offset is the one of the system. With another number, the command uses that number of minutes as the offset for this display only. The number can have a sign. HTTPD keeps it within 720 minutes (12 hours) in both directions.

F HTTPD,D TI
HTTPD100I CONS(0) "D TI"
HTTPD142I TIME 2026/10/27 05:44:39 GMT
HTTPD143I TIME 2026/10/27 00:44:39 LOCAL OFFSET=-300

DISPLAY VERSION

One message: HTTPD140I HTTPD version (commit). The text is in upper case. The version is the version of the product. The commit identifies the source that was built.

F HTTPD,D V
HTTPD100I CONS(2) "D V"
HTTPD140I HTTPD 4.5.1 (nnnnnnn)

SET MAXTASK and SET MINTASK

/F HTTPD,S MA n
/F HTTPD,S MI n

The number is decimal and is required. Without a number, and with an operand that begins with a minus sign, the command answers HTTPD149I USAGE: SET MAXTASK|MINTASK N (S MA N, S MI N), N = 1 TO 100 and changes nothing. The dispatcher is not woken. Otherwise a value of 0 is 1, and a value above 100 is 100. A word that is not a number is 1. The command sets the new limit and wakes the dispatcher, which creates or ends workers to fit. The answer is the dispatcher block of DISPLAY THREADS (messages HTTPD107I to HTTPD111I), followed by a line of dashes. The block shows the limits that are in effect now.

A value that is too large is cut to 100. The dispatcher block shows the cut value:

F HTTPD,SET MA 99999
HTTPD100I CONS(0) "SET MA 99999"
HTTPD107I .....EYE CTHDMGR   ....TASK 001A9FC8  .WAITECB 40000000
HTTPD108I ....FUNC 00098F1C  ...UDATA 000DB390  STACKSZE 00010000
HTTPD109I ..WORKER 000FB6D4  ...QUEUE 000FB07C  ...STATE 00000004 WAITING
HTTPD110I .MINTASK        3  .MAXTASK      100
HTTPD111I .WORKERS        3  .DISPCNT 18
HTTPD199I -------------------------------------------------------

When SET MINTASK raises the minimum, the dispatcher starts the missing workers at once and writes HTTPD061I for each one:

F HTTPD,SET MI 4
HTTPD100I CONS(0) "SET MI 4"
HTTPD107I .....EYE CTHDMGR   ....TASK 001A9FC8  .WAITECB 40000000
HTTPD108I ....FUNC 00098F1C  ...UDATA 000DB390  STACKSZE 00010000
HTTPD109I ..WORKER 000FB6D4  ...QUEUE 000FB07C  ...STATE 00000004 WAITING
HTTPD110I .MINTASK        4  .MAXTASK      100
HTTPD111I .WORKERS        3  .DISPCNT 18
HTTPD199I -------------------------------------------------------
HTTPD061I STARTING WORKER(0FB0F0)   TCB(9B9C70) TASK(1E7FC8) STACKSIZE(65536)

SET STATS

/F HTTPD,S S NONE|ERROR|AUTH|ALL [RESET]
/F HTTPD,S S RESET

The level is one of NONE, ERROR, AUTH and ALL, spelled in full. Chapter 8, “SMF Records” describes the levels.

MessageContent
HTTPD126ISMF LEVEL SET TO level. The level changes at once.
HTTPD125ISTATISTICS COUNTERS RESET. The word RESET follows the level, where the beginning of the word is enough, or it is the only operand, where it must be spelled in full. The three counters requests, errors and bytes are set to zero. The count of open connections is not changed. With only RESET, the level is not changed.
HTTPD126EINVALID SET STATS VALUE "text". The first operand is not a level and not RESET.
HTTPD127WMISSING STATS NONE|ERROR|AUTH|ALL [RESET]. There is no operand.

Table 24. The messages of SET STATS

F HTTPD,SET STATS ALL RESET
HTTPD100I CONS(0) "SET STATS ALL RESET"
HTTPD126I SMF LEVEL SET TO ALL
HTTPD125I STATISTICS COUNTERS RESET
F HTTPD,SET STATS BOGUS
HTTPD100I CONS(0) "SET STATS BOGUS"
HTTPD126E INVALID SET STATS VALUE "BOGUS"

HELP and unknown commands

HELP and ? write HTTPD150I MODIFY COMMANDS ARE: and then one HTTPD151I line for each line of the help text. The text lists each command with a line of explanation below it, and ends with the example /F HTTPD,D C. An unknown first word gets the error and then the same text. An unknown second word gets only the error:

This is the help text:

F HTTPD,HELP
HTTPD100I CONS(0) "HELP"
HTTPD150I MODIFY COMMANDS ARE:
HTTPD151I DISPLAY Config (D C)
HTTPD151I     DISPLAYS THE CONFIGURATION THIS SERVER IS RUNNING
HTTPD151I DISPLAY Login (D L)
HTTPD151I     DISPLAYS USERS THAT ARE LOGGED INTO THE HTTPD SERVER
HTTPD151I DISPLAY Memory xxxxxx~,nnn~ (D M xxxxxx)
HTTPD151I     DISPLAYS MEMORY AT THE GIVEN ADDRESS xxxxxx
HTTPD151I DISPLAY Ports (D P)
HTTPD151I     DISPLAYS THE PORT NUMBER THIS SERVER IS LISTENING ON
HTTPD151I DISPLAY Stats (D S)
HTTPD151I     DISPLAYS HTTPD CLIENT STATISTICS
HTTPD151I DISPLAY Threads (D T)
HTTPD151I     DISPLAYS INFORMATION ABOUT THE SERVER THREADS
HTTPD151I DISPLAY TIme ~-|+~~minutes~ (D TI)
HTTPD151I     DISPLAYS THE CURRENT TIME IN GMT AND LOCAL TIME
HTTPD151I DISPLAY Version (D V)
HTTPD151I     DISPLAYS THE SERVER VERSION AND BUILD
HTTPD151I
HTTPD151I SET MAxtask n (S MA n)
HTTPD151I     SETS THE WORKER MAXIMUM THREAD COUNT
HTTPD151I SET MIntask n (S MI n)
HTTPD151I     SETS THE WORKER MINIMUM THREAD COUNT
HTTPD151I SET Stats NONE|ERROR|AUTH|ALL ~RESET~
HTTPD151I     SETS THE SMF RECORDING LEVEL
HTTPD151I
HTTPD151I EXAMPLE: /F HTTPD,D C

An unknown second word gets only the error:

F HTTPD,D BOGUS
HTTPD100I CONS(0) "D BOGUS"
HTTPD101E UNKNOWN CONSOLE COMMAND "DISPLAY BOGUS"

Stopping the server

/P HTTPD ends the server. HTTPD writes HTTPD098I HTTPD SHUTTING DOWN and then works through these steps.

  1. The server stops accepting connections.
  2. HTTPD waits for the socket thread, up to 10 seconds. From the second second on it writes HTTPD040I WAITING FOR SOCKET THREAD TO TERMINATE (n). When the thread has not ended after 10 seconds, HTTPD041I FORCE DETACHING SOCKET THREAD follows.
  3. The listener is closed, the worker pool is stopped and the modules that the server held are released.
  4. The clients and the routes are freed.
  5. HTTPD416I STATS: n REQUESTS, n ERRORS, n BYTES shows the counters.
  6. HTTPD099I HTTPD SHUTDOWN COMPLETE closes the sequence. The security identity of the task and the authorization are given back after it.
P HTTPD
HTTPD098I HTTPD SHUTTING DOWN
HTTPD060I SHUTDOWN SOCKET THREAD    TCB(9CD7C8) TASK(14FFC8) STACKSIZE(32768)
HTTPD060I SHUTDOWN WORKER(161B80)   TCB(9BA858) TASK(185FC8) STACKSIZE(65536)
HTTPD060I SHUTDOWN WORKER(161C00)   TCB(9BAB88) TASK(174FC8) STACKSIZE(65536)
HTTPD060I SHUTDOWN WORKER(161D00)   TCB(9BAEB8) TASK(163FC8) STACKSIZE(65536)
HTTPD416I STATS: 30 REQUESTS, 12 ERRORS, 21694 BYTES
HTTPD099I HTTPD SHUTDOWN COMPLETE
$HASP395 HTTPD    ENDED
IEF404I HTTPD - ENDED - TIME=00.42.25

The job step ends with return code 0. If the shutdown itself fails, the server writes HTTPD912E TERMINATE FAILED WITH RC=......... Appendix A, “Messages” lists every message. The HTTPD User’s Guide shows a stop from the console in “Operating HTTPD”.

Note: The procedure that ships with HTTPD lists the line /F HTTPD,SHUTDOWN in its comments. The server has no such command. A command with this word gets HTTPD101E and the help text. Use /P HTTPD.

/C HTTPD ends the address space with the system abend S222. The shutdown does not run: the console shows IEE301I, IEF450I and $HASP395, and none of HTTPD098I, HTTPD060I, HTTPD416I and HTTPD099I. The server itself writes no libc370 recovery: line and no libc370 @@@try.c failed() line. A module that was linked with libc370 older than 2.26.0 can still write the second one. The HTTPD User’s Guide shows a cancel in “Operating HTTPD”.