Proper Server Logic
Posted: Thu Mar 08, 2012 5:45 am
Hi there,
We are implementing reports rendering on the server side (WCF Web Service) using Stimulsoft Reports.
Rendering works, but after several reports IIS fails with out of memory exception.
The question is, how to use StiReport on the server side properly.
1. Load report from mrt-stream (in our case it is database).
2. Fill report variables in report dictionary.
3. Compile report.
4. Call compiled report Initialize method if available (via reflection) to initialize report-specific logic.
5. Render report.
6. Export report to PDF.
So the question is what to cache and how to use it.
My guess, StiReport needs to be cached after loading and compilation. However, in multithreaded scenarios,
for every thream a new instance of the CompiledReport has to be created and initialized.
Any examples or explanation of the internal rendering logic would be really appreciated.
Thank you
We are implementing reports rendering on the server side (WCF Web Service) using Stimulsoft Reports.
Rendering works, but after several reports IIS fails with out of memory exception.
The question is, how to use StiReport on the server side properly.
1. Load report from mrt-stream (in our case it is database).
2. Fill report variables in report dictionary.
3. Compile report.
4. Call compiled report Initialize method if available (via reflection) to initialize report-specific logic.
5. Render report.
6. Export report to PDF.
So the question is what to cache and how to use it.
My guess, StiReport needs to be cached after loading and compilation. However, in multithreaded scenarios,
for every thream a new instance of the CompiledReport has to be created and initialized.
Any examples or explanation of the internal rendering logic would be really appreciated.
Thank you