Crystal Reports Embedded And Its Limitations
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:
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 processIn 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 architectureIn 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.