CGI application using report with BDE and Paradox
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
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
This discussion has been closed.
Comments
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
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
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
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
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