RBoraclereportserver EaccessViolation
Hi,
in am using RBoraclereportserver based on your examples, it is started by
then winservice rbservice.exe. On my machine everything runs fine.
On the test machine of one of our customers sometimes rporaclereportservice
runs into Eaccesviolation. Sometimes pressing F5 in the browser gets the
report running again. Sometimes i have to open the service en manualy start
it again.
As U understand manualy restarting it again is a big problem.
I use rbserver.exe, rboraclereportserver.exe, webtiercomserver.ocx and run
it in a aspx page.
I know my information is a bit vague but I need some advice on how do i
aprouch this? Do i have to think of thread issues or could it be something
in the loaded report. or... any advice is welcome...
The complete error message in the browser is:
"Server Error: Processing request for report
Envirionweb\FinancieleRapportage EAccessViolation Access violation at
address 00403A5E in module rbOracleReportServer.exe Read of address
00000013"
Thanks in advance
Ruud
in am using RBoraclereportserver based on your examples, it is started by
then winservice rbservice.exe. On my machine everything runs fine.
On the test machine of one of our customers sometimes rporaclereportservice
runs into Eaccesviolation. Sometimes pressing F5 in the browser gets the
report running again. Sometimes i have to open the service en manualy start
it again.
As U understand manualy restarting it again is a big problem.
I use rbserver.exe, rboraclereportserver.exe, webtiercomserver.ocx and run
it in a aspx page.
I know my information is a bit vague but I need some advice on how do i
aprouch this? Do i have to think of thread issues or could it be something
in the loaded report. or... any advice is welcome...
The complete error message in the browser is:
"Server Error: Processing request for report
Envirionweb\FinancieleRapportage EAccessViolation Access violation at
address 00403A5E in module rbOracleReportServer.exe Read of address
00000013"
Thanks in advance
Ruud
This discussion has been closed.
Comments
The message indicates the error occurs in the report server app and the name
of the report is 'Envirionweb\FinancieleRapportage'
Try to determine whether it is only that report that causes the error.
What you need is to be able to reproduce the error on your machine. Then you
can run the report server in Delphi as a standard .exe and use the Delphi
debugger with break on exceptions set to true.
The reports must be thread-safe. Primarily you have to provide a thread safe
database connection as shown in the ReportBuilder demos and described in the
RBServer developers guide. Basically it requires using a TDatabase
connection or TDOAConnection object or whatever on the report volume module.
The Report Service will try to restart the report server when a fatal
exception occurs - it may take a several seconds or more for this happen.
However, there might cases in which it is unable to do so.
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
I'am able to reproduce the error on my machine now. The problem is snot
related to 1 report. It can happen to every report.
The exe says : Trs Server - Fatal Exception. In the debugger it first runs
in an access violation. The stack window is empty and delphi shows the cpu
window. If i close the cpu window and press F7 (step) the first line delphi
stops on is in unit ppcom on the begin of :
constructor TppCommunicator.Create(aOwner: TComponent);
If i restart the server using the start/stop button en click refesh on the
browser an access violation occurs. (now without the Trs Server - Fatal
Error).
If i stop the rboraclereportserver.exe it give another access violation.
Then i start it again. Use refresh in the browser and the report works ok.
If i use refresh again the error is back again. If i change the session id
in the URL then averythings stays ok.
The debugger doesn't stop on line i wrote and i don't know what i can do to
get more info to tackle this.
kind regards
Ruud
1. When debuggins, it is also useful to examine the call stack to see what
happened that lead to the error. (perhaps you have done this already?)
2. Try running the RB Server Examples and compare the difference.
3. Make sure that the reports are thread-safe. At minimum they need a
thread-safe data connection.
4. Try creating a series of reports. Create a report that contains a single
label (no data access). Does that work correctly on the server? Then add a
simple single query report and test that. Incrementally add complexity until
it breaks.
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
I took the rboraclereportserver demo and started all over again.
I had to add some things for compatibility because they are used in the
reports.
I added 3 empty procedures:
procedure TDatamodule1.ppReportBeforeAutoSearchDialogCreate(Sender:
TObject);
procedure TDatamodule1.ppReportPreviewFormCreate(Sender: TObject);
procedure TDatamodule1.ppReportGetAutoSearchValues(Sender: TObject);
and i added some units for teechart, etc. It looks like this now:
uses
Classes, Oracle, DB, OracleData,
ppComm, ppRelatv, ppDB,
ppDBPipe,racodmod,rsReportVolumeEvents,ppreport,pptypes,
rsReportVolume, rsReportVolumeReportExplorer, ppRptExp,ppRTTI,ppChrtDP,
ppmodule,
rsReportVolumeStorage, rsReportVolumeTemplate;
i do still get the error, the stack is empty and the acces violation error
is followed by a streamerror.
i wil start testing with simple reports and add start adding stuf but it is
very time consuming.
meanwhile : if you have any other sugestions they are very welkom.
Thanks in advance
Ruud
For a Server based report, BeforeAutoSearchDialogCreate and
OnPreviewFormCreate will not fire (at least I do not think they will). That
is because the dialogs get created on the Client side. The TrsClientReport
has these events.
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
I added those because they have to be present for compatibility reasons. The
aplication where i create the reports adds this to the report definition.
I changed a report and removed the subreports and teecharts. Now the error
seems to be gone.
Are ther known issues? I will investigate further and put the subreport in
again and later te charts...
i will let you know....
kind regards Ruud
There are no known issues with subreports.
However, TeeChart has caused some issues.
1. The server application needs to contain references to the relevant chart
units. ppChrt and ppChrtDP plus any extra TeeChart series units. (some of
the Tee series are in separate units).
2. There are some chart series that reference other objects - such as a
chart function or another series. TeeChart does not always manage these
references correctly - this causes AV's when the chart is destroyed. The
errors do not show up when using a Teechart on a TForm, but show up when
using TeeChart in the RB environment. The latest version of TeeChart is
supposed to contain fixes for this. A possible work around is to explictly
free the chart in the TDataModule.OnDestroy event.
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com