Home Server
New Blog Posts: Merging Reports - Part 1 and Part 2

Apache 2.x and ISAPI: missing GetExtensionVersion()

edited November 2005 in Server
Hi,

Ignore my previous post. I progressed with the Apache example to the point
where the web page show the list of Reports for the Examples volume name.
But if I click on one of the reports (e.g.. rb0001CustomerList) I get the
following error in the Apache error.log file:

[error] (OS 127)The specified procedure could not be found. : ISAPI:
missing GetExtensionVersion() in C:/Program Files/Apache
Group/Apache2/rbbin/Report.dll

My Project file:
===========

library Report;

uses
WebBroker,
ApacheTwoApp,
rbWebModule in 'rbWebModule.pas' {WebModule1: TWebModule};

{$R *.res}


exports
apache_module name 'Report_module';


begin
ModuleName := 'report_module';
Handler := 'report-handler';
Application.Initialize;
Application.CreateForm(TWebModule1, WebModule1);
Application.Run;
end.



My TrsWebTier configurations:
=====================

CacheDirectory: C:\Program Files\Apache Group\Apache2\rbbin\rbcache\
WebCachePath: http://172.16.13.51/rbcache/
WebModuleURI: http://172.16.13.51/rbbin/Report.dll




In my httpd.conf (apache configs):
======================
(I created these sub folders: C:\Program Files\Apache
Group\Apache2\rbbin\rbcache)
ServerRoot "C:/Program Files/Apache Group/Apache2"

LoadModule Report_module rbbin/Report.dll


Sethandler report-handler


AddHandler isapi-isa .dll

#=============================== ReportBuilder ISAPI
=======================

ScriptAlias /rbbin/ "C:/Program Files/Apache Group/Apache2/rbbin/"

AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all

Alias /rbcache/ "C:/Program Files/Apache Group/Apache2/rbbin/rbcache/"

Options All
AllowOverride None
Order allow,deny
Allow from all


#=================================================================================



Any help will be appreciated.


Regards,

Nols Smit

Comments

  • edited November 2005

    There is an Apache example installaed with the RBServer examples. See
    RBServer\Demos\Web Tier\APACHE\ReadMe.doc. The example creates an Apache
    Shared Module. As explained in the ReadMe.doc, we did not have good results
    with the ISAPI, but the Shared Module worked well.

    The developer that created the example is not longer here and we do not have
    any Apache expertise here, however the example has been successfully
    implemented by other customers.




    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited November 2005
    I followed the steps in that Readme.doc. Firstly the steps are incomplete
    and the steps are mixing the implementation of a ISAPI dll with a Apache
    Shared Module. There is also no mentioning of the step in the file named
    httpd.conf of the LoadModule Report_module rbbin/Report.dll statement and
    step 4 under Deploy the WebTier as an Apache Shared Module
    is about ISAPI configurations.

    As stated, I get the first web page showing the list of Reports for the
    Examples volume but if I click on one of the reports (e.g..
    rb0001CustomerList) I get the following error in the Apache error.log file:
    [error] (OS 127)The specified procedure could not be found. : ISAPI:
    missing GetExtensionVersion() in C:/Program Files/Apache
    Group/Apache2/rbbin/Report.dll

    I came to the conclusion that the TrsWebTier component is strictly bounded
    to a ISAPI dll and it can't be used in a Apache Shared module for the simple
    reason that one (referring to the project file) has to include the
    GetExtensionVersion statement under Exports but this statement is bounded to
    ISAPIApp under uses

    I'm quite willing to use IIS but my objective is to have full control over a
    ReportBuilder Server application. I would like to activate a RB server
    application from a IntraWeb application after I build up the SQL query,
    depending on ComboBox and RadioGroup selections. It seems there are two
    possibilities:
    1) Use rsWebTier on a IntraWeb form - The problem here is that the IntraWeb
    form has no Actions property
    2) Activate a stand-alone RB Server application and give the needed
    parameters - I hope if I use this step, I wouldn't not get the error message
    "already used by another process".


    As you can see, RB server seems a nice stand-alone product but is very
    confusing how to integrate it in a practical environment.



    Regards,

    Nols Smit


  • edited November 2005

    1. There is nothing in ReportBuilder Server Edition that requires ISAPI

    2. I will try to download and test with Apache. Sounds like we need to
    update the ReadMe.doc so that it is more accurate. I know we have customers
    that have successfully used the WebTier and Apache.

    3. The TrsWebTier.ProcessWebRequest method is used to process a web request
    and generate an html response. It is not dependant upon any specific web
    application architecture. All web applications do the same basic thing -
    process a web request and generate a response.

    (Actions are part of WebBroker and thus the web broker examples use Actions
    to invoke the WebTier.ProcessWebRequest method.)

    4. The other option, as you mentioned, is to call a webtier application from
    another web application.

    To call a WebTier application from another application via URL, see the
    following tech tip


    ---------------------------------------------
    Tech Tips: How can I request that the webtier
    execute a specified report?
    ---------------------------------------------


    Question:
    ---------

    Without using the Web ReportExplorer, how can I request that the webtier
    execute a specified report?


    Solution:
    ---------

    The webtier processes requests for web content. These requests consists of

    1. The URL for the webtier

    example: http://127.0.0.1/rbWebPub/report.dll


    2. A parameter specifying the content type.

    example: content=viewer

    {note: content=viewer, is used to request report viewer content.}


    3. Additional parameters that are specific to the content request.

    volume=Report Forms (the volume name)
    Name=Basic\Biolife Table (the full path name to the report)
    frameset=1 (show the framset with the toolbar etc., this is required)


    Use a web browser to access the webtier demo that displays the report
    explorer.

    Notice that when you place the mouse over a report in the report explorer
    that the status bar in IE shows the url plus some params. That is the string
    required to run the report on the web tier.

    Example:
    http://127.0.0.1/rbWebPub/report.dll?content=viewer&volume=Report
    Forms&name=Basic\Biolife Table&framset=1


    So the parameters here are

    content=viewer (type of content is report viewer)
    volume=Report Forms (the volume name)
    Name=Basic\Biolife Table (the full path name to the report)
    frameset=1 (show the framset with the toolbar etc., this is required)


    4. AutoSearch Parameters

    To specify autosearch parameters for a report, include the parameter
    'newsearch=T' followed by the autosearch parameters.

    AutoSearch parameters have the following naming convention: asgXfYse and
    asgXfYsa.

    The asgX specifies the autosearch group number, where X is the number. The
    fY specifies the field number, where Y is the number. The se indicates that
    the value is a search expression and the sa specifies that the value is the
    "show all" boolean expression.


    Example:

    content=viewer
    newsearch=T
    asg0f0se=S
    asg0f0sa=false




















    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited December 2005
    I got it to work under Apache 2.x

    There is quite more to it than the skimpy documentation in the example. I
    will path the documentation and forward it.

    Regards,

    Nols Smit

  • edited December 2005

    I downloaded Apached 2.x and was able to get the WebTier to work as an
    Apache Shared Module. I am re-writing the ReadMe.doc. I will post a download
    to this newsgroup once I have it completed.

    Thanks for the feedback. Please send your notes or docs to
    support@digital-metaphors.com





    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited December 2005
    Nard,
    Wouldn't ya know, today I'm trying to use apache instead of IIS and
    found your promise of a new ReadMe file, so how are you coming with the
    new doc? Please let me know when you are done.
    Or maybe, Nols would like to post how he was able to get Apache to work
    with report builder.

    Thanks,
    Dave

  • edited December 2005

    I just put this togeter this downloadable example with an included
    ReadMe.txt

    www.digital-metpahors.com/tips/RBWebTier_Apache.zip






    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited December 2005
    Nard,
    Other than the misspelled url, I was able to get the zip file.

    Thanks for the quick response and update.
    Dave


This discussion has been closed.