928 lines
56 KiB
HTML
928 lines
56 KiB
HTML
|
<?xml version="1.0" encoding="UTF-8"?>
|
|||
|
<!DOCTYPE html
|
|||
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|||
|
<html lang="en-us" xml:lang="en-us">
|
|||
|
<head>
|
|||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|||
|
<meta name="security" content="public" />
|
|||
|
<meta name="Robots" content="index,follow" />
|
|||
|
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
|
|||
|
<meta name="DC.Type" content="topic" />
|
|||
|
<meta name="DC.Title" content="Module mod_cgi" />
|
|||
|
<meta name="copyright" content="(C) Copyright IBM Corporation 2002,2006" />
|
|||
|
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2002,2006" />
|
|||
|
<meta name="DC.Format" content="XHTML" />
|
|||
|
<meta name="DC.Identifier" content="rzaiemod_cgi" />
|
|||
|
<meta name="DC.Language" content="en-us" />
|
|||
|
<!-- All rights reserved. Licensed Materials Property of IBM -->
|
|||
|
<!-- US Government Users Restricted Rights -->
|
|||
|
<!-- Use, duplication or disclosure restricted by -->
|
|||
|
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
|||
|
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
|
|||
|
<link rel="stylesheet" type="text/css" href="./ic.css" />
|
|||
|
<title>Module mod_cgi</title>
|
|||
|
</head>
|
|||
|
<body id="rzaiemod_cgi"><a name="rzaiemod_cgi"><!-- --></a>
|
|||
|
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
|
|||
|
<!--Java sync-link--><h1 class="topictitle1">Module mod_cgi</h1>
|
|||
|
<div><div class="important"><span class="importanttitle">Important:</span> Information
|
|||
|
for this topic supports the latest PTF levels for HTTP Server for i5/OS .
|
|||
|
It is recommended that you install the latest PTFs to upgrade to the latest
|
|||
|
level of the HTTP Server for i5/OS. Some of the topics documented here are
|
|||
|
not available prior to this update. See <a href="http://www-03.ibm.com/servers/eserver/iseries/software/http/services/service.html" target="_blank">http://www.ibm.com/servers/eserver/iseries/software/http/services/service.htm</a> <img src="www.gif" alt="Link outside Information Center" /> for more information. </div>
|
|||
|
<p><strong>Summary</strong></p>
|
|||
|
<p>The module mod_cgi provides for execution of CGI scripts. This module will
|
|||
|
process any file with mime type application/x-httpd-cgi. Any file that has
|
|||
|
the mime type application/x-httpd-cgi or handler cgi-script will be treated
|
|||
|
as a CGI script, and run by the server, with its output being returned to
|
|||
|
the client. Files acquire this type either by having a name containing an
|
|||
|
extension defined by the <a href="rzaiemod_mime.htm#addtype">AddType</a> directive,
|
|||
|
or by being in a <a href="rzaiemod_alias.htm#scriptalias">ScriptAlias</a> directory.
|
|||
|
</p>
|
|||
|
<p>When the server invokes a CGI script, it will add a variable called DOCUMENT_ROOT
|
|||
|
to the environment. This variable will contain the value of the <a href="rzaiemod_core.htm#documentroot">DocumentRoot</a> configuration variable. </p>
|
|||
|
<p><strong>CGI Environment variables</strong></p>
|
|||
|
<p>The server will set the CGI environment variables as described in the <a href="http://hoohoo.ncsa.uiuc.edu/cgi/" target="_blank">CGI
|
|||
|
specification</a> <img src="www.gif" alt="Link outside Information Center" /> with the following provisions. See <a href="rzaieenvvar.htm">Environment variables on HTTP Server</a> for a list of environment variables.</p>
|
|||
|
<dl><dt class="dlterm">REMOTE_HOST </dt>
|
|||
|
<dd>This will only be set if <a href="rzaiemod_core.htm#hostnamelookups">HostNameLookups</a> is set to <var class="varname">double</var> (it is <var class="varname">off</var> by
|
|||
|
default), and if a reverse DNS lookup of the accessing hosts address indeed
|
|||
|
finds a host name. </dd>
|
|||
|
</dl>
|
|||
|
<dl><dt class="dlterm">REMOTE_IDENT </dt>
|
|||
|
<dd>This will only be set if <a href="rzaiemod_core.htm#identitycheck">IdentityCheck</a> is set to <var class="varname">on</var> and the accessing host
|
|||
|
supports the ident protocol. <div class="note"><span class="notetitle">Note:</span> The contents of this variable cannot be
|
|||
|
relied upon because it can easily be faked. If there is a proxy between the
|
|||
|
client and the server, the variable is not useful.</div>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
<dl><dt class="dlterm">REMOTE_USER </dt>
|
|||
|
<dd>This will only be set if the CGI script is subject to authentication.</dd>
|
|||
|
</dl>
|
|||
|
<div class="hr"><h4 class="sectiontitle">CGI Debug</h4><p>Debugging CGI scripts
|
|||
|
has traditionally been difficult, mainly because it has not been possible
|
|||
|
to study the output (standard output and error) for scripts which are failing
|
|||
|
to run properly. However, the iSeries™ runs CGI programs in previously
|
|||
|
started jobs (not prestart jobs) and it also reuses these jobs to run many
|
|||
|
CGI program invocations. Therefore, debugging your CGI program is simple.
|
|||
|
You simply need to find the job that runs CGI programs. It will have a jobname
|
|||
|
the same as the server instance name. The joblog will contain either HTP2001
|
|||
|
or HTP2002 indicating whether it is a CGI single threaded only job, or a CGI
|
|||
|
multi-thread capable job. If you use a dedicated server instance, when you
|
|||
|
invoke your CGI from a browser, the first job in the WRKACTJOB list for CGI,
|
|||
|
will be the job chosen to run the CGI request. Therefore, you can use STRSRVJOB
|
|||
|
against this job and STRDBG against your CGI program. From here, you have
|
|||
|
full debug capabilities provided with the iSeries debugger. You can also
|
|||
|
use standard error (stderr) for debug information. The debug information
|
|||
|
written to STDERR is written to the ScriptLog if one is configured or to the
|
|||
|
ErrorLog if a ScriptLog is not configured. The ScriptLog and ErrorLog are
|
|||
|
both created with CCSID 1208 UTF-8. For CGI conversion mode EBCDIC, debug
|
|||
|
information is assumed to be in the CCSID of the CGI job. The logging process
|
|||
|
handles the conversion from CGI job CCSID to UTF-8. For CGI converison mode
|
|||
|
BINARY, debug information is written as is. </p>
|
|||
|
</div>
|
|||
|
<div class="hr"><h4 class="sectiontitle">ScriptLog Format</h4><p>When configured,
|
|||
|
the ScriptLog logs any CGI that does not execute properly. Each CGI script
|
|||
|
that fails to operate causes several lines of information to be logged. The
|
|||
|
first two lines are always of the format: </p>
|
|||
|
<blockquote><pre>%% [time] request-line %% HTTP-status CGI-script-filename </pre>
|
|||
|
</blockquote>
|
|||
|
<p>If
|
|||
|
the error is that CGI script cannot be run, the log file will contain an extra
|
|||
|
two lines: </p>
|
|||
|
<blockquote><pre>%%error error-message</pre>
|
|||
|
</blockquote>
|
|||
|
<p>Alternatively,
|
|||
|
if the error is the result of the script returning incorrect header information
|
|||
|
(often due to a bug in the script), the following information is logged: </p>
|
|||
|
<blockquote><pre>%request All HTTP request headers received POST or PUT entity (if any) %response
|
|||
|
All headers output by the CGI script %stdout CGI standard output %stderr CGI standard error </pre>
|
|||
|
</blockquote>
|
|||
|
<div class="note"><span class="notetitle">Note:</span> The <samp class="codeph">%stdout</samp> and <samp class="codeph">%stderr</samp> parts may be missing if the script did not output anything
|
|||
|
on standard output or standard error</div>
|
|||
|
</div>
|
|||
|
<div class="hr"></div>
|
|||
|
<p><strong>Directives</strong></p>
|
|||
|
<ul><li><a href="#cgiconvmode">CGIConvMode</a></li>
|
|||
|
<li><a href="#cgiinitialurl">CgiInitialUrl</a></li>
|
|||
|
<li><a href="#cgijobccsid">CGIJobCCSID</a></li>
|
|||
|
<li><a href="#cgijoblocale">CGIJobLocale</a></li>
|
|||
|
<li><a href="#cgimultithreaded">CGIMultiThreaded</a></li>
|
|||
|
<li><a href="#cgirecyclepersist">CGIRecyclePersist</a></li>
|
|||
|
<li><a href="#defaultnetccsid">DefaultNetCCSID</a></li>
|
|||
|
<li><a href="#maxcgijobs">MaxCGIJobs</a></li>
|
|||
|
<li><a href="#maxpersistentcgi">MaxPersistentCGI</a></li>
|
|||
|
<li><a href="#maxpersistentcgitimeout">MaxPersistentCGITimeout</a></li>
|
|||
|
<li><a href="#maxthreadedcgijobs">MaxThreadedCGIJobs</a></li>
|
|||
|
<li><a href="#persistentcgitimeout">PersistentCGITimeout</a></li>
|
|||
|
<li><a href="#scriptlog">ScriptLog</a></li>
|
|||
|
<li><a href="#scriptlogbuffer">ScriptLogBuffer</a></li>
|
|||
|
<li><a href="#scriptloglength">ScriptLogLength</a></li>
|
|||
|
<li><a href="#startcgi">StartCGI</a></li>
|
|||
|
<li><a href="#startthreadedcgi">StartThreadedCGI</a></li>
|
|||
|
<li><a href="#threadedcgiinitialurl">ThreadedCgiInitialUrl</a></li>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
<div class="hr" id="cgiconvmode"><a name="cgiconvmode"><!-- --></a><h2 class="topictitle2">CGIConvMode</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: CGIConvMode <var class="varname">mode</var> </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: CGIConvMode EBCDIC </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config, virtual host, directory,
|
|||
|
.htaccess, Not in Limit</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: FileInfo </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CGIConvMode BINARY </td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>The CGIConvMode directive is used to specify the conversion mode that your
|
|||
|
server will use when processing CGI programs.</p>
|
|||
|
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>mode</em></dt>
|
|||
|
<dd><ul><li>Valid modes include the following:
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="border" border="1" rules="all"><thead align="left"><tr><th valign="top" width="20.707070707070706%" id="d0e253">Mode</th>
|
|||
|
<th valign="top" width="79.29292929292929%" id="d0e255">Description</th>
|
|||
|
</tr>
|
|||
|
</thead>
|
|||
|
<tbody><tr><td valign="top" width="20.707070707070706%" headers="d0e253 ">EBCDIC</td>
|
|||
|
<td valign="top" width="79.29292929292929%" headers="d0e255 ">The server converts everything into the EBCDIC CCSID
|
|||
|
of the CGI job. If the directive CGIJobCCSID exists, it has precedence in
|
|||
|
its context over the job CCSID of the server. The server assumes the header
|
|||
|
output and encoded characters "%xx" are in the EBCDIC CCSID of the CGI job.
|
|||
|
The server assumes that the body output is in the EBCDIC CCSID of the CGI
|
|||
|
job unless specified otherwise using the Content-type header.</td>
|
|||
|
</tr>
|
|||
|
<tr><td valign="top" width="20.707070707070706%" headers="d0e253 ">EBCDIC_JCD</td>
|
|||
|
<td valign="top" width="79.29292929292929%" headers="d0e255 ">The server will use the Japanese Codepage Detection
|
|||
|
utility to determine which Japanese ASCII CCSID to convert from. Otherwise,
|
|||
|
this option is the same as the EBCDIC option.</td>
|
|||
|
</tr>
|
|||
|
<tr><td valign="top" width="20.707070707070706%" headers="d0e253 ">BINARY</td>
|
|||
|
<td valign="top" width="79.29292929292929%" headers="d0e255 ">The server performs no conversion on QUERY_STRING or
|
|||
|
STDIN data. Environment variables are encoded in the CGI job's EBCDIC CCSID. <p>The
|
|||
|
server expects the header output and encoded characters "%xx" in ASCII.
|
|||
|
The server assumes that the body output is in ASCII unless specified otherwise
|
|||
|
using the Content-type header. This differs from no parse header CGI in that
|
|||
|
the server will still build the HTTP headers and perform conversion on the
|
|||
|
body output if necessary.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
</blockquote>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="hr" id="cgiinitialurl"><a name="cgiinitialurl"><!-- --></a><h2 class="topictitle2">CgiInitialUrl</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: CgiInitialUrl <var class="varname">url userid</var></td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CgiInitialUrl /qsys.lib/qsyscgi.lib/db2www.pgm/mymacros/macro.ndm/initial
|
|||
|
*</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CgiInitialUrl /qsys.lib/cgi.lib/mycgi.pgm
|
|||
|
QTMHHTP1</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CgiInitialUrl /QOpenSys/mypacedir/pacecgi
|
|||
|
USER1</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CgiInitialUrl /qsys.lib/cgi.lib/mycgi.pgm?init=yes</td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>This directive is used to load and initialize CGI programs when the server
|
|||
|
starts. At server startup, when we are processing the StartCgi directive,
|
|||
|
we are starting jobs to run CGI programs in. This new directive will enable
|
|||
|
the server to run a CGI request to the CGI job enabling the CGI program to
|
|||
|
be loaded and initialized. This is beneficial for Net.Data<sup>®</sup> users and other CGI programs
|
|||
|
built to use "named" activation groups. The initialization of the "named"
|
|||
|
activation group is a performance issue that the first user of the CGI job
|
|||
|
has to endure. This function will enable the performance issue to be moved
|
|||
|
to when the server starts, so the first user does not have to pay the performance
|
|||
|
penalty. </p>
|
|||
|
<p>If there are no StartCgi directives, an error will be posted and the server
|
|||
|
will not start.</p>
|
|||
|
<blockquote><dl><dt class="dlterm"><strong>Parameter One</strong>: <em>url</em></dt>
|
|||
|
<dd><ul><li>The <var class="varname">url</var> parameter value is actually the physical path
|
|||
|
URL, not the logical path URL. It should not be fully qualified (do not use <kbd class="userinput">http://system:port/</kbd>).
|
|||
|
It must start with a <kbd class="userinput">/</kbd> and contains the physical path
|
|||
|
to the CGI program and any path info needed by the CGI program, including
|
|||
|
query-string. If a URL is specified that is not valid, the server will not
|
|||
|
start.</li>
|
|||
|
</ul>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
<dl><dt class="dlterm"><strong>Parameter Two</strong>: <em>userid</em></dt>
|
|||
|
<dd><ul><li>The <var class="varname">userid</var> parameter value is either a valid iSeries
|
|||
|
userid or <kbd class="userinput">*</kbd> where <kbd class="userinput">*</kbd> means all
|
|||
|
of the userids specified on the StartCgi directive. To check for valid values,
|
|||
|
follow the rules for iSeries user profiles. The userid is optional.</li>
|
|||
|
</ul>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
</blockquote>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="nested1" xml:lang="en-us" id="cgijobccsid"><a name="cgijobccsid"><!-- --></a><h2 class="topictitle2">CGIJobCCSID</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: CGIJobCCSID <var class="varname">cgi-job-character-set-identification-number</var></td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: CGIJobCCSID <var class="varname">Dependent upon server-character-set-identification-number</var></td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config, virtual host, directory,
|
|||
|
not in limit, .htaccess</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CGIJobCCSID 37 </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: To run one CGI program in CCSID 37 (English):<pre>ScriptAlias /cgi-english/ /QSYS.LIB/ENGLISH.LIB/
|
|||
|
<Directory /QSYS.LIB/ENGLISH.LIB/>
|
|||
|
Allow From all
|
|||
|
Options +ExecCGI
|
|||
|
DefaultNetCCSID 819
|
|||
|
CGIJobCCSID 37
|
|||
|
CGIConvMode EBCDIC
|
|||
|
</Directory></pre>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: To run a different CGI program in CCSID
|
|||
|
284 (Spanish):<pre>ScriptAlias /cgi-spanish/ /QSYS.LIB/SPANISH.LIB/
|
|||
|
<Directory /QSYS.LIB/SPANISH.LIB/>
|
|||
|
Allow From all
|
|||
|
Options +ExecCGI
|
|||
|
DefaultNetCCSID 819
|
|||
|
CGIJobCCSID 284
|
|||
|
CGIConvMode EBCDIC
|
|||
|
</Directory></pre>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: For GET and POST – Use the URI to determine
|
|||
|
the language of the user:<pre>Enter: http://www.mydomain.com/cgi-bin/ENG/819/...
|
|||
|
The configuration file would have this container configuration:
|
|||
|
<Location /cgi-bin/ENG/819/>
|
|||
|
DefaultNetCCSID 819
|
|||
|
CGIJobCCSID 37
|
|||
|
</Location>
|
|||
|
ScriptAlias /cgi-bin/ /QSYS.LIB/CGI.LIB/
|
|||
|
<Directory /QSYS.LIB/CGI.LIB/>
|
|||
|
Allow From all
|
|||
|
Options +ExecCGI
|
|||
|
CGIConvMode EBCDIC
|
|||
|
</Directory>
|
|||
|
|
|||
|
The same configuration can handle this URI for a Japanese speaking user.
|
|||
|
Enter: http://www.mydomain.com/cgi-bin/JAP/942/
|
|||
|
|
|||
|
The configuration file would also have this container configuration:
|
|||
|
<Location /cgi-bin/JAP/942/>
|
|||
|
DefaultNetCCSID 942
|
|||
|
CGIJobCCSID 5035
|
|||
|
CGIConvMode EBCDIC_JCD
|
|||
|
</Location>
|
|||
|
ScriptAlias /cgi-bin/ /QSYS.LIB/CGI.LIB/
|
|||
|
<Directory /QSYS.LIB/CGI.LIB/>
|
|||
|
Allow From all
|
|||
|
Options +ExecCGI
|
|||
|
CGIConvMode EBCDIC
|
|||
|
</Directory> </pre>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div class="p">The CGIJobCCSID directive specifies the CCSID under which CGI jobs run,
|
|||
|
the CGI job character set environment, and the EBCDIC CCSID that is used when
|
|||
|
the server converts: <ul><li>Input request data for user CGI programs</li>
|
|||
|
<li>Output response data from user CGI programs to be sent back to the requester
|
|||
|
(client browser)</li>
|
|||
|
</ul>
|
|||
|
If this directive is not specified, the default behavior is to have the
|
|||
|
CGI job run under the same CCSID as the main server jobs. See the DefaultFsCCSID
|
|||
|
directive for detailed information on how this is determined. </div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="nested1" xml:lang="en-us" id="cgijoblocale"><a name="cgijoblocale"><!-- --></a><h2 class="topictitle2">CGIJobLocale</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: CGILocale <var class="varname">locale_path_name</var></td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config, virtual host, directory,
|
|||
|
not in limit, .htaccess</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CGIJobLocale /QSYS.LIB/LOCALELIB.LIB/EN_US.LOCALE</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: To run one CGI program in CCSID 37 with
|
|||
|
an English based locale (English):<pre>ScriptAlias /cgi-english/ /QSYS.LIB/ENGLISH.LIB/
|
|||
|
|
|||
|
<Directory /QSYS.LIB/ENGLISH.LIB/>
|
|||
|
Allow From all
|
|||
|
Options +ExecCGI
|
|||
|
DefaultNetCCSID 819
|
|||
|
CGIJobCCSID 37
|
|||
|
CGIJobLocale /QSYS.LIB/LOCALELIB.LIB/EN_US.LOCALE
|
|||
|
CGIConvMode EBCDIC
|
|||
|
</Directory> </pre>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: To run a different CGI program in CCSID
|
|||
|
273 and with a German based locale (German):<pre>ScriptAlias /cgi-german/ /QSYS.LIB/GERMAN.LIB/
|
|||
|
<Directory /QSYS.LIB/GERMAN.LIB/>
|
|||
|
Allow From all
|
|||
|
Options +ExecCGI
|
|||
|
DefaultNetCCSID 819
|
|||
|
CGIJobCCSID 273
|
|||
|
CGIJobLocale /QSYS.LIB/LOCALELIB.LIB/DE_DE.LOCALE
|
|||
|
CGIConvMode EBCDIC
|
|||
|
</Directory> </pre>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>Applications can be created independent of language, cultural data, or
|
|||
|
specific characters. Locales can be accessed to provide this type of support
|
|||
|
to any integrated language environment-based application. The CGIJobLocale
|
|||
|
directive allows a locale to be set globally or for a specific CGI job. After
|
|||
|
the locale is set, country specific information such as date or time format
|
|||
|
can be accessed. Some ILE C/C++ run time functions such as <samp class="codeph">ctime()</samp> and <samp class="codeph">localtime()</samp> are
|
|||
|
locale sensitive. The environment variable CGI_JOB_LOCALE is set from the
|
|||
|
CGIJobLocale directive. </p>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="hr" id="cgimultithreaded"><a name="cgimultithreaded"><!-- --></a><h2 class="topictitle2">CGIMultiThreaded</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: CGIMultiThreaded <var class="varname">on | off</var> </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: CGIMultiThreaded off </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config, virtual host, directory,
|
|||
|
.htaccess, Not in Limit</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: FileInfo </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CGIMultiThreaded on </td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>The CGIMultiThreaded directive is used to specify whether your CGI programs
|
|||
|
should be run in a job that is multiple thread capable. HTTP Server uses a
|
|||
|
pool of pre-started jobs for handling CGI requests. Multiple threaded programs
|
|||
|
must run in a multiple thread-capable job. The job pool that the job runs
|
|||
|
in is specified at job startup time. Once the job has started, it cannot be
|
|||
|
changed to another job pool. Not all iSeries APIs are thread safe, some will
|
|||
|
issue an error if used in a multiple thread-capable job. This happens even
|
|||
|
if the program does not actually have multiple threads running. Because of
|
|||
|
this, HTTP Server must default to non-multiple thread capable jobs for CGI
|
|||
|
programs for compatibility reasons. If your CGI program uses multiple threads,
|
|||
|
it must run in a multiple thread capable job. If your CGI does not need multiple
|
|||
|
threads, you should run it in the single threaded CGI job for performance
|
|||
|
reasons. </p>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="hr" id="cgirecyclepersist"><a name="cgirecyclepersist"><!-- --></a><h2 class="topictitle2">CGIRecyclePersist</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: CGIRecyclePersist <var class="varname">on | off</var> </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: CGIRecyclePersist off </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config, virtual host, directory,
|
|||
|
.htaccess, Not in Limit</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: FileInfo </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CGIRecyclePersist on </td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>The CGIRecyclePersist directive instructs the server what should be done
|
|||
|
with the job that was being used by a persistent CGI when the persistent CGI
|
|||
|
exits persistence normally. </p>
|
|||
|
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>on | off</em></dt>
|
|||
|
<dd><ul><li>The <var class="varname">on</var> value indicates that the server can reuse this
|
|||
|
job for other CGI requests. When this is used, the persistent CGI program
|
|||
|
is responsible for cleaning up any static data from the persistent CGI transaction.
|
|||
|
The server will not perform any action other than to remove all environment
|
|||
|
variables, to clean up any static data. Before using this setting, the CGI
|
|||
|
programmer need to verify that it does indeed clean up its static data. </li>
|
|||
|
<li>The <var class="varname">off</var> value indicates that the server will not reuse
|
|||
|
this job for other CGI requests. This is the default behavior. </li>
|
|||
|
</ul>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
</blockquote>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="hr" id="defaultnetccsid"><a name="defaultnetccsid"><!-- --></a><h2 class="topictitle2">DefaultNetCCSID</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: DefaultNetCCSID <var class="varname">client-character-set-identification-number</var></td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: DefaultNetCCSID 819</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: <span id="defaultnetccsid__defaulttype_context"><a name="defaultnetccsid__defaulttype_context"><!-- --></a>server config,
|
|||
|
virtual host, directory, .htaccess </span></td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: DefaultNetCCSID 819</td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div class="p">The DefaultNetCCSID directive specifies the client character set environment
|
|||
|
and defines the ASCII or UTF-8 CCSID that is used when converting: <ul><li>Input request data for user CGI programs or Apache modules.</li>
|
|||
|
<li>When serving EBCDIC documents and no ASCII CCSID can be deduced from the
|
|||
|
file CCSID.</li>
|
|||
|
<li>Output response data from user CGI programs, or Apache modules, to be
|
|||
|
sent back to the requester (client browser).</li>
|
|||
|
</ul>
|
|||
|
A configuration file can contain more than one DefaultNetCCSID directive,
|
|||
|
but the last directive in the configuration file determines the CCSID. Starting
|
|||
|
in i5/OS™ V5R4,
|
|||
|
the use of this directive is expanded to help you configure a single server
|
|||
|
to handle requests in more than one language. The directive is now allowed
|
|||
|
in a virtual host container and in directory containers. This directive is
|
|||
|
supported in the global scope.</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="hr" id="maxcgijobs"><a name="maxcgijobs"><!-- --></a><h2 class="topictitle2">MaxCGIJobs</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: MaxCGIJobs <var class="varname">number</var> </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: MaxCGIJobs 40 or value of the ThreadsPerChild
|
|||
|
directive</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: MaxCGIJobs 50</td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>The MaxCGI directive is used to set the maximum number of CGI jobs that
|
|||
|
the server will concurrently use. The server will only run CGI programs in
|
|||
|
jobs where the user profile for the CGI job matches the user profile that
|
|||
|
the request is to run under. If you protect your CGI programs with many different
|
|||
|
dummy iSeries profiles ( profiles with no password) or use %%CLIENT%% (each
|
|||
|
user has their own iSeries profile and it is used to run the CGI program),
|
|||
|
then you may want to use this directive to allow the server to start more
|
|||
|
CGI jobs to handle the CGI programs. The server does reuse the CGI jobs, but
|
|||
|
only when the profile for the CGI program matches the profile for the CGI
|
|||
|
job. If you see the server ending and starting CGI jobs regularly, then you
|
|||
|
may want to use this directive to allow the server to use more CGI jobs. This
|
|||
|
would improve the capacity and performance of your system and server. </p>
|
|||
|
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>number</em></dt>
|
|||
|
<dd><ul><li>The <var class="varname">number</var> parameter accepts any positive number. If
|
|||
|
an invalid value is used, or the number is smaller than the value of the ThreadsPerChild
|
|||
|
directive, then the server will use a default of (value of ThreadsPerChild).
|
|||
|
If ThreadsPerChild directive is not present, then the default of this directive
|
|||
|
will be set to 40. </li>
|
|||
|
</ul>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
</blockquote>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="hr" id="maxpersistentcgi"><a name="maxpersistentcgi"><!-- --></a><h2 class="topictitle2">MaxPersistentCGI</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: MaxPersistentCGI <var class="varname">number</var> </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: MaxPersistentCGI 40 </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: MaxPersistentCGI 50 </td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>The MaxPersistentCGI directive is used to set the maximum number of active
|
|||
|
persistent CGI jobs that you want to have active at one time. </p>
|
|||
|
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>number</em></dt>
|
|||
|
<dd><ul><li>The <var class="varname">number</var> parameter sets the maximum number of active
|
|||
|
persistent CGI jobs that are active at any one time.</li>
|
|||
|
</ul>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
</blockquote>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="hr" id="maxpersistentcgitimeout"><a name="maxpersistentcgitimeout"><!-- --></a><h2 class="topictitle2">MaxPersistentCGITimeout</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: MaxPersistentCGITimeout <var class="varname">number</var> </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: MaxPersistentCGITimeout 1200 </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: MaxPersistentCGITimeout 1800 </td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>The MaxPersistentCGITimeout directive specifies the maximum number of seconds
|
|||
|
that a CGI program can use when overriding the PersistentCGITimeout directive.</p>
|
|||
|
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>number</em></dt>
|
|||
|
<dd><ul><li>The <var class="varname">number</var> parameter value must be greater than 1 second.</li>
|
|||
|
</ul>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
</blockquote>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="hr" id="maxthreadedcgijobs"><a name="maxthreadedcgijobs"><!-- --></a><h2 class="topictitle2">MaxThreadedCGIJobs</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: MaxThreadedCGIJobs <var class="varname">number</var></td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: MaxThreadedCGIJobs 40 or the value of ThreadsPerChild
|
|||
|
directive</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: MaxThreadedCGIJobs 50</td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>The MaxThreadedCGIJobs directive is used to set the maximum number of multiple
|
|||
|
thread capable CGI jobs that the server will concurrently use. The server
|
|||
|
will only run multiple thread capable CGI programs in jobs where the user
|
|||
|
profile for the multiple thread capable CGI job matches the user profile that
|
|||
|
the request is to run under. If you protect your multiple thread capable CGI
|
|||
|
programs with many different dummy iSeries profiles (profiles with no password)
|
|||
|
or use %%CLIENT%% (each user has their own iSeries profile and it is used
|
|||
|
to run the multiple thread capable CGI program), then you may want to use
|
|||
|
this directive to allow the server to start more multiple thread capable CGI
|
|||
|
jobs to handle the multiple thread capable CGI programs. The server does reuse
|
|||
|
the CGI jobs, but only when the profile for the multiple thread capable CGI
|
|||
|
program matches the profile for the multiple thread capable CGI job. If you
|
|||
|
see the server ending and starting multiple thread capable CGI jobs regularly,
|
|||
|
then you may want to use this directive to allow the server to use more multiple
|
|||
|
thread capable CGI jobs. This would improve the capacity and performance of
|
|||
|
your system and server. </p>
|
|||
|
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>number</em></dt>
|
|||
|
<dd><ul><li>The <var class="varname">number</var> parameter value can be any positive number.
|
|||
|
If an invalid value is used, or the number is smaller than the value of the
|
|||
|
ThreadsPerChild directive, then the server will use a default of (value of
|
|||
|
ThreadsPerChild). If ThreadsPerChild directive is not present, then the default
|
|||
|
of this directive will be set to 40. </li>
|
|||
|
</ul>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
</blockquote>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="hr" id="persistentcgitimeout"><a name="persistentcgitimeout"><!-- --></a><h2 class="topictitle2">PersistentCGITimeout</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: PersistentCGITimeout <var class="varname">number</var> </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: PersistentCGITimeout 300 </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: PersistentCGITimeout 120 </td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>This directive specifies the number of seconds that your server waits for
|
|||
|
a client response before ending a persistent CGI session. The CGI program
|
|||
|
can override the value that you specify on a request-by-request basis. </p>
|
|||
|
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>number</em></dt>
|
|||
|
<dd><ul><li>The <var class="varname">number</var> parameter can be any amount of time greater
|
|||
|
than 1 second. </li>
|
|||
|
</ul>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
</blockquote>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="hr" id="scriptlog"><a name="scriptlog"><!-- --></a><h2 class="topictitle2">ScriptLog</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: ScriptLog <var class="varname">filename</var> </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: Modified</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: ScriptLog /QIBM/userdata/httpa/(instance
|
|||
|
name)</td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>The ScriptLog directive sets the Common Gateway Interface (CGI) script
|
|||
|
error logfile. If no ScriptLog is given, no CGI error log is created. If a
|
|||
|
ScriptLog is given, any CGI errors are logged into the filename given as the
|
|||
|
argument. If this is a relative file or path, it is taken relative to the
|
|||
|
server root. </p>
|
|||
|
<p>This log will be opened as the user the child processes run as, for example
|
|||
|
the user specified in the main User directive. This means that either the
|
|||
|
directory the script log is in needs to be writable by that user or the file
|
|||
|
needs to be manually created and set to be writable by that user. If you place
|
|||
|
the script log in your main logs directory, do not change the directory permissions
|
|||
|
to make it writable by the user the child processes run as. </p>
|
|||
|
<div class="note"><span class="notetitle">Note:</span> The script logging is meant to be a debugging feature when writing CGI
|
|||
|
scripts, and is not meant to be activated continuously on running servers.
|
|||
|
It is not optimized for speed or efficiency, and may have security problems
|
|||
|
if used in a manner other than that for which it was designed. </div>
|
|||
|
<p><strong>Behavior</strong></p>
|
|||
|
<p>If the filename does not begin with a slash ('/') then it is assumed to
|
|||
|
be relative to the ServerRoot.</p>
|
|||
|
<p>If the path ends with a '/' character, then the path is considered to be
|
|||
|
the directory that will contain the log file. </p>
|
|||
|
<p>The ScriptLog file will be created with CCSID 1208 (UTF8). Customer data
|
|||
|
written to the script log is assumed to be in the CGI job CCSID and will automatically
|
|||
|
be converted to CCSID 1208. The data will be written to the log file in binary.
|
|||
|
Therefore, the customer's data will be written to the ScriptLog without conversion.
|
|||
|
Information from the CGI request will not need to be translated, as the data
|
|||
|
will already be in the defaultFSCCSID. </p>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="hr" id="scriptlogbuffer"><a name="scriptlogbuffer"><!-- --></a><h2 class="topictitle2">ScriptLogBuffer</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: ScriptLogBuffer <var class="varname">size</var> </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: ScriptLogBuffer 1024</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: Apache</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: ScriptLogBuffer 512</td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>The ScriptLogBuffer directive limits the size of any PUT or POST entity
|
|||
|
body that is logged to the file. This prevents the log file from growing too
|
|||
|
big too quickly (the case if large bodies are being received). </p>
|
|||
|
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>size</em></dt>
|
|||
|
<dd><ul><li>The <var class="varname">size</var> parameter is measured in bytes and consists
|
|||
|
of any positive integer. By default, up to 1024 bytes are logged, but the
|
|||
|
value can be changed with this directive. </li>
|
|||
|
</ul>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
</blockquote>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="hr" id="scriptloglength"><a name="scriptloglength"><!-- --></a><h2 class="topictitle2">ScriptLogLength</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: ScriptLogLength <var class="varname">size</var> </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: ScriptLogLength 10385760</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: ScriptLogLength 1024000</td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>The ScriptLogLength directive can be used to limit the size in bytes of
|
|||
|
the Common Gateway Interface (CGI) script log file. Since the log file logs
|
|||
|
a significant amount of information per CGI error (all request headers, all
|
|||
|
script output) it can grow to be quite large. To prevent problems due to unbounded
|
|||
|
growth, this directive can be used to set a maximum file-size for the CGI
|
|||
|
logfile. If the file exceeds this size, no more information will be written
|
|||
|
to it. </p>
|
|||
|
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>size</em></dt>
|
|||
|
<dd><ul><li>The <var class="varname">size</var> parameter is measured in bytes. This is any
|
|||
|
positive number. </li>
|
|||
|
</ul>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
</blockquote>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="hr" id="startcgi"><a name="startcgi"><!-- --></a><h2 class="topictitle2">StartCGI</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: StartCGI <var class="varname">number userid</var> </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: StartCGI 5 USER1 </td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>The StartCGI directive specifies the number of CGI jobs that are spawned
|
|||
|
by the server when it starts up and the iSeries user profile to use in these
|
|||
|
jobs. This allows you to have the server prestart CGI jobs when the server
|
|||
|
starts so the users do not incur the performance hit of starting a new job.
|
|||
|
It also allows you to start up jobs for different user profiles. The userid
|
|||
|
is optional and should only be used to protect your CGI programs so that they
|
|||
|
run under the %%CLIENT%% profile or under a dummy iSeries profile (a profile
|
|||
|
with no password). </p>
|
|||
|
<p>The cumulative number from all occurrences of this directive cannot exceed
|
|||
|
MaxCGIJobs, if it does, the server will not start. If the user profile parameter
|
|||
|
is not specified, the default server profile (QTMHHTP1) or the value from
|
|||
|
the global ServerUserID directive is used. </p>
|
|||
|
<p>If you are using %%CLIENT%% as the profile in the protection of the CGI
|
|||
|
programs (meaning that each user authenticates with an iSeries user profile),
|
|||
|
then it should be noted that %%CLIENT%% is not a valid value on this directive.
|
|||
|
Using iSeries profiles like this should only be done in an intranet or highly
|
|||
|
secure server because you would not want to give just anyone an iSeries user
|
|||
|
profile. Therefore, you would know how many users and also their user profile
|
|||
|
name, thus you would need to decide how many users will be doing CGI requests
|
|||
|
and how many concurrent CGI requests you want each user to be able to do.
|
|||
|
Then you could specify multiple StartCGI directives, one for each user, specifying
|
|||
|
the number of concurrent CGI requests you expect that user to do. </p>
|
|||
|
<div class="note"><span class="notetitle">Note:</span> This will NOT limit the number of concurrent CGI requests. This will
|
|||
|
simply allow CGI jobs to be started at server startup time so the user does
|
|||
|
not have to incur the performance hit of starting up a new job when they run
|
|||
|
their first CGI program. </div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="hr" id="startthreadedcgi"><a name="startthreadedcgi"><!-- --></a><h2 class="topictitle2">StartThreadedCGI</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: StartThreadedCGI <var class="varname">number userid</var> </td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: StartThreadedCGI 3</td>
|
|||
|
</tr>
|
|||
|
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: StartThreadedCGI 5 USER1 </td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>The Start ThreadedCGI directive specifies the number of multiple thread
|
|||
|
capable CGI jobs that are spawned by the server when it starts up and the
|
|||
|
iSeries user profile to use in these jobs. This allows you to have the server
|
|||
|
prestart CGI jobs when the server starts so the users do not incur the performance
|
|||
|
hit of starting a new job. It also allows you to start up jobs for different
|
|||
|
user profiles. The userid is optional and should only be used to protect your
|
|||
|
multiple thread capable CGI programs so that they run under the %%CLIENT%%
|
|||
|
profile or under a dummy iSeries profile (a profile with no password).</p>
|
|||
|
<p>The cumulative number from all occurrences of this directive cannot exceed
|
|||
|
MaxThreadedCGIJobs, if it does, the server will not start. If the user profile
|
|||
|
parameter is not specified, the default server profile (QTMHHTP1) or the value
|
|||
|
from the global ServerUserID directive is used.</p>
|
|||
|
<p>If you are using %%CLIENT%% as the profile in the protection of the multiple
|
|||
|
thread capable CGI programs (meaning that each user authenticates with an
|
|||
|
iSeries user profile), then it should be noted that %%CLIENT%% is not a valid
|
|||
|
value on this directive. Using iSeries profiles like this should only be done
|
|||
|
in an intranet or highly secure server because you would not want to give
|
|||
|
just anyone an iSeries user profile. Therefore, you would know how many users
|
|||
|
and also their user profile name, thus you would need to decide how many users
|
|||
|
will be doing CGI requests and how many concurrent multiple thread capable
|
|||
|
CGI requests you want each user to be able to do. Then you could specify multiple
|
|||
|
StartThreadedCGI directives, one for each user, specifying the number of concurrent
|
|||
|
multiple thread capable CGI requests you expect that user to do.</p>
|
|||
|
<div class="note"><span class="notetitle">Note:</span> This will NOT limit the number of concurrent multiple thread capable
|
|||
|
CGI requests. This will simply allow multiple thread capable CGI jobs to be
|
|||
|
started at server startup time so the user does not have to incur the performance
|
|||
|
hit of starting up a new job when they run their first multiple thread capable
|
|||
|
CGI program. </div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="hr" id="threadedcgiinitialurl"><a name="threadedcgiinitialurl"><!-- --></a><h2 class="topictitle2">ThreadedCgiInitialUrl</h2>
|
|||
|
<div>
|
|||
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
|||
|
</tr>
|
|||
|
<tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: ThreadedCgiInitialUrl <var class="varname">url userid</var></td>
|
|||
|
</tr>
|
|||
|
<tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server</td>
|
|||
|
</tr>
|
|||
|
<tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
|||
|
</tr>
|
|||
|
<tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
|||
|
</tr>
|
|||
|
<tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: ThreadedCgiInitialUrl /qsys.lib/cgi.lib/mycgi.pgm
|
|||
|
QTMHHTTP</td>
|
|||
|
</tr>
|
|||
|
<tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: ThreadedCgiInitialUrl /QOpenSys/mypacedir/pacecgi</td>
|
|||
|
</tr>
|
|||
|
<tr valign="top"><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: ThreadedCgiInitialUrl /qsys.lib/cgi.lib/mycgi.pgm?init=yes
|
|||
|
USER1</td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>This directive is used to load and initialize threaded CGI programs when
|
|||
|
the server starts. At server startup, when processing the StartThreadedCgi
|
|||
|
directive, jobs are started to run CGI programs in. This directive enables
|
|||
|
the server to run a CGI request to the CGI job enabling the CGI program to
|
|||
|
be loaded and initialized. This function enables performance issues to be
|
|||
|
moved to when the server starts, so the first user does not have diminished
|
|||
|
performance.</p>
|
|||
|
<p>If there are no StartThreadedCgi directives, an error is posted and the
|
|||
|
server does not start.</p>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
</body>
|
|||
|
</html>
|