Report queuing?

ChrisXL
edited February 11, 2022 in Analytics #1
Is there a concept of report queuing in BIRT?

I have been looking through the docs and the api but have not found anything.

With the reporting engine that we currently use with our application, we
have found that when multiple users issue requests for large reports, the
system can become unresponsive to other users. To get round this, we have
had to set a maximum number of concurrent report generation processes, with
subsequent requests being queued. I have done some tests with BIRT (using
concurrent RunAndRenderTasks) and it seems that all tasks run immediately.

Obviously I can implement the queuing myself if I have to, but I was hoping
that this would be built in to BIRT (and exposed as a QUEUED state in
IProgressMonitor).

Any help appreciated.

Chris.

Comments

  • johnw
    edited December 31, 1969 #2
    The API itself doesn't support this. What your looking for is one of two approaches:

    1: Buy the iServer product. it will do this for you using its report factories.

    2: Implement it yourself. I have had a lot of success implementing this functionality using the newer Java thread concurrency. Basically, if you set the Engine Tasks dedicated to threads, and set up thread pools, it will dedicate a processor or core to a thread, and put any excessive threads into a queue to be processed. No bog down. Works great. I will be writing an article about this soon as I have time.
    Warning No formatter is installed for the format ipb