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

CGI application using report with BDE and Paradox

edited June 2004 in End User
HI,

I have a CGI application that uses a report with BDE and Paradox.
When occurs two or more simultaneous accesses in the application only one is
executed,
to the another access is displayed the message "Page cannot be displayed..."
I detected that the error occurs when my unit uses the unit "dadbbde". if i
remove this
unit of the project the error is solved.
The error also occurs when the application is not generating a report, the
simple fact of
the uses the unit causes the error.


--
Jose Bagatelli
jose@sumus.com.br
www.sumus.com.br

Comments

  • edited June 2004

    1. Check out ReportBuilder Server Edition. It can probably do what you need
    right out of the box.

    Live Demo: www.digital-metaphors.com/RBServerLive

    Features: www.digital-metaphors.com/Subpages/Products/Server/Features.html

    2. Make sure you are using ReportBuilder 7, it is the first version of
    ReportBuilder that is thread safe.

    3. Use Delphi's Web Broker to build an ISAPI app. CGI apps require the .exe
    to be loaded for each request - this is incredibly inefficient.

    4. Do not use the BDE. It is not designed to be used in a Web environment
    and is incredibly inefficient when doing so.

    For simplicity, the RB Server demos use the BDE and paradox tables.

    However, in actual use, the BDE is a poor choice for multi-thread server
    applications. If you search Google Groups you can find many references to
    this topic.

    The BDE's legacy architecture was never designed to support running many
    concurrent sessions on a single machine. Each BDE session requires too much
    memory overhead. Depending upon your machine's resources and the
    configuration of the BDE you will eventually run out memory when too many
    client sessions are created on the server.


    Recommendation from Mike Leftwich on our Server newsgroup:
    -----------------------------------------------------------

    Any time you run multiple simultaneous sessions of the BDE, you
    need to bump up the SHAREDMEMSIZE setting in the BDE Administrator. The
    default is 2048 (2MB), but you should bump it up to at least 4096. I keep
    mine set at 8192. I also bump up my MAXBUFSIZE to 8192 and MEMSIZE to 16
    (MB), but if you're low on memory I don't think these are absolutely
    necessary. You can find these settings in the BDE Administrator on the
    Configuration tab under System/INIT.


    --

    Thanks for supporting ReportBuilder! Please vote for ReportBuilder in the
    Delphi Informant Readers Choice awards!

    http://www.delphizine.com/ballot2004/


    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited June 2004
    Nard,

    Thanks for your answer.
    So, I understand that BDE is not more indicated for this type of
    application, but its use necessary must the architecture of the project. I
    understand to that BDE is not support many requests in same time but, in my
    project the error occur with only two simultaneous access. The problem occur
    to when the application is loaded and in this situation the BDE is not used
    for the application, when the application is loaded the response is only a
    HTML page. And as I already explained the unit "dadbbde.pas" is removed from
    project the problem does not occur more.
    My version of Report Builder is 6 and i can?t convert the application to
    ISAPI because with yourself said this version of RB not is thread safe.

    --
    Jose Bagatelli
    Analista de sistemas
    jose@sumus.com.br
    tel: 11 6847.1854
    www.sumus.com.br
  • edited June 2004

    1. Update to ReportBuilder 7. That is my recommendation. ReportBuilder 7
    includes support for D5, D6, and D7. ReportBuilder 7 contains hundreds of
    improvements over RB 6. ReportBuilder 7 is currently being used in high
    performance report server and web applications all over the world.

    2. You say the issue occurs when the BDE is not used. If you remove daDBBDE
    from the project does the problem goes away? As a test, try removing daDBBDE
    from the project, but add DBTables to the uses clause. This will link the
    BDE into the project, perhaps just loading the BDE twice on the machine
    causes an issue.




    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited July 2004
    Nard,

    I'm detected that the problem occur han an bug in BDE. The BDE not support
    simultaneous access when used with paradox in CGI applications.
    So, I solved the problem creating a semaphore in my application that not
    leave the BDE loaded simultaneously. Then, if i updated to ReportBuilder 7
    as you recommended, my problem is not solved, because the problem are in
    BDE.

    Cheers,

    --
    Jose Bagatelli



  • edited July 2004

    If you want to build a high performance web reporting solution, do not use
    the BDE, CGI, or RB 6.x

    Use ReportBuilder 7 Server Edition. ;)

    --


    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
This discussion has been closed.