Web Development


Chapter 12. Web Initialization Options

A Panther web application requires its own initialization file whose name is derived from the name of the requester executable, using the format application-name.ini.

The default initialization file is named proweb.ini. On Windows, it is located in the \WINDOWS directory or where Windows is installed. On UNIX, it is located in ~proweb/ini. Before you start development of a Panther web application, run the Web Setup Manager utility in your browser. This tool creates the initialization file from settings you specify. For more information on the Web Setup Manager, refer to Appendix B, "Web Setup Manager."

The following sections describe the different types of environment variables that can be found in your application's initialization file. There are variables that determine the behavior of the web application, the Panther environment used by the jserver program, and the database environment.


Setup Variables

The web initialization file contains an [Environment] section where you set Panther setup variables such as SMBASE and SMFLIBS. This section also sets the directory path to use for Panther utilities and programs.

Note: Panther variables are case sensitive.

Required Settings

Two variables must be set for two-tier and three-tier applications: SMBASE and SMFLIBS. SMBASE specifies the location of the web application server installation on the HTTP server.

Some typical settings for SMBASE are:

Required for JetNet/Oracle Tuxedo Applications

One or more of the following variables must be set in order for the web application server to connect to the middleware as a client:

Optional Settings

The following variables only need to be set under certain conditions, as noted in their descriptions:

Database Information

For two-tier applications, the [Environment] section can contain variables needed for your database configuration. For example, the following entry sets these variables for Oracle on UNIX:

ORACLE_HOME=/u/home/oracle
ORACLE_SID=oracle

Under Windows, installing any Panther database driver except JDB automatically adds a third section, [Database], to the initialization file. This section lists the DLLs that Panther should load at startup.


Behavior Variables

The initialization file's [Prolifics Web] section contains variables that deter mine the behavior of the web application server. The AppDirectory, Dispatcher, LMLicenseFile, and Server variables are required; all others can be omitted. To view a sample, refer to "Sample Initialization File."

Note: Web option names are not case sensitive.

Required Settings

The following variables must be set:

AppDirectory
The path name of the application's working directory. This directory includes common.lib and client.lib, which contains the application's screens, reports, JPL modules, graphics, and other files needed by the application.

The path name must be complete. For example:

UNIX: AppDirectory=/home/webapps/vidorder

Windows: AppDirectory=C:\webapps\vidorder

Dispatcher
The location of the dispatcher program. If the path has no leading /, the location is relative to the location specified in AppDirectory.

UNIX: Dispatcher=/home/proweb/util/dispatcher

Windows: Dispatcher=C:\proweb\util\dispatch.exe

LMLicenseFile
The name and location of the license file. This entry is required. LMLicenseFile is equivalent to LM_LICENSE_FILE.

UNIX: LMLicenseFile=/home/prolifics/licenses/license.dat

Windows: LMLicenseFile=C:\proweb\licenses\license.dat

NumServers
The number of jserver processes, or concurrent users, that the dispatcher can run simultaneously. In order for the application to run, it must be set greater than 0 (its default value).
NumServers=5

Server
The location of the jserver program. If the path has no leading /, the location is relative to AppDirectory.

UNIX: Server=/home/proweb/util/jserver

Windows: Server=C:\proweb\util\jserver.exe

Optional Settings

The following variables are optional; if omitted, Panther supplies default values as specified.

BrowserData
Determines whether the application uses server or browser caching. Server caching puts the cached data in a temporary file on the HTTP server. Browser caching includes the cached data in the HTML data that Panther sends to the browser.

A value of null or 0 enables server caching; a value of 1 enables browser caching. The default specifies server caching.

BrowserData=0

For more information about caching data, refer to Chapter 6, "Preserving Application State."

CacheDirectory
The path name on the HTTP server where a jserver creates and finds server cache files. The default is the subdirectory procache in the system's tmp directory. Panther creates this directory if it does not exist. If directory creation fails, it enables browser side caching.

The cache files for each application are located in a separate subdirectory. The subdirectory name matches the application name.

UNIX: CacheDirectory=/home/proweb/procache

Windows: CacheDirectory=C:\proweb\procache

For more information about caching data, refer to Chapter 6, "Preserving Application State."

ClientLog
The path name of the file to which the requester logs events.

UNIX: ClientLog=/home/proweb/logs/client.log

Windows: ClientLog=C:\proweb\logs\client.log

Note: All the logging variables–ServerLog, ClientLog, and ErrorFile—can point to the same file if desired. The entries are listed in chronological order.

EnableWebid
Enables the caching of state information on a GET using webid in the URL by setting this variable to 1.
EnableWebid=1

ErrorFile
The path name of the file to which the dispatcher appends server error messages. You can also write application errors to this file using sm_web_log_error.

UNIX: ErrorFile=/home/proweb/logs/error.log

Windows: ErrorFile=C:\proweb\logs\error.log

Note: All the logging variables–ServerLog, ClientLog, and ErrorFile—can point to the same file if desired. The entries are listed in chronological order.

ExpireTime

The amount of time in minutes that the application waits for the POST of a screen before removing the screen's server cache file. The default value is 120 (two hours). Setting this variable to a negative number inhibits expiration of any cache.
ExpireTime=120

HTTPHOST
If using SSL, the name of the host computer running the HTTP server. If the default port number is not used, it must also be specified.
HTTPHOST=server-name

HTTPSHOST
If using SSL, the name of the host computer running the secure server. This option can be set only if HTTPHOST is also set.
HTTPSHOST=server-name

IdleServerTimeOut
The number of seconds that a jserver will wait for an incoming request before exiting. If unspecified, the process continues indefinitely.

Sybase users should set this variable to avoid timeouts in the database server.

IdleServerTimeOut=

ImageDir
The directory containing the graphics files for the web application. If specified, the HTTP protocol is used to fetch the graphics files instead of the web application server. This directory must be a sub-directory of the HTTP server's document root directory. If unspecified, the Panther search path is used to locate graphics files.

For intranets, enter the sub-directory; the machine name is prepended in the HTML:

ImageDir=my_app

For the Internet, enter the protocol, domain name, and document root sub-directory:

ImageDir=http://prolifics.com/my_app

Panther provides internal graphics for displays of scrolling grids, web reports and wizard transaction pages. If you are using any of these graphics in your application and you choose to use the ImageDir setting, you must copy these internal graphics to that HTTP server directory as well. These graphics have been provided separately in the graphics subdirectory of the Panther web installation.

ListenQueueLength
Determines the length of the listen queue. This is the value passed to the listen function, which is a standard socket call. It approximately represents the number of web requests that can be waiting for an available server at any given moment.

PadOptionMenus
For option menus, generates trailing and HTML spaces ( ) in option menus if set to Yes. To only pad the first occurrence, set this option to First.
PadOptionMenus=Yes
PadOptionMenus=First

RetainCacheFiles
Determines whether the application retains the server cache file for the screen after the screen is submitted back to the HTTP server. In order to allow use of the Back and Forward buttons in the browser program, the server cache files need to be retained. The ExpireTime option determines how long to retain them before they are deleted.

A value of null or 0 deletes cache files when a screen is submitted on a POST event; a value of 1 retains the cache file. The default specifies to delete the cache file.

RetainCacheFiles=0

ServerLog
The path name of the file to which the dispatcher and jserver logs events.

UNIX: ServerLog=/home/proweb/logs/server.log

Windows: ServerLog=C:\proweb\logs\server.log

Note: All the logging variables–ServerLog, ClientLog, and ErrorFile—can point to the same file if desired. The entries are listed in chronological order.

ServerTimeOut
The time in seconds after which the requester or dispatcher aborts its wait response for a jserver. This traps infinite loops that may otherwise be hard to interrupt. If this variable is not set, then it waits indefinitely.
ServerTimeOut=60

Sample Initialization File

A sample configuration file on UNIX might contain the following [Prolifics Web] and [Environment]sections:

[Prolifics Web]
AppDirectory=/home/webapps/vidstore
ServerLog=logs/server.log
ClientLog=logs/client.log
ErrorFile=logs/error.log
ExpireTime=120
CacheDirectory=/tmp/procache
ServerTimeOut=60
MaxServers=10
Server=/usr/panther/util/jserver
Dispatcher=/usr/panther/util/dispatcher
LMLicenseFile=/usr/panther/licenses/license.dat
[Environment]
SMBASE=/usr/panther
SMFLIBS=client.lib
SMINITJPL=webapp.jpl
PATH=/usr/panther/util
LD_LIBRARY_PATH=/home/motif/usr/lib
SMRBHOST=aspen,willow
SMRBPORT=300,400