Crystal Reports Embedded And Its Limitations

So you may be asking…

What is Crystal Reports Embedded? Crystal Reports embedded is an architecture which allows the Crystal Reports Rendering engine to run within the confides of the application environment.  BusinessObjects provides a .NET runtime and a Java Report Component (JRC) which allows developers to embed Crystal Reports in their applications.  Crystal Reports Embedded is included free with every version of Crystal Reports we sell.

So why do I need Crystal Reports Server or BusinessObjects Enterprise?  Well, that leads me into a discussion of the limitations that existing within the “free” embedded report architecture.

Limitations of Embedded Reporting

The current Crystal Reports Embedded Runtime is limited to three concurrent user requests (e.g. three simultaneous processing threads).  These threads are queued such that if the .NET application requests a 4th thread, it must wait until one of the existing three completes before it will be processed by the embedded engine.

Here is a quick view of the Embedded Architecture:

In case you were not aware of this limitation, let me point you do an excerpt I found on the Crystal Reports Developer website:

How is the Report Engine configured differently across different Business Objects reporting solutions?
  • Report engine is embedded.

    In Crystal Reports for Visual Studio, the report engine is embedded in the application.
    This embedded report engine is limited to a maximum of three simultaneous user requests. This is not an arbitrary licensing limit; it is a limitation of the embedded report engine architecture.
  • Report engine is extracted into a separate report server process

    In the solution that uses the unmanaged Report Application Server (RAS), the report engine is extracted into a separate server process. That server process can run on the same machine or be placed on separate physical hardware, to increase performance by offloading processing from your application server. An unmanaged RAS server is no longer available as an upgrade option. It is recommended that you upgrade to Crystal Reports Server instead. For more information, see Upgrade Options.
    The Crystal Reports Advanced Developer edition provided a performance-governed version of the unmanaged Report Application Server (RAS), which is suitable for smaller deployments with less complex reports and fewer user interaction requirements. This product is no longer available.
    Or, it was possible to license the unmana ged Report Application Server (RAS) on a processor basis, where it takes full advantage of your hardware. This product is no longer available.
  • The separate report server process is encapsulated into a complete Enterprise architecture

    In the Crystal Reports Server or BusinessObjects Enterprise solution, an entire Enterprise architecture is added, which encapsulates the separate report server process (RAS). The managed Report Application Server (RAS) becomes only one server, among many other servers in the Enterprise architecture. This architecture provides a rich set of additional features, such as scheduling, load balancing, fail-over, and both vertical and horizontal scalability.

NOTE:  The red was added by me for emphasis.  For more information click here.

So there it is.  There is a limit of three simultaneous processing threads when you use Crystal Reports Embedded within a .NET or Java based application.

What if I need more scalability?

If you look over the product offerings available from SAP BusinessObjects, you will see that all the current offerings include the BusinessObjects platform. This means that you will need to purchase one of our server based product offerings in order to provide additional scalability.

There are a number of advantages to this platform.  The first is unlimited scalability.  One common problem we had in moving customers from an unmanaged environment to a managed environment was that certain parts of their application had to be rewritten.  With the platform, you need to “login”, retrieve your report from a “repository” (instead of a filesystem).  You also wanted to make sure you are using the Page Server instead of the RAS Server (which had more overhead).

Now by requiring customers to move to a repository/platform based platform earlier, they are able to reap the benefits of a dedicated reporting environment

Here is what a basic architecture might look like if you upgrade to CR Server:

And here is one with BusinessObjects Enterprise:

How does this affect Runtime Distribution?

This does NOT affect your ability to create Crystal Reports and embedded them into your Visual Studio or Java based applications and distribute them out.  It is important however that you only distribute out the DLLs and JAR files listed in the RUNTIME.TXT file under the …/Crystal Reports/Help/en directory.

For more information you can also check out my previous post about this topic here.

Enjoy!

19 replies on “Crystal Reports Embedded And Its Limitations”

  1. Good writeup. One clarification though is that the limit of 3 simultaneous requests only applies if you buy it off the shelf. If are an OEM partner then you have the ability to increase your threads to whatever number you like. Ex. 2,4,6,20,etc.
    Also, the RAS standalone was never end-of-lifed. It is now called Crystal Reports Server Embedded and is available again only to OEM partners. I hope this helps.

  2. Katryn. Excellent comments! Thanks!!

    You are correct. My only recommendation would be for OEM partners to try and write their solutions in such a way that if a company already has the BO Platform, they can manage the reports on the platform instead of using unmanaged reports. A few years ago I was at Delta Airlines and they wanted to advantage of scheduling, scalability, etc through the platform with their existing licenses but the OEM vendor was only able to deliver the reports as unmanaged… ultimately ruling them out because this limited the applications ability to scale to Delta’s size.

    I always wished BusinessObjects could provide a more seamless way of helping OEM customers move their unmanaged applications to a managed environment.

  3. I have an application written in Java that uses embedded crystal reports. We are getting terrible performance from the reports and our customers are complaining. We are switching to POJO’s because they seem to be faster than letting crystal do the sql statements. But, I am still concerned that this won’t be fast enough. Should I switch to the crystal reports server? And if so, how do I sell a $2,700 license to each customer when they don’t expect it? Is there a better option?

  4. Hi,
    You are mentioning that 3 concurrent users for embedded CR,
    How about if we are using CR XI Developer Edition, and embeded the reports in the .Net CR viewer, any concurrent user access limitation?
    Thanks

  5. Hi David,

    Thanks a lot for sharing this stuff!! I have been working on CR 2008 embedded version, and now facing performance related issues on reports in our project. We have a windows based application installed on citrix server, where we have installed the crystal reports Runtime as well. We have been wondering if citrix is creating a new instance of runtime for each user. But may be this is not case, and hence we are facing performance issues.
    I also read the upgrade document provided by you in the blog and will try to upgrade from CR 2008 embedded to Crystal Server IX.

    Once again, thanks a lot!! A right piece of information at right time!!:):)

  6. Hi David,

    I already have XI Server R2 and i use RAS in my Code to manipulate reports So can i upgrade to Crystal report server 2008 with out any problem as i tried to make new virtual machine and i have installed Crystal report 2008 and try to make my old code and reports connect to new Crystal report Server 2008 but it’s not working properly as i didn’t find RAS which old code depends on Please Advise

  7. Wow, thanks, this is the article I’ve been looking for….
    I just found out that I can’t print my report using CR XI developer ver, when my data gets more than 100.000 records, it took a loong loong time to load the report, while in the sql the query have been finish in a minute….
    I guess I’ve to try CR XI server edition 🙂

  8. Is there a restriction in terms nbr of concurrent users Crystal Reports Server Embedded. Do we need a developer / designer to create the reports or a developer license is include in the pacakage.

    Regards

    Neeraj

    1. If you are using the CR ADDON FOR BS APPS 1.0 to view SAP Business Suite information in Crystal Reports, there is no additional licensing required. If you wish to make changes to the default embedded content, then you will need a Crystal Reports license. This software would be installed on your desktop and will allow you to modify the default Crystal Reports and save the new format back to the SAP Business Suite environment as a new layout.

    1. No. Crystal Enterprise embedded is specifically for customers who don’t want to overhead of the repository, security, etc. If you want a repository I suggest you upgrade your deployment to Crystal Reports Server.

  9. Please avoid Crystal Reports or any other 3rd party components on your web applications. It’s a performance,maintenance etc. nightmare. It’s better generate your own html from your code. You can use Bootstrap,Jquery etc. Very lightweight and free. Not get scammed by SAP.
    Crystal Reports are for non-programmers.

  10. You should be able to sue SAP for stating Embedded Crystal Reports “free” and then secretly adding limitations on number of concurrent users behind the scene just so they can sell RAS servers for big organizations when organizations hit the limit. What a clever idea!
    Don’t you also think this article is also written by a SAP member? Just saying…

    1. I can tell you that in my career of working with Crystal Report developers, I’ve seen it all. I know of at least two instances where someone took a $400 copy of Crystal Reports and build an entire web-based BI scheduling system around it supporting over 200 users. That’s pretty good value for money. Then they complained with the COM driver would fall over due to too much demand. CR was never architected to be used in that now. The embedded model allowed low cost of entry with the ability to scale to a full BI system in the future. The good news is that there’s lots of competition in the BI space which means lots of options for developers.

  11. Hi David,

    Does the limit apply if we just create the report and export it to PDF without displaying the report or loading it to a viewer? we have a window service that generates a Crystal Report then automatically export it to a PDF file. The generation of report is multithread and we could generate more than 3 reports concurrently.

    1. Yes, I believe so. It may be that that overall demand for reports in your environment is so small that the 3 thread limit is not a big issue. Personally I would look to upgrade to SAP BusinessObjects Edge. It gives you all the scheduling and report administration you need, together with all the OTHER BI tools in the SAP suite and it’s priced very competitively for small organizations. http://www54.sap.com/solution/sme/software/analytics/edge-medium-bi/index.html

  12. Dear David,

    Thanks for providing clarification on crystal reports concurrency. As per the blog, the embedded report engine is limited to a maximum of three simultaneous user requests.
    If we are using crystal reports that comes with Visual studio, there is an option to change the printjoblimit. Looks like the default value is 75 and we can change the value to -1, if the server has enough resources to process additional reports.

    We need to consider 75 or 3 ( as mentioned in the blog ) as concurrency limit.

    Please clarify.

    Thanks
    Ram

Comments are closed.