Tech Support FAQ
If your question is not answered here, please see the Support FAQ, the AppWeb Product FAQ, or the licensing FAQ. You may submit your question to the online community support Forum.
Questions
How can I trouble-shoot with trace?
How can I use CGI?
What is the difference between handlers, modules and services?
Answers
How can I trouble-shoot with trace?
Run appWeb or winAppWeb with the logging switch "-l". The logging switch takes the following parameters:
appWeb -l logName[:logLevel][.maxSize]
Where logLevel is a number between 0 and 9. Zero is the least verbose. To debug HTTP requests, a level of 6 provides the detail of all the request / response exchanges. MaxSize is the maximum size of the log file in MB. When the maximum size is exceeded, the log file will be rotated to logName.old and a new log file will be started.
How can I use CGI?
AppWeb is configured by default to run CGI programs. If you do need to modify the CGI configuration, the following may help:
The configuration file directives for CGI are:
AddHandler cgiHandler .cgi .bat .cmd .pl
This instructs AppWeb to run the CGI handler for specified file extensions. You can also have CGI be used for URLs that begin with a given prefix. By default there is already a Location block defined for /cgi-bin in the default appWeb.conf. Any files under this URL (http://host/cgi-bin/scriptName) will also run as CGI scripts. To run a given interpreter (for example Perl), you can either just include
#!/bin/perl in the first line of your script (replace the /bin/perl path to point to your interpreter), and make sure your script has a .pl extension. Alternatively, you can change the path specified in the ActionProgram directive to point to your perl interpreter.
Here is the list of CGI variables that are defined for AppWeb under CGI and EGI:
AUTH_TYPE
CONTENT_LENGTH
CONTENT_TYPE
DOCUMENT_ROOT
GATEWAY_INTERFACE
HTTP_ACCEPT
HTTP_CONNECTION
HTTP_HOST
HTTP_USER_AGENT
PATH_INFO
PATH_TRANSLATED
QUERY_STRING
REMOTE_ADDR
REMOTE_HOST
REMOTE_USER
REQUEST_METHOD
REQUEST_URI
SCRIPT_NAME
SERVER_ADDR
SERVER_HOST
SERVER_NAME
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
SERVER_URL
What is the difference between handlers, modules and services?
Modules are just for the basic loading mechanism of DLL/shared objects. However they also provide a consistent way to handle modules that are statically loaded without much effort on the part of the developers.
Handlers are the work-horses for the HTTP server. They actually process the HTTP requests. Handlers may modify a request and choose not to actually handle it -- leaving the processing to a later handler. This is how the Authorziation handler works (moduleAuth). Handlers get post data and they write data back to the browser. They have full access to the request and they own its processing.
Services in AppWeb are just a programming paradigm -- think object factory. If an object will have lots of instances (say Handlers), then we will have a HandlerService that will manage the Handlers. For Timers we have a TimerService. The Service will typically keep a list of instances of the underlying objects and they will start / stop overall service of that functionality when the serverstarts / stops.
If you have any further questions, please ask a question at the Forum.
|