Apache-ASP

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

          at web site.

         +$Application->GetSession($session_id) API extension, useful
          for managing active user sessions when storing session ids
          in $Application.  Documented.

         -disable use of flock() on Win95/98 where it is unimplemented

         -@array context of $Request->Form('name') returns
          undef when value for 'name' is undefined.  Put extra
          logic in there to make sure this happens.

    $VERSION = 0.16; $DATE="09/22/99";
         -$Response->{Buffer} and PerlSetVar BufferingOn
          configs now work when set to 0, to unbuffer output,
          and send it out to the web client as the script generates it.

          Buffering is enabled by default, as it is faster, and
          allows a script to error cleanly in the middle of execution.  

         +more bullet proof loading of Apache::Symbol, changed the 
          way Apache::ASP loads modules in general.  It used to 
          check for the module to load every time, if it hadn't loaded
          successfully before, but now it just tries once per httpd,
          so the web server will have to be restarted to see new installed
          modules.  This is just for modules that Apache::ASP relies on.

          Old modules that are changed or updated with an installation
          are still reloaded with the StatINC settings if so configured. 

         +ASP web site wraps <font face="courier new"> around <pre>
          tags now to override the other font used for the text
          areas.  The spacing was all weird in Netscape before
          for <pre> sections.

         -Fixed Content-Length calculation when using the Clean
          option, so that the length is calculated after the HTML
          is clean, not before.  This would cause a browser to 
          hang sometimes.

         +Added IncludesDir config option that if set will also be
          used to check for includes, so that includes may easily be
          shared between applications.  By default only Global and 
          the directory the script is in are checked for includes.

          Also added IncludesDir as a possible configuration option
          for Apache::ASP->Loader()

         -Re-enabled the Application_OnStart & OnEnd events, after
          breaking them when implementing the AllowApplicationState
          config setting.

         +Better pre-fork caching ... StatINC & StatINCMatch are now 
          args for Apache::ASP->Loader(), so StatINC symbols loading
          may be done pre-fork and shared between httpds.  This lowers
          the child httpd init cost of StatINC.  Documented.

         +Made Apache::ASP Basic Authorization friendly so authentication
          can be handled by ASP scripts.  If AuthName and AuthType Apache
          config directives are set, and a $Response->{Status} is set to 
          401, a user will be prompted for username/password authentication
          and the entered data will show up in ServerVariables as:
            $env = $Request->ServerVariables
            $env->{REMOTE_USER} = $env->{AUTH_USER} = username
            $env->{AUTH_PASSWD} = password
            $env->{AUTH_NAME}   = your realm
            $env->{AUTH_TYPE}   = 'Basic'

          This is the same place to find auth data as if Apache had some 
          authentication handler deal with the auth phase separately.

         -MailErrorsTo should report the right file now that generates
          the error.

    $VERSION = 0.15; $DATE="08/24/1999";
         --State databases like $Session, $Application are 
          now tied/untied to every lock/unlock triggered by read/write 
          access.  This was necessary for correctness issues, so that 
          database file handles are flushed appropriately between writes
          in a highly concurrent multi-process environment.

          This problem raised its ugly head because under high volume, 
          a DB_File can become corrupt if not flushed correctly.  
          Unfortunately, there is no way to flush SDBM_Files & DB_Files 
          consistently other than to tie/untie the databases every access.

          DB_File may be used optionally for StateDB, but the default is
          to use SDBM_File which is much faster, but limited to 1024 byte
          key/value pairs.

          For SDBM_Files before, if there were too many concurrent 
          writes to a shared database like $Application, some of the 
          writes would not be saved because another process
          might overwrite the changes with its own.

          There is now a 10 fold performance DECREASE associated
          with reading from and writing to files like $Session 
          and $Application.  With rough benchmarks I can get about
          100 increments (++) now per second to $Session->{count}, where
          before I could get 1000 increments / second.  

          You can improve this if you have many reads / writes happening
          at the same time, by placing locking code around the group like
  
                $Session->Lock();
                $Session->{count}++;
                $Session->{count}++;
                $Session->{count}++;
                $Session->UnLock();     

          This method will reduce the number of ties to the $Session database
          from 6 to 1 for this kind of code, and will improve the performance
          dramatically.

          Also, instead of using explicit $Session locking, you can 
          create an automatic lock on $Session per script by setting
          SessionSerialize in your config to 1.  The danger here is
          if you have any long running scripts, the user will have
          to wait for it to finish before another script can be run.

          To see the number of lock/unlocks or ties/unties to each database
          during a script execution, look at the last lines of debug output
          to your error log when Debug is set to 1.  This can help you
          performance tweak access to these databases.



( run in 0.700 second using v1.01-cache-2.11-cpan-39bf76dae61 )