ML07-0002-0

Appendix A. Messages

This appendix lists every numbered message of HTTPD in the order of the numbers. The header file of the product has one text for each message, and this appendix has one entry for each of those texts: 178 texts, which carry 170 distinct combinations of number and severity letter. Where two texts share a number, both are listed.

A message has the form HTTPDnnnx. The letter at the end is the severity: I information, W warning, E error. There is no other letter. The letter does not tell what the server does next. Some messages with E only warn, and some with W end the start. Every entry names the action, and it names the return code where the server ends.

In the texts, the parts in italic vary: a number, a name, a path. The rest is fixed. HTTPD writes the fixed text in upper case. The values that it shows as they are, such as paths and names that a user typed, keep their case. A run of blanks in a text is shown as one blank. The messages have no trailing new line.

Every numbered message is written with a single-line WTO. It goes to the console, to the master trace table (MTT) and to the hardcopy log. A line longer than about 70 to 90 characters is cut by the system. HTTPD writes no numbered message to a data set. The display module for the trace table (HTTPDMTT, Chapter 7, “The Display Modules”) shows the table from inside the server.

A few console lines have no number. They are listed at the end of this appendix (“Lines Without a Number”). What a client causes (a bad request, an unknown route, a file that is not there) is answered in the HTTP response and does not appear here.

The ranges are:

000 to 019
Identity, login and the standard files (“Lifecycle and Identity (000 to 019)”).
020 to 048
Configuration and the start of the listener (“Configuration and Start (020 to 048)”).
050 to 099
Listener, workers and the stop (“Listener, Workers and Stop (050 to 099)”).
100 to 199
Console commands (“Console Commands (100 to 199)”).
410 to 444
Routes, SMF and resident modules (“Routes, SMF and Resident Modules (410 to 444)”).
901 to 999
Diagnostics (“Diagnostics (901 to 999)”).

The numbers 020 to 048 belong to the configuration although they come from the time before the 4xx block. To find a message, search by the number and do not rely on the range.

A Healthy Start and Stop

A server that starts without a problem writes these messages in this order. A message with a condition appears only under that condition.

  1. HTTPD000I, the banner with the version and the commit.
  2. HTTPD005I, the version of the C library.
  3. HTTPD006W, only for a build from a modified working tree.
  4. HTTPD002I, how the server got its authorization. The message is written only if the authorization worked.
  5. HTTPD004I, the identity of the started task (or HTTPD003W or HTTPD004W if it could not be set).
  6. HTTPD042W, only if the security product accepts any user ID. In a healthy start RAKF writes RAKF0004 for the user ID HTTPPRB at this place.
  7. The messages of the configuration (“Configuration and Start (020 to 048)” and “Routes, SMF and Resident Modules (410 to 444)”): the warnings about the parameters, and one HTTPD036I or HTTPD417I for each route.
  8. HTTPD054I, the listener is bound to the port. A bind that has to wait for the port adds HTTPD030E and HTTPD030I first.
  9. The warnings that follow the bind, such as HTTPD430W, HTTPD425W or HTTPD426W, and HTTPD440W to HTTPD442W.
  10. HTTPD066I, only if TRACE= is set: the request trace is on. (HTTPD067W instead if the storage for it was not available.)
  11. HTTPD061I for the socket thread and for each worker thread. The threads write these lines themselves, so their order is not fixed.
  12. HTTPD001I, the last message of the start. After it the server answers the clients and the console commands.

The stop by P HTTPD writes:

  1. HTTPD098I, the stop begins.
  2. HTTPD040I, while the socket thread still runs. The message is repeated up to nine times, one second apart. If the thread does not end, HTTPD041I follows.
  3. HTTPD060I for the socket thread and for each worker thread, written by the threads.
  4. HTTPD416I, the statistics of the run.
  5. HTTPD099I, the last message of the stop. The return code is 0.

A Start That Ends

Some messages end the start. The return code of the job tells which kind.

MessageReturn codeWhat happens afterwards
HTTPD037E, HTTPD028E, HTTPD030E, HTTPD031E, HTTPD420E, HTTPD038E, HTTPD033E, HTTPD064E8The server cleans up and stops. HTTPD098I, HTTPD416I and HTTPD099I follow. The listener number in the statistics is 0.
HTTPD090E8The server stops at once. No other stop message follows.
HTTPD014E, HTTPD015E, HTTPD016E, HTTPD017W, HTTPD018W, HTTPD019W12The program ends before the banner.
HTTPD012Ethe return code of the authorization callThe banner follows, without HTTPD002I, and the program ends.

Table 81. Messages that end the start

Note: The messages HTTPD048E and HTTPD427E set an error flag in the configuration. HTTPD420E follows at the end of the configuration and the start ends with the return code 8.

Lifecycle and Identity (000 to 019)

MessageMeaning and action
HTTPD000I HTTPD version (commit) STARTINGThe first message of the start. It names the version and the commit of the build, in upper case. HTTPD writes it also when the authorization failed (HTTPD012E).
HTTPD001I HTTPD version READY - SERVING docrootThe last message of a healthy start. The server accepts clients. The document root keeps its case.
HTTPD001I HTTPD version READY - NO DOCUMENT ROOTThe same message for a server whose document root is empty.
HTTPD002I AUTHORIZED BY LIBRARY (MODULE KEY 0)The program was authorized when it started: the load library is APF authorized. HTTPD infers this from the state of the program before its own authorization call. The message is written only if the setup worked.
HTTPD002I AUTHORIZED BY SVC (MODULE KEY 8)The program was not authorized when it started. The authorization call of the C runtime made it so. The message is written only if the setup worked.
HTTPD003W RACINIT SKIPPED, CANNOT ENTER SUPERVISOR STATE

The server cannot enter supervisor state, so it does not set the identity of the started task.

System action. The identity is not changed. The start goes on with the identity that the task inherited.

HTTPD004I STC IDENTITY SET TO user/group VIA RACINITThe started task has the identity that is shown. The default is HTTPD/USER. The environment variables HTTPD_STC_USER and HTTPD_STC_GROUP change it. The PARM of the JCL changes it with STCUSER= and STCGROUP=.
HTTPD004W RACINIT ENVIR=CREATE FAILED FOR user/group RC=rc

The security product refused the identity. rc is the return code of the call.

System action. The start goes on with the inherited identity.

HTTPD005I textThe version of the C library that is linked into the server, in upper case.
HTTPD006W BUILT FROM A MODIFIED WORKING TREEThe program was built from sources with changes that are not committed. The commit in HTTPD000I does not describe the code.
HTTPD007I USER userid IP a.b.c.d LOGIN SUCCESSFUL ACEE(acee)A client logged in with the login form. userid is the user (up to 8 characters), then the address of the client and the address of the security environment (6 hex digits).
HTTPD008I USER userid IP a.b.c.d LOGOUT SUCCESSFULA request to /logout released the credential of the client.
HTTPD008W USER userid IP a.b.c.d LOGOUT FAILEDThe client has a credential, but the release of it failed. The client gets the answer “Logout failed.”.
HTTPD009W LOGIN SESSION NOT CREATED, RACINIT FAILED RC=rc

From HTTPD 4.5. The security product failed the logon with a return code that is not a plain refusal. A refusal (the return codes 4, 8, 12 and 28) is silent. The source names three other cases as examples: the product is not active (32), an installation exit refuses the user (24), and the terminal or the time of the user is restricted (hex 30). The client sees “Login failed, no session available”.

System action. The login creates no session. The server goes on.

HTTPD010I name IS APF AUTHORIZEDNot issued in this release. The text is defined, and no code that is built writes it.
HTTPD011I name WAS APF AUTHORIZED VIA SVC 244Not issued in this release. The text is defined, and no code that is built writes it.
HTTPD012E name UNABLE TO DYNAMICALLY OBTAIN APF AUTHORIZATION

The authorization call failed. name is the name that the program was started with.

System action. The banner (HTTPD000I) and HTTPD005I follow, without HTTPD002I. The program ends with the return code of the call.

HTTPD013I STEPLIB IS NOW APF AUTHORIZEDNot issued in this release. The text is defined, and no code that is built writes it.
HTTPD014E SYSPRINT DD NOT ALLOWED, HTTPD USES HTTPDOUT FOR STDOUT

The JCL has a DD statement SYSPRINT. HTTPD refuses the name.

System action. The program ends with the return code 12.

Response. Remove the DD statement. HTTPD uses the private DD name HTTPDOUT.

HTTPD015E SYSTERM DD NOT ALLOWED, HTTPD USES HTTPDERR FOR STDERR

The JCL has a DD statement SYSTERM. HTTPD refuses the name.

System action. The program ends with the return code 12.

Response. Remove the DD statement. HTTPD uses the private DD name HTTPDERR.

HTTPD016E SYSIN DD NOT ALLOWED, HTTPD USES HTTPDIN FOR STDIN

The JCL has a DD statement SYSIN. HTTPD refuses the name.

System action. The program ends with the return code 12.

Response. Remove the DD statement. HTTPD uses the private DD name HTTPDIN.

HTTPD017W HTTPDOUT DD NOT DEFINED, STDOUT IS NOT AVAILABLE

HTTPD could not open the DD name HTTPDOUT for output.

System action. Although the letter is W, the start ends. The program closes the files that it opened and ends with the return code 12.

Response. Add the DD statement to the JCL of the started task.

HTTPD018W HTTPDERR DD NOT DEFINED, STDERR IS NOT AVAILABLE

HTTPD could not open the DD name HTTPDERR for output.

System action. Although the letter is W, the start ends with the return code 12.

Response. Add the DD statement to the JCL of the started task.

HTTPD019W HTTPDIN DD NOT DEFINED, STDIN IS NOT AVAILABLE

HTTPD could not open the DD name HTTPDIN for input, and it could not open the data set NULLFILE as a replacement.

System action. Although the letter is W, the start ends with the return code 12.

Response. Add the DD statement to the JCL of the started task.

Table 82. Messages 000 to 019

Configuration and Start (020 to 048)

The configuration is read from the DD name HTTPPRM (Chapter 1, “The HTTPPRM Keywords”). The rest of this range reports the start of the listener.

MessageMeaning and action
HTTPD020W CANNOT OPEN DD:ddname -- USING DEFAULTS

The DD name of the configuration (HTTPPRM) cannot be opened.

System action. The server starts with its defaults: port 8080, 3 to 9 workers, the document root /www, no routes and no SMF records (Chapter 1, “The HTTPPRM Keywords” lists the defaults).

Response. Add the DD statement if the defaults are not what you want.

HTTPD020E FOPEN FOR DD:HTTPDBG FAILED, ERRNO=errno

The keyword DEBUG= is greater than 0, and the DD name HTTPDBG cannot be opened. HTTPD021I follows.

System action. The server goes on. The debug output goes to the standard error file.

HTTPD021I DEBUG/TRACE OUTPUT WILL BE TO DD:SYSTERMThe debug output goes to the standard error file. The text names SYSTERM, but HTTPD allocates the standard error file as HTTPDERR.
HTTPD023E INVALID PORT VALUE (port)

The value of PORT= is not a number from 1 to 65535.

System action. The server keeps the earlier value or the default and goes on.

HTTPD024W CONFIG=value IS IGNORED, CONFIGURATION COMES FROM THE ddname DD

The PARM of the JCL has CONFIG=. HTTPD ignores it and reads the DD name. value is cut after 32 characters.

System action. The server goes on. HTTPD024I follows.

HTTPD024I USE S HTTPD,M=MEMBER TO SELECT A DIFFERENT MEMBERThe hint that follows HTTPD024W.
HTTPD025W TZOFFSET IS NO LONGER USED, THE SYSTEM OFFSET GMT signhh:mm APPLIES

The configuration has the retired keyword TZOFFSET=. The server uses the time zone offset of the system.

System action. The server goes on. HTTPD025I follows.

HTTPD025I SET TZ IN THE SYSENV OR ENVIRON DD TO OVERRIDE IT FOR ALL TASKSThe hint that follows HTTPD025W.
HTTPD026W UNRECOGNIZED CONFIGURATION LINE: line

A line of the configuration is not a comment and has no equal sign. The form is KEYWORD=VALUE. A comment starts with \# or *. The text shows the first 40 characters of the line.

System action. The line is skipped. The server goes on.

HTTPD026E SESSION_TIMEOUT (minutes MIN) <= CLIENT_TIMEOUT (seconds SEC), RAISE IT

The session timeout (in minutes) is not longer than the client timeout (in seconds). The message is written after the listener is bound, and only if the session timeout is not 0.

System action. Although the letter is E, this is a warning. The server goes on with the values as they are.

Response. Raise SESSION_TIMEOUT= in the configuration.

HTTPD027I CLOSING STALE SOCKET socket ON PORT portThe bind failed because the address is in use. The server closes each other socket of the address space that is bound to the port, then waits 2 seconds and binds once more.
HTTPD028E SOCKET() FAILED, RC=rc ERRNO=errno

The server could not create the listener socket.

System action. The start ends with the return code 8.

HTTPD029W UNKNOWN CONFIGURATION KEYWORD: keyword

A line of the configuration has a keyword that HTTPD does not know. The keyword is shown in upper case.

System action. The line is skipped. The server goes on.

HTTPD030E BIND() FAILED FOR HTTP PORT, RC=rc ERRNO=errno

The bind of the listener to the port failed. If the cause is an address in use, the server waits and tries again (HTTPD030I), up to BIND_TRIES= times, BIND_SLEEP= seconds apart. The message is written for the first failure. It is written a second time if the last try also fails. For any other cause, it is written twice in a row.

System action. A try that works within the limit lets the start go on. Otherwise the start ends with the return code 8.

HTTPD030I EADDRINUSE, WAITING FOR TCPIP TO RELEASE HTTP PORT portThe port is still in use, for example after a quick restart. The server waits BIND_SLEEP= seconds (default 10) and binds again. The default number of tries is 10 (BIND_TRIES=).
HTTPD031E LISTEN() FAILED, RC=rc ERRNO=errno

The server could not put the socket into the listen state.

System action. The start ends with the return code 8.

HTTPD032E SESSION_MAXAGE (minutes MIN) <= CLIENT_TIMEOUT (seconds SEC), RAISE IT

The maximum age of a session (in minutes) is not longer than the client timeout (in seconds). The message is written after the listener is bound, and only if the maximum age is not 0.

System action. Although the letter is E, this is a warning. The server goes on.

Response. Raise SESSION_MAXAGE= in the configuration.

HTTPD033E UNABLE TO CREATE SOCKET THREAD

The task for the listener could not be created.

System action. The server closes the listener. The start ends with the return code 8.

HTTPD034W UNABLE TO CREATE WORKER THREADS, DYNAMIC DOCUMENTS DISABLED

The pool of workers could not be created. Dynamic documents (the routes that run programs) are disabled.

System action. The server comes up anyway.

HTTPD035W UNABLE TO REGISTER MODULE module FOR path

The server could not store a MOD= route. The path is served from the document root, with nothing that gates it.

System action. If the route asked for a gate, HTTPD419E and HTTPD420E follow and the server does not start.

HTTPD036I MODULE module REGISTERED FOR pathA MOD= route is registered. The module name is in upper case and has up to 8 characters. The path is as written in the configuration. If the line has no path, the path is *. and the program name in lower case.
HTTPD037E HTTPD IS ALREADY ACTIVE ON PORT port, THIS INSTANCE ENDS

Another HTTPD holds the lock for the port. The lock is the name HTTPD.PORT.nnnnn (the port with 5 digits). A second server on another port is allowed.

System action. This instance ends with the return code 8.

Response. Stop the other server, or use another port.

HTTPD038E READ ERROR ON DD:ddname -- CONFIGURATION INCOMPLETE

The server opened the configuration and could not read it to the end.

System action. The start ends with the return code 8.

Response. Check the data set of the DD name HTTPPRM and start again.

HTTPD039W WRITE ERROR ON DD:HTTPDBG -- DEBUG OUTPUT SWITCHED OFF

A write of the trace failed, for example because the data set of the DD name HTTPDBG is full. The server writes the message once in a run, for the first failed write, from whichever thread meets it. The text names HTTPDBG also when the trace goes to the standard error file (HTTPD021I). The keyword DEBUG= must be greater than 0 for the message to appear.

System action. The server switches the trace off and goes on. It writes no more trace lines until the next start. The trace ends at the point of the failure.

Response. Give the DD name HTTPDBG a data set with more room, and restart the server to trace again.

HTTPD040I WAITING FOR SOCKET THREAD TO TERMINATE (n)Written during the stop while the socket thread still runs. n counts from 1 to 9. The server waits one second between the messages.
HTTPD041I FORCE DETACHING SOCKET THREADThe socket thread did not end in time. The server detaches the task.
HTTPD042W SECURITY SYSTEM ACCEPTS ANY USERID, ALL LOGINS REFUSED

From HTTPD 4.5.1. At the start, after the identity of the started task is set, the server logs on once with the user ID HTTPPRB and a password that cannot be right. The security product returned an ACEE for it, so it accepts any user ID. RAKF 1.2.x does this when its user table is missing or invalid, and the console then also shows RAKF0001 and RAKF0002, and RAKF0003 and RAKF0009 if the profile table is missing too. A product that checks gives no ACEE, and RAKF writes RAKF0004 for the user ID HTTPPRB instead.

System action. The start goes on. Every Basic, form and token login is refused, with the same answer as for a wrong password, and the server writes no message for it. Routes that need no login are served as before. The server does not test again.

Response. Correct the tables of the security product and restart HTTPD. See ‘A Security System That Accepts Any User ID’ in the HTTPD User’s Guide. The server does not run the test if HTTPD003W skipped the logon of the task.

HTTPD044W UNABLE TO INITIALIZE FILE SYSTEM

The file system is enabled and the server could not create its handle to it. The server has no handle for UFSD.

System action. The server goes on. The sessions of the clients to the file system are created only if the handle exists.

HTTPD045E UFS READ ERROR RC=rc, RESPONSE ABORTED: path, count SUPPRESSED

A read of a file failed while the server sent it. path is the path of the request, or the path as written in the directive if the error was in a file that a server-side include pulled in. It is cut after 40 characters. count is the number of read errors that the server did not report since the last message of this kind, 0 if none.

System action. The server drops the data that is not sent and closes the connection. It writes this message at most once in 60 seconds. The first error after a quiet minute is written at once, the others in the next 60 seconds are only counted, and the count stays unreported until the next error. The server goes on.

HTTPD047E UNABLE TO INITIALIZE SERVER CREDENTIAL KEY, RC=rc

The server could not initialize its credential key. Login does not work.

System action. The server comes up anyway.

HTTPD048W LOGIN IS RETIRED -- USE AUTH= ON EACH MOD=/LOC= ROUTE

The configuration has the keyword LOGIN= with an empty value or with only NONE operands. The keyword has no effect.

System action. The server goes on.

Response. Remove the keyword and write AUTH= on each route (Chapter 2, “Routes and Authentication Policy”).

HTTPD048E LOGIN operand IS RETIRED -- ROUTES WITHOUT AUTH= WOULD BECOME PUBLIC

The configuration has the keyword LOGIN= with an operand that asked for a login. operand is shown as written. A route without AUTH= is public.

System action. The server sets an error flag. HTTPD420E follows and the start ends with the return code 8.

Response. Remove the keyword and write AUTH= on each route (Chapter 2, “Routes and Authentication Policy”).

Table 83. Messages 020 to 048

Listener, Workers and Stop (050 to 099)

MessageMeaning and action
HTTPD050E MAXSOCK IS ZERO, THE LISTENER IS IN AN INVALID STATE

The loop of the socket thread found no socket to wait for.

System action. The socket thread ends. The server does not start it again. The main task still answers the console commands.

HTTPD051E SELECTEX() FAILED, RC=rc ERRNO=errno

The wait for work on the sockets failed. The message is not written while the server stops.

System action. The socket thread ends. The server does not accept clients any more.

HTTPD052E ACCEPT() FAILED, RC=rc ERRNO=errno

The server could not accept a connection. The message is not written while the server stops.

System action. The listener goes on.

HTTPD053E UNABLE TO SET NON-BLOCKING I/O FOR SOCKET socket

The server could not change the mode of an accepted socket.

System action. The server writes the message and goes on with the connection.

HTTPD054I LISTENING ON address PORT portThe listener is bound. The address in the text is always ANY: HTTPD listens on every address of the host.
HTTPD060I SHUTDOWN thread TCB(tcb) TASK(task) STACKSIZE(size)A thread ends. The thread writes the message itself. thread is SOCKET THREAD or WORKER(xxxxxx), where the number is the address of the work block. tcb and task are 6 hex digits each. size is the stack size.
HTTPD061I STARTING thread TCB(tcb) TASK(task) STACKSIZE(size)A thread starts. The thread writes the message itself. The layout is the same as in HTTPD060I.
HTTPD062E ABEND code IN WORKER(work) CLIENT(client) SOCKET(socket)

A worker ended a request with an abend. code is the abend word (8 hex digits). The other values are the work block, the control block of the client and the socket.

System action. The server closes the client. The worker goes on with the next work item.

HTTPD063E NO RECOVERY IN WORKER(work), CLIENT(client) SOCKET(socket) DROPPED

The worker could not set up its recovery routine. It neither read nor answered the request.

System action. The server closes the connection. The worker goes on.

HTTPD064E SOCKET THREAD IS NOT RUNNING, START ABANDONED

The socket thread is not up after its creation.

System action. The start ends with the return code 8, after the clean up.

HTTPD065W CLIENT a.b.c.d ABANDONED, NO SEND PROGRESS FOR seconds SEC, bytes BYTES SENT, n SUPPRESSED

A client did not receive any data for the whole time of the limit (10 seconds), so the server gave up. This happens on a chunked response and on the body of a static file. bytes is the number of bytes that were sent. The server writes the message at most once in 60 seconds. n is the number of messages that it held back in the meantime. A server that stops writes nothing.

System action. The server cuts the response and closes the connection.

HTTPD066I REQUEST TRACE ON, records RECORDS, bytes BYTESThe Parmlib keyword TRACE= asked for the request trace and the server allocated its table. records is the number of requests the table holds and bytes is the storage it uses. The table is read with the display module HTTPDSRV, target TRACE.
HTTPD067W NO STORAGE FOR REQUEST TRACE, TRACE OFF

TRACE= asked for the request trace, but the server could not get the storage for the table.

System action. The server runs without the trace. Use a smaller value or a larger region.

HTTPD070E UNKNOWN CODEPAGE "name", USING CP037

The value of CODEPAGE= is not known. The known values are CP037, IBM1047 and LEGACY.

System action. The server uses CP037 and goes on.

HTTPD090E UNABLE TO INITIALIZE CONSOLE INTERFACE

The server could not set up the interface for the console commands.

System action. The start ends with the return code 8. No stop message follows.

HTTPD098I HTTPD SHUTTING DOWNThe stop begins. It is the answer to P HTTPD and also the first step after a refused start.
HTTPD099I HTTPD SHUTDOWN COMPLETEThe last message of the stop.

Table 84. Messages 050 to 099

Console Commands (100 to 199)

The messages of this range are the output of the console commands (Chapter 3, “Console Commands”). Most of them are the answer of a command and have no response.

MessageMeaning and action
HTTPD100I CONS(console) "command"The server echoes each command that it gets with MODIFY. console is the identification of the console. command is the text as the operator typed it.
HTTPD101E UNKNOWN CONSOLE COMMAND "word"

The first word of the command is not known. The help (HTTPD150I, then HTTPD151I) follows. A word may be shortened to any leading part. The first match in the list of the help wins.

Response. Use one of the commands in the help.

HTTPD101E UNKNOWN CONSOLE COMMAND "DISPLAY word"The word after DISPLAY is not known. There is no help.
HTTPD101E UNKNOWN CONSOLE COMMAND "SET word"The word after SET is not known. There is no help.
HTTPD102I HTTPD IS LISTENING ON PORT portThe answer of DISPLAY PORTS.
HTTPD103I ..THREAD address roleThe first line of a thread in the answer of DISPLAY THREADS. role is MAIN SERVER THREAD, SOCKET THREAD, DISPATCHER THREAD or WORKER THREAD.
HTTPD104I .....EYE eye .....TCB tcb ..OWNTCB owntcbThe task block of a thread: the eye catcher, tcb and owntcb, in hex.
HTTPD105I .TERMECB ecb ......RC rc STACKSZE sizeThe task block, second line: ecb, the return code and the stack size, in hex.
HTTPD106I ....FUNC func ....ARG1 arg1 ....ARG2 arg2The task block, third line: the function that the thread runs and its two arguments, in hex.
HTTPD107I .....EYE eye ....TASK task .WAITECB ecbThe manager of the pool of workers: eye catcher, task and wait ECB. It is shown if the manager exists.
HTTPD108I ....FUNC func ...UDATA udata STACKSZE sizeThe manager, second line: the function, the user data and the stack size, in hex.
HTTPD109I ..WORKER worker ...QUEUE queue ...STATE state nameThe manager, third line: the worker array and the queue, the state in hex, then the name of the state: INIT, RUNNING, QUIESCE, STOPPED, WAITING or unknown.
HTTPD110I .MINTASK mintask .MAXTASK maxtaskThe limits of the pool of workers, in decimal. SET MINTASK and SET MAXTASK answer with this line.
HTTPD111I .WORKERS workers .DISPCNT countThe number of workers now and the number of dispatches, in decimal.
HTTPD112I ..WORKER worker .....EYE eye .WAITECB ecbA worker: the block, the eye catcher and the wait ECB.
HTTPD113I .....MGR mgr ....TASK task ...QUEUE queueA worker, second line: its manager, its task and its queue.
HTTPD114I ...STATE state nameA worker, state: in hex and by name. The names are INIT, RUNNING, WAITING, DISPATCHED, SHUTDOWN, STOPPED and unknown.
HTTPD115I ...START time textThe start time of the worker: 64 bits in hex, then the date and time as text. The text is empty if the time is 0.
HTTPD116I ....WAIT time textThe time of the last wait of the worker. The layout is the same as in HTTPD115I.
HTTPD117I ....DISP time textThe time of the last dispatch of the worker. The layout is the same as in HTTPD115I.
HTTPD118I PROTOCOL HTTP ....USER user ...GROUP groupThe client of a running worker. user is ANONYMOUS and the group is empty if the client has no credential.
HTTPD119I ..REMOTE CLIENT ....PORT port ......IP addressThe remote side of the client of a worker: port and address of the client.
HTTPD119I ..SOCKET socket ....PORT port (HTTP PROTOCOL)The listener in the answer of DISPLAY THREADS: the socket and the port.

Table 85. Messages 100 to 119

MessageMeaning and action
HTTPD120I ..SOCKET socket ....PORT port ......IP addressThe socket of the client of a running worker, with the port and the address of the peer.
HTTPD120I ...RNAME rnameThe resource name of the server: HTTPD. and the 4 hex digits of the address space number. It is shown for the main thread.
HTTPD121I USERS LOGGED IN: nThe first line of the answer of DISPLAY LOGIN. One HTTPD122I for each credential follows.
HTTPD122I USER userid IP a.b.c.d ACEE(acee)A logged in user: the user, the address of the client and the address of the security environment.
HTTPD123I SMF: level (TYPE type)The first line of the answer of DISPLAY STATS: the level and the record type of SMF (Chapter 8, “SMF Records”).
HTTPD124I REQUESTS: requests ERRORS: errors BYTES: bytes ACTIVE: activeThe counters of the server: requests, errors, bytes and active clients.
HTTPD125I STATISTICS COUNTERS RESETThe counters of requests, errors and bytes are zero. It is the answer of SET STATS RESET, and also follows a level that has the word RESET after it.
HTTPD126I SMF LEVEL SET TO levelThe answer of SET STATS with a level.
HTTPD126E INVALID SET STATS VALUE "operand"

The operand of SET STATS is not NONE, ERROR, AUTH, ALL or RESET. The level does not change.

Response. Give a valid operand.

HTTPD127W MISSING STATS NONE|ERROR|AUTH|ALL [RESET]

SET STATS has no operand.

Response. Give a level.

HTTPD128I PORT port MINTASK mintask MAXTASK maxtaskThe first line of the answer of DISPLAY CONFIG: port and limits of the pool of workers.
HTTPD129I CLIENT_TIMEOUT seconds KEEPALIVE timeout/maxThe client timeout in seconds, the keep-alive timeout and the maximum number of requests on a connection.
HTTPD130I SESSION_TIMEOUT minutes MINtextThe session timeout in minutes. The text (REAPER DISABLED) follows if the value is 0.
HTTPD131I DOCROOT pathThe document root, or (NONE).
HTTPD132I SMF TYPE type LEVEL levelThe record type and the level of SMF (Chapter 8, “SMF Records”). The level is NONE, ERROR, AUTH or ALL.
HTTPD133I CONFIG FROM sourceWhere the configuration came from: the data set name with the member, or DD:HTTPPRM.
HTTPD134I CODEPAGE nameThe code page in use. It is CP037 if none is set.
HTTPD135I SESSION_MAXAGE minutes MINtextThe maximum age of a session in minutes. The text (NO MAX-AGE) follows if the value is 0.
HTTPD136I REALM realmThe realm of Basic authentication.
HTTPD137I RESIDENT yesno MODULES HELD nWhether the server keeps the modules in storage (YES or NO) and how many it holds now.
HTTPD138I RES_NOPROFILE valueThe value of the keyword RES_NOPROFILE: ALLOW or DENY. It is the last line of DISPLAY CONFIG.
HTTPD140I HTTPD version (commit)The answer of DISPLAY VERSION, in upper case.
HTTPD141I .DISPCNT countThe number of dispatches of a worker, in the answer of DISPLAY THREADS.
HTTPD142I TIME yyyy/mm/dd hh:mm:ss GMTThe answer of DISPLAY TIME, the first line: the time in GMT.
HTTPD143I TIME yyyy/mm/dd hh:mm:ss LOCALThe second line: the local time. The server adds the text OFFSET= and the sign and the minutes of the offset. An argument in minutes sets the offset (from −720 to +720). Without an argument, the offset of the system applies.
HTTPD144E INVALID MEMORY ADDRESS 0xaddress

The address of DISPLAY MEMORY is above 16 MB.

Response. Give an address below 16 MB.

HTTPD145I END OF MEMORY DUMP FOR 0xaddressThe dump of DISPLAY MEMORY is complete. The lines of the dump have no number (“Lines Without a Number”).
HTTPD146E ESTAE CREATE FAILURE, RC=0xrcThe server could not set up the recovery for DISPLAY MEMORY. The dump is not made.
HTTPD147E ABEND Scode FOR DISPLAY MEMORY 0xaddressThe read of the storage for DISPLAY MEMORY ended with a system abend. code has 3 hex digits.
HTTPD147E ABEND Ucode FOR DISPLAY MEMORY 0xaddressThe read of the storage for DISPLAY MEMORY ended with a user abend. code is in decimal.
HTTPD148I USAGE: DISPLAY MEMORY XXXXXX[,NNN] (D M XXXXXX)DISPLAY MEMORY has no address. The default length of a dump is 256 bytes and the maximum is 4096.
HTTPD149I USAGE: SET MAXTASK|MINTASK N (S MA N, S MI N), N = 1 TO 100

SET MAXTASK or SET MINTASK has no number, or a negative number. The limits do not change, and the dispatcher is not woken.

Response. Give a decimal number.

Table 86. Messages 120 to 149

MessageMeaning and action
HTTPD150I MODIFY COMMANDS ARE:The header of the help. The command ? or HELP and an unknown command show it.
HTTPD151I lineA line of the help. The help lists DISPLAY with the operands CONFIG, LOGIN, MEMORY, PORTS, STATS, THREADS, TIME and VERSION, and SET with MAXTASK, MINTASK and STATS. Each command has a line with the command and its short form and a line with a description. The last line is the example /F HTTPD,D C.
HTTPD199I -------------------------------------------------------A separator line. It closes each block of the answer of DISPLAY THREADS, and the answer of SET MAXTASK and SET MINTASK.

Table 87. Messages 150 to 199

Routes, SMF and Resident Modules (410 to 444)

The routes are described in Chapter 2, “Routes and Authentication Policy” and the keywords in Chapter 1, “The HTTPPRM Keywords”. Several messages of this range say that a route could not be registered. A route that is lost does not remove its path: the server serves the path from the document root, with nothing that gates it. Therefore a lost route that asked for a gate (AUTH= other than NONE, or RES=) is an error. The server sets an error flag, writes HTTPD419E and refuses to start with HTTPD420E.

MessageMeaning and action
HTTPD410W CGI= IS DEPRECATED, USE MOD= INSTEAD

The configuration has the old keyword CGI=. The server still honors it.

Response. Write MOD= instead.

HTTPD411E UNKNOWN AUTH MODE 'mode' -- USE NONE, FORM, BASIC OR TOKEN

A route has an AUTH= value that HTTPD does not know. The value is cut after 24 characters.

System action. The server refuses the route. HTTPD419E and HTTPD420E follow, and the start ends with the return code 8.

Response. Write NONE, FORM, BASIC or TOKEN.

HTTPD412W IGNORING MALFORMED RES= 'text' (NEED CLASS:RESOURCE)

The value of RES= of a route is not in the form class:resource.

System action. The server ignores the option and goes on.

HTTPD413W IGNORING UNKNOWN ROUTE OPTION 'token'

A route has a word that is not an option. The old option RECLAIM= gets HTTPD422W instead.

System action. The server ignores the word and goes on.

HTTPD414W AUTH=NONE IGNORES RES=class:resource (PUBLIC ROUTE)

A route has AUTH=NONE and also RES=. NONE wins and the route is public. A RES= without AUTH= means BASIC.

System action. The server goes on.

HTTPD415W LOC= REQUIRES A PATH (E.G. LOC /ADMIN/* AUTH=BASIC)

A LOC= line is empty, or it has an option where the path belongs.

System action. The server drops the line. If the line asked for a gate, HTTPD419E and HTTPD420E follow.

HTTPD416I STATS: requests REQUESTS, errors ERRORS, bytes BYTESThe counters of the run, written at the stop before HTTPD099I.
HTTPD417I LOCATION path REGISTEREDA LOC= route is registered.
HTTPD418E NO STORAGE FOR RES=class:resource

The server had no storage for the RES= option of a route. The class is cut after 16 characters and the resource after 40.

System action. The server refuses the route. HTTPD419E and HTTPD420E follow, and the start ends with the return code 8.

HTTPD419E kind=path COULD NOT BE REGISTERED -- ITS AUTH POLICY IS LOST

A route that asked for a gate could not be registered. kind is MOD or LOC. path is the path, or the line as written if the line could not be split, cut after 40 characters. The causes are no storage for the route or for RES=, a line that cannot be split, a missing path or program name, and an unknown AUTH= value.

System action. The server sets an error flag. HTTPD420E follows.

Response. Correct the line in the configuration.

HTTPD420E ROUTE AUTHORIZATION POLICY INCOMPLETE -- HTTPD WILL NOT START

At least one route lost its policy (HTTPD419E, or HTTPD048E), or the value of RES_NOPROFILE is not valid (HTTPD427E). The message is written at the end of the configuration, before the bind. Its text is the same for every cause. The cause is in the message before it.

System action. The start ends with the return code 8.

Response. Correct the lines that the other messages name.

HTTPD421W MOD= REQUIRES A PROGRAM NAME (E.G. MOD=MVSMF /ZOSMF/* AUTH=BASIC)

A MOD= line is empty, or it has an option where the program name belongs.

System action. The server drops the line. If the line asked for a gate, HTTPD419E and HTTPD420E follow.

HTTPD422W keyword IS RETIRED -- CGI STORAGE RECLAIM IS ALWAYS ON

A route has the option RECLAIM=. The keyword is shown as written. The option has no effect.

System action. The server goes on.

HTTPD423W UNABLE TO REGISTER LOCATION path

The server could not store a LOC= route. The prefix is served from the document root, with nothing that gates it.

System action. If the route asked for a gate, HTTPD419E and HTTPD420E follow and the server does not start.

HTTPD424W INVALID REALM VALUE: value

The value of REALM= is not valid. The value is cut after 40 characters.

System action. The server keeps the default realm (the SMF identification) and goes on.

HTTPD425W NO PROFILE FOR class:resource -- path NOT GATED

A route with RES= (not AUTH=NONE) names a resource that the security product does not protect. The check at the start found no profile. The class is cut after 8 characters, the resource after 32 and the path after 24.

System action. The route is served, without a gate. The server goes on.

Response. Define the profile, or correct the name in the configuration. To refuse the requests instead, set RES_NOPROFILE=DENY (then HTTPD426W replaces this message).

HTTPD426W NO PROFILE FOR class:resource -- path REFUSES ALL REQUESTS

As HTTPD425W, for a server that runs with RES_NOPROFILE=DENY. The check at the start found no profile for the resource of a route with RES= (not AUTH=NONE). The class is cut after 8 characters, the resource after 32 and the path after 24.

System action. The server goes on. The route answers every request that reaches the check with status 403, until a profile exists. A profile that is defined and loaded later takes effect without a restart, but this message is written at the start only.

Response. Define the profile, or correct the name in the configuration.

HTTPD427E INVALID RES_NOPROFILE VALUE "value" (ALLOW|DENY)

The value of RES_NOPROFILE is neither ALLOW nor DENY. The value is cut after 16 characters.

System action. The server sets an error flag. It does not fall back to ALLOW. HTTPD420E follows and the start ends with the return code 8.

Response. Write ALLOW or DENY.

HTTPD430I SMF TYPE type LEVEL levelNot issued in this release. The text is defined, and no code that is built writes it. DISPLAY CONFIG shows the same values in HTTPD132I.
HTTPD430W SMF TYPE type CONFIGURED BUT SMF INACTIVE

The level of SMF is above NONE, but SMF is not active on the system.

System action. The server goes on.

Response. Start SMF, or set the level to NONE.

HTTPD431W INVALID SMF LEVEL "value"

The value of SMF= is not a level.

System action. The server keeps the earlier level and goes on.

HTTPD432W INVALID SMF TYPE=type (128-255)

The record type is not in the range from 128 to 255.

System action. The server keeps the earlier type and goes on.

HTTPD440W MODULE module NOT FOUND AT STARTUP, NOT HELD

With RESIDENT=YES, the server tried to load a MOD= module at the start and did not find it. The name is in upper case, up to 8 characters.

System action. The server does not hold the module. It fetches it for each request.

HTTPD441W MODULE module NOT REUSABLE, FETCHED PER REQUEST

The module is not marked reusable, so the server cannot keep it.

System action. The server fetches it for each request. The route works.

HTTPD442W MODULE module LOAD FAILED, ABEND CODE Scode REASON reason, FETCHED PER REQUEST

The load of the module at the start failed with a system abend. The codes in the source comment are 806 (not found), 106 (fetch error) and 80A (no storage).

System action. The server fetches the module for each request. The route works.

HTTPD443W INVALID RESIDENT VALUE "value" (YES|NO)

The value of RESIDENT= is not YES or NO.

System action. The default YES stays.

HTTPD444W INVALID TRACE VALUE "value" (0 OR 16-1024), TRACE OFF

The value of TRACE= is not a number, or it is not 0 and not in the range from 16 to 1024.

System action. The request trace stays off.

Table 88. Messages 410 to 444

Diagnostics (901 to 999)

The header says that a message of this range means the server met a state that its code did not expect, and that each one is worth a bug report.

MessageMeaning and action
HTTPD901E SPIN IN SERVE_CLIENT: CLIENT(client) STATE(state) SOCKET(socket) REQ(count) WORKER(work) -- FORCING CLOSE

The processing of a client went around 1000 times without a change of state.

System action. The server clears the busy entry and closes the client.

HTTPD904E NO STORAGE FOR ENVIRONMENT VARIABLE name CLIENT(client)

The server could not store an environment variable for a request. The name is cut after 32 characters.

System action. The set of the variable fails.

HTTPD905E ENVIRONMENT VARIABLE name TOO LARGE CLIENT(client)

The value of an environment variable does not fit.

System action. The set of the variable fails.

HTTPD906W STORAGE RECLAIM FOR module FAILED, RC=rc

After a module ran, the server could not free the storage of the module. The storage stays allocated until the server restarts.

System action. The server goes on.

HTTPD907W STALE BUSY ENTRY FOR CLIENT(client) STATE(state) SOCKET(socket) REQ(count) -- CLEARED

A client was in the list of busy clients when the processing found no progress.

System action. The server clears the entry and goes on.

HTTPD908E EXTERNAL PROGRAM module reason

A program that a route runs failed. reason is one of: “was not found”, “could not be loaded”, “was dispatched without a program name”, “could not be started, ESTAE create failed”, “returned rc n”, “failed with Sxxx ABEND” or “failed with Unnnn ABEND”. The name is “(none)” if there is none. “failed with U0801 ABEND”, with @@CRT0 - No storage for C stack before it on the console, means that the region had no free block for the stack of the module (see “The region”).

System action. The server frees the storage of the program (HTTPD906W if that fails). If no response header went out, the client gets the status 503 with the same text. The server goes on.

HTTPD909E UNSUPPORTED HTTP STATUS code REQUESTED, SENT 500

A module asked for a status that HTTPD does not know.

System action. The server sends the status 500.

HTTPD910E ABEND Scode DETECTEDNot issued in this release. The text is defined, and no code that is built writes it.
HTTPD910E ABEND Ucode DETECTEDNot issued in this release. The text is defined, and no code that is built writes it.
HTTPD911E function LOCK FAILURE

The lock of the server block failed. function is the name of the function, in lower case.

System action. The function skips its work. The socket thread goes on.

HTTPD912E TERMINATE FAILED WITH RC=rc

The stop routine ended with an abend or an error. rc is the value that it returned, in 8 hex digits.

System action. The server goes on to end. HTTPD416I and HTTPD099I may be missing.

HTTPD913E UNEXPECTED SUBTYPE n IN HTTP_GET()

The processing of a GET found a type of request that it does not handle.

System action. The client gets the status 500.

HTTPD914E HTTP_SEND() POSITION UNDERFLOW pos

The send loop found a position before the start of the buffer.

System action. The loop stops.

HTTPD915E function LENGTH INCONSISTENCY, LEN=len BUFLEN=buflen

The formatting of text for the response failed. function is ssi_printv.

System action. The function fails.

HTTPD916E HTTP_SET_BUSY() FAILED

The server could not mark a client as busy.

System action. The server does not serve the client in this pass.

HTTPD920E name MUST BE CALLED BY THE HTTPD SERVER

A display module (HTTPDM, HTTPDMTT or HTTPDSRV) was run from TSO or from a batch job (Chapter 7, “The Display Modules”). The same sentence goes to the standard output.

System action. The module ends with the return code 12.

Response. Call the module through its route of the server.

HTTPD921W ABEND0C1 ALLOCATED kb KB IN blocks BLOCKS, ABENDING WITHOUT FREEINGThe test module ABEND0C1 allocated storage and now ends with an S0C1 abend on purpose. HTTPD906W and HTTPD908E follow.
HTTPD922E HTTPD CONTROL BLOCK NOT FOUND BY nameA module could not find the control block of the server. A trace back follows.
HTTPD923E HTTPC CONTROL BLOCK NOT FOUND BY nameNot issued in this release. The text is defined, and no code that is built writes it. Its only call is compiled out.
HTTPD999E OUT OF MEMORY

The server had no storage for the control block of a new client.

System action. The server closes the accepted socket. The listener goes on.

Table 89. Messages 901 to 999

Lines Without a Number

A few console lines have no message number.

Client timeout
A client sent part of a request and then went silent. The line is client xxxxxxxx on socket n timed out after n seconds, where the first value is the address of the control block of the client and the last is the keep-alive timeout if the connection already served a request, or else the client timeout. A second output is a dump of the buffer with the title Receive Buffer. Both are on by default. The keywords CLIENT_TIMEOUT_MSG=0 and CLIENT_TIMEOUT_DUMP=0 switch them off (Chapter 1, “The HTTPPRM Keywords”). The connection is closed.
Memory dump
The lines of DISPLAY MEMORY between the command and HTTPD145I. The title is DISPLAY MEMORY.
Offset
The text OFFSET= at the end of HTTPD143I.

Messages That Are Gone

The numbers HTTPD900D, HTTPD902D and HTTPD903D were debug counters and are no longer defined. HTTPD uses no message letter other than I, W and E.

The texts of HTTPD010I, HTTPD011I, HTTPD013I, HTTPD430I, both texts of HTTPD910E and HTTPD923E are defined in the header and no code that is built writes them. The function that would write the first three is never called. The text of HTTPD012E is written, but from a different place.