Application Framework


Application Framework contains a special start-up program "plus/web-disp.p" and an include file for the function definitions plus/session.i. You have to configure the Webspeed startup procedure to be "plus/web-disp.p" rather than the default "web/objects/web-disp.p" to use any of the enhanced functionality. Then you can turn on the features you like by setting the environment variables (the last item on the Webspeed Broker Properties dialogbox.) 

It contains the following interface elements:

 

Automatic SessionID Cookie

This ensures that the logging and other features will stay within the context of each web-browser, the users application context. The default name is "plusSessID", and its value is accessible through the global variable "plusSession". The cookie value is automatically assigned with random value if it isn't already set.

ENV:  plusOptions = session
ENV:  plusPrefix = ASPSESSIONID    /** for use with ASP **/

If plusPrefix is set it will scan the cookies for the given string and use the corresponding value, instead of creating its own Webspeed SessionID. For server-side scripting in conjunction with Webspeed like ASP or JSP or simply by using the Session tracking feature of MsSiteServer you might want to use the cookies already generated.

This feature is necessary for session logs and global/session variables.

Session and global variables

GLOBAL:
This gives you truly global variables that when set by one agent will be the same for all agents, un like Webspeed "DEF NEW SHARED GLOBAL". The globals can be used for system specific things like an administrator can disallow certain features by setting variables and it will immediately happen sitewide. This is variables which traditionally have been put in a database. The global context is stored in the global.tmp file in the logs directory.

SESSION:
The session variables will be unique to the user, such as username, usertype, etc. Traditionally this has been done by database tables but this does not require a database table because its session-context is stored in a *.tmp file in the logs directory.  

ENV: plusOptions = session
ENV: plusLog = /usr/myapp/logs/
INCLUDE: {plus/session.i}

Available Functions:

Debugging / Session logs

Each session will have its own log, meaning that the user's context is preserved throughout the log. The log automatically generates start & stop lines  for each web-request giving the PID, broker, WSEU, time, date, program-name etc and the time to execute in ms. For each plusLog("message") it will contain the relative time in milliseconds, the procedure name and the message. This is very useful for performance tuning, debugging or simply logging what the user did on your site. 

The logs (example 00000084709caiTiPddbcDakbEl.log) can be easily viewed by "plus/viewlogs" which will output the current session's log to the screen. 

ENV: plusOptions = session,log
ENV: plusLog = /usr/myapp/logs/
INCLUDE: {plus/session.i}

Automatic reconnect

This feature can be useful if the agents occasionally lose connections to the databases, for whatever reason.   It uses a pipe delimited list of databases with logical name, connection parameters.

ENV: plusConnect = sports,-db sports.db -H localhost -N tcp -S sports|sports2000,-db sports2000.db -H localhost -N tcp -S sports2000

Compile on the fly 

This feature is very useful for SpeedScript development since it doesn't require you to compile the files in the workshop. It automatically detects a changed sourcefile (compares modified date with the rcode) and recompiles when changed. 

ENV: plusOptions = compile


Main index